From cc7e9bc464da953ececfa500aa8362ad7db77536 Mon Sep 17 00:00:00 2001 From: SimoneN64 Date: Wed, 28 Jun 2023 09:49:58 +0200 Subject: [PATCH] add mute option to settings --- src/frontend/imgui/Settings.cpp | 30 +++++++++++++++--------------- src/frontend/imgui/Settings.hpp | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/frontend/imgui/Settings.cpp b/src/frontend/imgui/Settings.cpp index edf1eece..b43e4b92 100644 --- a/src/frontend/imgui/Settings.cpp +++ b/src/frontend/imgui/Settings.cpp @@ -28,18 +28,23 @@ Settings::Settings() { settingsFile = std::fstream("resources/settings.json", std::fstream::in | std::fstream::out); settings = json::parse(settingsFile); - checkjsonentry(volumeR, float, "audio", "volumeR", 0.5); - checkjsonentry(volumeL, float, "audio", "volumeL", 0.5); + checkjsonentry(oldVolumeL, float, "audio", "volumeL", 0.5); + volumeL = oldVolumeL; + checkjsonentry(oldVolumeR, float, "audio", "volumeR", 0.5); + volumeR = oldVolumeR; + checkjsonentry(mute, bool, "audio", "mute", false); checkjsonentry(lockChannels, bool, "audio", "lockChannels", true); } else { settingsFile = std::fstream("resources/settings.json", std::fstream::trunc | std::fstream::in | std::fstream::out); settings["audio"]["volumeR"] = 0.5; settings["audio"]["volumeL"] = 0.5; settings["audio"]["lockChannels"] = true; + settings["audio"]["mute"] = false; - volumeR = 0.5; - volumeL = 0.5; + oldVolumeR = volumeR = 0.5; + oldVolumeL = volumeL = 0.5; lockChannels = true; + mute = false; settingsFile << settings; } @@ -51,26 +56,21 @@ Settings::~Settings() { std::fstream settingsFile; if(fileExists) { settingsFile = std::fstream("resources/settings.json", std::fstream::trunc | std::fstream::out); - - settings["audio"]["volumeR"] = volumeR; - settings["audio"]["volumeL"] = volumeL; - settings["audio"]["lockChannels"] = lockChannels; - settingsFile << settings; } else { settingsFile = std::fstream("resources/settings.json", std::fstream::out); - - settings["audio"]["volumeR"] = volumeR; - settings["audio"]["volumeL"] = volumeL; - settings["audio"]["lockChannels"] = lockChannels; - settingsFile << settings; } + settings["audio"]["volumeR"] = oldVolumeR; + settings["audio"]["volumeL"] = oldVolumeL; + settings["audio"]["lockChannels"] = lockChannels; + settings["audio"]["mute"] = mute; + settingsFile << settings; + settingsFile.close(); } void Settings::RenderWidget(bool& show) { if(show) { - static float oldVolumeL = volumeL, oldVolumeR = volumeR; ImGui::OpenPopup("Settings"); if(ImGui::BeginPopupModal("Settings", &show)) { enum class SelectedSetting { Audio, COUNT }; diff --git a/src/frontend/imgui/Settings.hpp b/src/frontend/imgui/Settings.hpp index bbf3407e..d356be58 100644 --- a/src/frontend/imgui/Settings.hpp +++ b/src/frontend/imgui/Settings.hpp @@ -11,11 +11,11 @@ struct Settings { [[nodiscard]] FORCE_INLINE float GetVolumeL() const { return volumeL; }; [[nodiscard]] FORCE_INLINE float GetVolumeR() const { return volumeR; }; - [[nodiscard]] FORCE_INLINE bool GetLockChannels() const { return lockChannels; } void RenderWidget(bool& show); private: - float volumeL = 0.0, volumeR = 0.0; + float volumeL, volumeR; + float oldVolumeL, oldVolumeR; bool lockChannels = true; bool mute = false; json settings;