#pragma once #include "stdafx.h" class IBatteryProvider { public: virtual vector LoadBattery(string extension) = 0; }; class IBatteryRecorder { public: virtual void OnLoadBattery(string extension, vector batteryData) = 0; }; class BatteryManager { private: string _romName; bool _saveEnabled; std::weak_ptr _provider; std::weak_ptr _recorder; string GetBasePath(); public: void Initialize(string romName); void SetSaveEnabled(bool enabled); void SetBatteryProvider(shared_ptr provider); void SetBatteryRecorder(shared_ptr recorder); void SaveBattery(string extension, uint8_t* data, uint32_t length); vector LoadBattery(string extension); void LoadBattery(string extension, uint8_t* data, uint32_t length); };