#pragma once #include "stdafx.h" #include "SettingTypes.h" class EmuSettings { private: VideoConfig _video; AudioConfig _audio; InputConfig _input; EmulationConfig _emulation; PreferencesConfig _preferences; atomic _flags; atomic _inputConfigVersion; string _audioDevice; string _saveFolder; string _saveStateFolder; string _screenshotFolder; std::unordered_map _emulatorKeys[3]; std::unordered_map> _shortcutSupersets[3]; void ProcessString(string &str, const char** strPointer); void ClearShortcutKeys(); void SetShortcutKey(EmulatorShortcut shortcut, KeyCombination keyCombination, int keySetIndex); public: EmuSettings(); uint32_t GetVersion(); void SetVideoConfig(VideoConfig config); VideoConfig GetVideoConfig(); void SetAudioConfig(AudioConfig config); AudioConfig GetAudioConfig(); void SetInputConfig(InputConfig config); InputConfig GetInputConfig(); uint32_t GetInputConfigVersion(); void SetEmulationConfig(EmulationConfig config); EmulationConfig GetEmulationConfig(); void SetPreferences(PreferencesConfig config); PreferencesConfig GetPreferences(); void SetShortcutKeys(vector shortcuts); KeyCombination GetShortcutKey(EmulatorShortcut shortcut, int keySetIndex); vector GetShortcutSupersets(EmulatorShortcut shortcut, int keySetIndex); OverscanDimensions GetOverscan(); uint32_t GetRewindBufferSize(); uint32_t GetEmulationSpeed(); double GetAspectRatio(); void SetFlag(EmulationFlags flag); void SetFlagState(EmulationFlags flag, bool enabled); void ClearFlag(EmulationFlags flag); bool CheckFlag(EmulationFlags flag); };