5050// #define GODOT_AUDIO_DRIVER_MANAGER_LOGGING_ENABLED
5151#endif
5252
53+ #ifdef ANDROID_ENABLED
54+ #define GODOT_AUDIO_DRIVER_DISALLOW_MUTING
55+ #endif
56+
5357AudioDriver *AudioDriver::singleton = nullptr ;
5458AudioDriver *AudioDriver::get_singleton () {
5559 return singleton;
@@ -182,10 +186,16 @@ int AudioDriverManager::driver_count = 1;
182186int AudioDriverManager::desired_driver_id = -2 ;
183187int AudioDriverManager::actual_driver_id = -2 ;
184188
189+ #ifdef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
190+ uint32_t AudioDriverManager::_mute_state = 0 ;
191+ uint32_t AudioDriverManager::_mute_state_final = 0 ;
192+ uint32_t AudioDriverManager::_mute_state_mask = 0 ;
193+ #else
185194// Defaults are for the editor, outside the editor will be overridden.
186195uint32_t AudioDriverManager::_mute_state = AudioDriverManager::MuteFlags::MUTE_FLAG_DISABLED;
187196uint32_t AudioDriverManager::_mute_state_final = AudioDriverManager::MuteFlags::MUTE_FLAG_DISABLED;
188197uint32_t AudioDriverManager::_mute_state_mask = UINT32_MAX;
198+ #endif
189199
190200void AudioDriverManager::add_driver (AudioDriver *p_driver) {
191201 ERR_FAIL_COND (driver_count >= MAX_DRIVERS);
@@ -301,12 +311,22 @@ void AudioDriverManager::initialize(int p_driver) {
301311 bool mute_on_silence = GLOBAL_DEF (" audio/muting/mute_on_silence" , false );
302312 bool mute_on_focus_loss = GLOBAL_DEF (" audio/muting/mute_on_focus_loss" , false );
303313
314+ #ifdef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
315+ // This is just to silence warnings.
316+ (void )mute_driver;
317+ (void )mute_on_pause;
318+ (void )mute_on_silence;
319+ (void )mute_on_focus_loss;
320+ #endif
321+
304322 // Defaults for outside the editor.
305323#ifdef TOOLS_ENABLED
306324 if (!(Engine::get_singleton ()->is_editor_hint () || Main::is_project_manager ())) {
307325#else
308326 {
309327#endif
328+
329+ #ifndef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
310330 // Note that these can be set differently on different platforms if desired.
311331 // e.g. Android may want to ensure mute when app paused etc.
312332 _mute_state = mute_driver ? MuteFlags::MUTE_FLAG_DISABLED : 0 ;
@@ -324,6 +344,7 @@ void AudioDriverManager::initialize(int p_driver) {
324344 }
325345
326346 _update_mute_state ();
347+ #endif
327348 }
328349
329350 _set_driver (p_driver);
@@ -335,20 +356,26 @@ AudioDriver *AudioDriverManager::get_driver(int p_driver) {
335356}
336357
337358void AudioDriverManager::_update_mute_state () {
359+ #ifndef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
338360 _mute_state_final = _mute_state & _mute_state_mask;
361+ #endif
339362}
340363
341364void AudioDriverManager::set_mute_sensitivity (MuteFlags p_flag, bool p_enabled) {
365+ #ifndef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
342366 if (p_enabled) {
343367 _mute_state_mask |= p_flag;
344368 } else {
345369 _mute_state_mask &= ~p_flag;
346370 }
347371 _update_mute_state ();
348372 _set_driver (desired_driver_id);
373+ #endif
349374}
350375
351376void AudioDriverManager::set_mute_flag (MuteFlags p_flag, bool p_enabled) {
377+ #ifndef GODOT_AUDIO_DRIVER_DISALLOW_MUTING
378+
352379#ifdef GODOT_AUDIO_DRIVER_MANAGER_LOGGING_ENABLED
353380 _log (" set_mute_flag " + itos (p_flag) + " " + String (Variant (p_enabled)) + " , flags was " + itos (_mute_state) + " (final flags " + itos (_mute_state_final) + " )" );
354381#endif
@@ -370,6 +397,8 @@ void AudioDriverManager::set_mute_flag(MuteFlags p_flag, bool p_enabled) {
370397 _log (" \t flags now " + itos (_mute_state) + " (final flags " + itos (_mute_state_final) + " )" );
371398#endif
372399 _set_driver (desired_driver_id);
400+
401+ #endif
373402}
374403
375404// ////////////////////////////////////////////
0 commit comments