diff options
| author | sowens99 <seanowens@comcast.net> | 2021-10-13 20:29:04 -0400 |
|---|---|---|
| committer | sowens99 <seanowens@comcast.net> | 2021-10-15 23:24:46 -0400 |
| commit | 8ea6bef98f535301d23aa1c81d4080c208527705 (patch) | |
| tree | 52f211ba038b7e1ada0fdc6700c93243689e22b5 /Source/Core/AudioCommon | |
| parent | 023eb0b7029eb3633ce9eeb039c11d835ea7fd74 (diff) | |
Port Main.DSP to MainSettings
While trying to work on adding audiodump support for CLI, I was alerted that it was important to first try moving the DSP configs to the new config before continuing, as that makes it substantially easier to write clean code to add such a feature.
This commit aims to allow for Dolphin to only rely on the new config for DSP-related settings.
Diffstat (limited to 'Source/Core/AudioCommon')
| -rw-r--r-- | Source/Core/AudioCommon/AudioCommon.cpp | 27 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/AudioStretcher.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/CubebStream.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/Mixer.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/OpenALStream.cpp | 8 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/PulseAudioStream.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/WASAPIStream.cpp | 20 | ||||
| -rw-r--r-- | Source/Core/AudioCommon/WaveFile.cpp | 3 |
8 files changed, 38 insertions, 34 deletions
diff --git a/Source/Core/AudioCommon/AudioCommon.cpp b/Source/Core/AudioCommon/AudioCommon.cpp index d3bdcde445..ab45161651 100644 --- a/Source/Core/AudioCommon/AudioCommon.cpp +++ b/Source/Core/AudioCommon/AudioCommon.cpp @@ -13,6 +13,7 @@ #include "Common/Common.h" #include "Common/FileUtil.h" #include "Common/Logging/Log.h" +#include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" // This shouldn't be a global, at least not here. @@ -47,7 +48,7 @@ static std::unique_ptr<SoundStream> CreateSoundStreamForBackend(std::string_view void InitSoundStream() { - std::string backend = SConfig::GetInstance().sBackend; + std::string backend = Config::Get(Config::MAIN_AUDIO_BACKEND); g_sound_stream = CreateSoundStreamForBackend(backend); if (!g_sound_stream) @@ -73,7 +74,7 @@ void PostInitSoundStream() UpdateSoundStream(); SetSoundStreamRunning(true); - if (SConfig::GetInstance().m_DumpAudio && !s_audio_dump_start) + if (Config::Get(Config::MAIN_DUMP_AUDIO) && !s_audio_dump_start) StartAudioDump(); } @@ -81,7 +82,7 @@ void ShutdownSoundStream() { INFO_LOG_FMT(AUDIO, "Shutting down sound stream"); - if (SConfig::GetInstance().m_DumpAudio && s_audio_dump_start) + if (Config::Get(Config::MAIN_DUMP_AUDIO) && s_audio_dump_start) StopAudioDump(); SetSoundStreamRunning(false); @@ -159,7 +160,7 @@ void UpdateSoundStream() { if (g_sound_stream) { - int volume = SConfig::GetInstance().m_IsMuted ? 0 : SConfig::GetInstance().m_Volume; + int volume = Config::Get(Config::MAIN_AUDIO_MUTED) ? 0 : Config::Get(Config::MAIN_AUDIO_VOLUME); g_sound_stream->SetVolume(volume); } } @@ -186,9 +187,9 @@ void SendAIBuffer(const short* samples, unsigned int num_samples) if (!g_sound_stream) return; - if (SConfig::GetInstance().m_DumpAudio && !s_audio_dump_start) + if (Config::Get(Config::MAIN_DUMP_AUDIO) && !s_audio_dump_start) StartAudioDump(); - else if (!SConfig::GetInstance().m_DumpAudio && s_audio_dump_start) + else if (!Config::Get(Config::MAIN_DUMP_AUDIO) && s_audio_dump_start) StopAudioDump(); Mixer* pMixer = g_sound_stream->GetMixer(); @@ -221,28 +222,30 @@ void StopAudioDump() void IncreaseVolume(unsigned short offset) { - SConfig::GetInstance().m_IsMuted = false; - int& currentVolume = SConfig::GetInstance().m_Volume; + Config::SetBaseOrCurrent(Config::MAIN_AUDIO_MUTED, false); + int currentVolume = Config::Get(Config::MAIN_AUDIO_VOLUME); currentVolume += offset; if (currentVolume > AUDIO_VOLUME_MAX) currentVolume = AUDIO_VOLUME_MAX; + Config::SetBaseOrCurrent(Config::MAIN_AUDIO_VOLUME, currentVolume); UpdateSoundStream(); } void DecreaseVolume(unsigned short offset) { - SConfig::GetInstance().m_IsMuted = false; - int& currentVolume = SConfig::GetInstance().m_Volume; + Config::SetBaseOrCurrent(Config::MAIN_AUDIO_MUTED, false); + int currentVolume = Config::Get(Config::MAIN_AUDIO_VOLUME); currentVolume -= offset; if (currentVolume < AUDIO_VOLUME_MIN) currentVolume = AUDIO_VOLUME_MIN; + Config::SetBaseOrCurrent(Config::MAIN_AUDIO_VOLUME, currentVolume); UpdateSoundStream(); } void ToggleMuteVolume() { - bool& isMuted = SConfig::GetInstance().m_IsMuted; - isMuted = !isMuted; + bool isMuted = Config::Get(Config::MAIN_AUDIO_MUTED); + Config::SetBaseOrCurrent(Config::MAIN_AUDIO_MUTED, !isMuted); UpdateSoundStream(); } } // namespace AudioCommon diff --git a/Source/Core/AudioCommon/AudioStretcher.cpp b/Source/Core/AudioCommon/AudioStretcher.cpp index a94e707d56..c786dc0941 100644 --- a/Source/Core/AudioCommon/AudioStretcher.cpp +++ b/Source/Core/AudioCommon/AudioStretcher.cpp @@ -7,7 +7,7 @@ #include "AudioCommon/AudioStretcher.h" #include "Common/Logging/Log.h" -#include "Core/ConfigManager.h" +#include "Core/Config/MainSettings.h" namespace AudioCommon { @@ -31,7 +31,7 @@ void AudioStretcher::ProcessSamples(const short* in, unsigned int num_in, unsign // We were given actual_samples number of samples, and num_samples were requested from us. double current_ratio = static_cast<double>(num_in) / static_cast<double>(num_out); - const double max_latency = SConfig::GetInstance().m_audio_stretch_max_latency; + const double max_latency = Config::Get(Config::MAIN_AUDIO_STRETCH_LATENCY); const double max_backlog = m_sample_rate * max_latency / 1000.0 / m_stretch_ratio; const double backlog_fullness = m_sound_touch.numSamples() / max_backlog; if (backlog_fullness > 5.0) diff --git a/Source/Core/AudioCommon/CubebStream.cpp b/Source/Core/AudioCommon/CubebStream.cpp index 0d9535600a..6d903bb999 100644 --- a/Source/Core/AudioCommon/CubebStream.cpp +++ b/Source/Core/AudioCommon/CubebStream.cpp @@ -8,7 +8,7 @@ #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Common/Thread.h" -#include "Core/ConfigManager.h" +#include "Core/Config/MainSettings.h" // ~10 ms - needs to be at least 240 for surround constexpr u32 BUFFER_SAMPLES = 512; @@ -36,7 +36,7 @@ bool CubebStream::Init() if (!m_ctx) return false; - m_stereo = !SConfig::GetInstance().ShouldUseDPL2Decoder(); + m_stereo = !Config::ShouldUseDPL2Decoder(); cubeb_stream_params params; params.rate = m_mixer->GetSampleRate(); diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index e50d90b32b..dbd2b1f69f 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -154,7 +154,7 @@ unsigned int Mixer::Mix(short* samples, unsigned int num_samples) memset(samples, 0, num_samples * 2 * sizeof(short)); - if (SConfig::GetInstance().m_audio_stretch) + if (Config::Get(Config::MAIN_AUDIO_STRETCH)) { unsigned int available_samples = std::min(m_dma_mixer.AvailableSamples(), m_streaming_mixer.AvailableSamples()); diff --git a/Source/Core/AudioCommon/OpenALStream.cpp b/Source/Core/AudioCommon/OpenALStream.cpp index 3e56fe8e08..45d1aa23c8 100644 --- a/Source/Core/AudioCommon/OpenALStream.cpp +++ b/Source/Core/AudioCommon/OpenALStream.cpp @@ -12,7 +12,7 @@ #include "Common/Logging/Log.h" #include "Common/MsgHandler.h" #include "Common/Thread.h" -#include "Core/ConfigManager.h" +#include "Core/Config/MainSettings.h" static HMODULE s_openal_dll = nullptr; @@ -212,7 +212,7 @@ void OpenALStream::SoundLoop() bool float32_capable = palIsExtensionPresent("AL_EXT_float32") != 0; bool surround_capable = palIsExtensionPresent("AL_EXT_MCFORMATS") || IsCreativeXFi(); - bool use_surround = SConfig::GetInstance().ShouldUseDPL2Decoder() && surround_capable; + bool use_surround = Config::ShouldUseDPL2Decoder() && surround_capable; // As there is no extension to check for 32-bit fixed point support // and we know that only a X-Fi with hardware OpenAL supports it, @@ -223,9 +223,9 @@ void OpenALStream::SoundLoop() u32 frames_per_buffer; // Can't have zero samples per buffer - if (SConfig::GetInstance().iLatency > 0) + if (Config::Get(Config::MAIN_AUDIO_LATENCY) > 0) { - frames_per_buffer = frequency / 1000 * SConfig::GetInstance().iLatency / OAL_BUFFERS; + frames_per_buffer = frequency / 1000 * Config::Get(Config::MAIN_AUDIO_LATENCY) / OAL_BUFFERS; } else { diff --git a/Source/Core/AudioCommon/PulseAudioStream.cpp b/Source/Core/AudioCommon/PulseAudioStream.cpp index 3b093aeb79..5b0662972d 100644 --- a/Source/Core/AudioCommon/PulseAudioStream.cpp +++ b/Source/Core/AudioCommon/PulseAudioStream.cpp @@ -9,7 +9,7 @@ #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Common/Thread.h" -#include "Core/ConfigManager.h" +#include "Core/Config/MainSettings.h" namespace { @@ -20,7 +20,7 @@ PulseAudio::PulseAudio() = default; bool PulseAudio::Init() { - m_stereo = !SConfig::GetInstance().ShouldUseDPL2Decoder(); + m_stereo = !Config::ShouldUseDPL2Decoder(); m_channels = m_stereo ? 2 : 6; // will tell PA we use a Stereo or 5.0 channel setup NOTICE_LOG_FMT(AUDIO, "PulseAudio backend using {} channels", m_channels); diff --git a/Source/Core/AudioCommon/WASAPIStream.cpp b/Source/Core/AudioCommon/WASAPIStream.cpp index d65471226b..2a15e08195 100644 --- a/Source/Core/AudioCommon/WASAPIStream.cpp +++ b/Source/Core/AudioCommon/WASAPIStream.cpp @@ -20,7 +20,7 @@ #include "Common/Logging/Log.h" #include "Common/StringUtil.h" #include "Common/Thread.h" -#include "Core/ConfigManager.h" +#include "Core/Config/MainSettings.h" #include "VideoCommon/OnScreenDisplay.h" using Microsoft::WRL::ComPtr; @@ -176,19 +176,19 @@ bool WASAPIStream::SetRunning(bool running) HRESULT result; - if (SConfig::GetInstance().sWASAPIDevice == "default") + if (Config::Get(Config::MAIN_WASAPI_DEVICE) == "default") { result = m_enumerator->GetDefaultAudioEndpoint(eRender, eConsole, device.GetAddressOf()); } else { result = S_OK; - device = GetDeviceByName(SConfig::GetInstance().sWASAPIDevice); + device = GetDeviceByName(Config::Get(Config::MAIN_WASAPI_DEVICE)); if (!device) { ERROR_LOG_FMT(AUDIO, "Can't find device '{}', falling back to default", - SConfig::GetInstance().sWASAPIDevice); + Config::Get(Config::MAIN_WASAPI_DEVICE)); result = m_enumerator->GetDefaultAudioEndpoint(eRender, eConsole, device.GetAddressOf()); } } @@ -222,7 +222,7 @@ bool WASAPIStream::SetRunning(bool running) result = audio_client->GetDevicePeriod(nullptr, &device_period); - device_period += SConfig::GetInstance().iLatency * (10000 / m_format.Format.nChannels); + device_period += Config::Get(Config::MAIN_AUDIO_LATENCY) * (10000 / m_format.Format.nChannels); INFO_LOG_FMT(AUDIO, "Audio period set to {}", device_period); if (!HandleWinAPI("Failed to obtain device period", result)) @@ -258,7 +258,7 @@ bool WASAPIStream::SetRunning(bool running) device_period = static_cast<REFERENCE_TIME>( 10000.0 * 1000 * m_frames_in_buffer / m_format.Format.nSamplesPerSec + 0.5) + - SConfig::GetInstance().iLatency * 10000; + Config::Get(Config::MAIN_AUDIO_LATENCY) * 10000; result = audio_client->Initialize( AUDCLNT_SHAREMODE_EXCLUSIVE, @@ -333,13 +333,13 @@ void WASAPIStream::SoundLoop() s16* audio_data = reinterpret_cast<s16*>(data); GetMixer()->Mix(audio_data, m_frames_in_buffer); - const SConfig& config = SConfig::GetInstance(); - const bool is_muted = config.m_IsMuted || config.m_Volume == 0; - const bool need_volume_adjustment = config.m_Volume != 100 && !is_muted; + const bool is_muted = + Config::Get(Config::MAIN_AUDIO_MUTED) || Config::Get(Config::MAIN_AUDIO_VOLUME) == 0; + const bool need_volume_adjustment = Config::Get(Config::MAIN_AUDIO_VOLUME) != 100 && !is_muted; if (need_volume_adjustment) { - const float volume = config.m_Volume / 100.0f; + const float volume = Config::Get(Config::MAIN_AUDIO_VOLUME) / 100.0f; for (u32 i = 0; i < m_frames_in_buffer * 2; i++) *audio_data++ *= volume; diff --git a/Source/Core/AudioCommon/WaveFile.cpp b/Source/Core/AudioCommon/WaveFile.cpp index ac378cb748..a7dd489db3 100644 --- a/Source/Core/AudioCommon/WaveFile.cpp +++ b/Source/Core/AudioCommon/WaveFile.cpp @@ -12,6 +12,7 @@ #include "Common/MsgHandler.h" #include "Common/StringUtil.h" #include "Common/Swap.h" +#include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" constexpr size_t WaveFileWriter::BUFFER_SIZE; @@ -30,7 +31,7 @@ bool WaveFileWriter::Start(const std::string& filename, unsigned int HLESampleRa // Ask to delete file if (File::Exists(filename)) { - if (SConfig::GetInstance().m_DumpAudioSilent || + if (Config::Get(Config::MAIN_DUMP_AUDIO_SILENT) || AskYesNoFmtT("Delete the existing file '{0}'?", filename)) { File::Delete(filename); |
