diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-26 11:35:37 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-26 11:35:37 +0200 |
commit | b58873b98a9860c4629514586a55048e8af81f32 (patch) | |
tree | c116cb4876b75c1c5c579c441989bb339c0125c4 /servers/audio_server.cpp | |
parent | e0e93ce094d19d132f34aa5c92e892524a8125c9 (diff) | |
parent | 5a08091168782a924cd3a23baf31c5cd4cd63906 (diff) | |
download | redot-engine-b58873b98a9860c4629514586a55048e8af81f32.tar.gz |
Merge pull request #69833 from Eoin-ONeill-Yokai/audio_invalid_mixrate
Fix crash caused by invalid mix_rate assignment due to bogus project settings.
Diffstat (limited to 'servers/audio_server.cpp')
-rw-r--r-- | servers/audio_server.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 0344bf322d..49991e41d3 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -115,6 +115,20 @@ void AudioDriver::input_buffer_write(int32_t sample) { } } +int AudioDriver::_get_configured_mix_rate() { + StringName audio_driver_setting = "audio/driver/mix_rate"; + int mix_rate = GLOBAL_GET(audio_driver_setting); + + // In the case of invalid mix rate, let's default to a sensible value.. + if (mix_rate <= 0) { + WARN_PRINT(vformat("Invalid mix rate of %d, consider reassigning setting \'%s\'. \nDefaulting mix rate to value %d.", + mix_rate, audio_driver_setting, AudioDriverManager::DEFAULT_MIX_RATE)); + mix_rate = AudioDriverManager::DEFAULT_MIX_RATE; + } + + return mix_rate; +} + AudioDriver::SpeakerMode AudioDriver::get_speaker_mode_by_total_channels(int p_channels) const { switch (p_channels) { case 4: |