#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: static string _romName; static bool _saveEnabled; static string GetBasePath(); static std::weak_ptr _provider; static std::weak_ptr _recorder; BatteryManager() = delete; public: static void Initialize(string romName); static void SetSaveEnabled(bool enabled); static void SetBatteryProvider(shared_ptr provider); static void SetBatteryRecorder(shared_ptr recorder); static void SaveBattery(string extension, uint8_t* data, uint32_t length); static vector LoadBattery(string extension); static void LoadBattery(string extension, uint8_t* data, uint32_t length); };