| 634 | } |
| 635 | |
| 636 | void configure_audio(bool force_reset) |
| 637 | { |
| 638 | if (g_cfg.audio.provider != audio_provider::cell_audio) |
| 639 | { |
| 640 | return; |
| 641 | } |
| 642 | |
| 643 | if (auto& g_audio = g_fxo->get<cell_audio>(); g_fxo->is_init<cell_audio>()) |
| 644 | { |
| 645 | // Only reboot the audio renderer if a relevant setting changed |
| 646 | const cell_audio_config::raw_config new_raw = get_raw_config(); |
| 647 | |
| 648 | if (const cell_audio_config::raw_config raw = g_audio.cfg.raw; |
| 649 | force_reset || |
| 650 | raw.audio_device != new_raw.audio_device || |
| 651 | raw.desired_buffer_duration != new_raw.desired_buffer_duration || |
| 652 | raw.buffering_enabled != new_raw.buffering_enabled || |
| 653 | raw.time_stretching_threshold != new_raw.time_stretching_threshold || |
| 654 | raw.enable_time_stretching != new_raw.enable_time_stretching || |
| 655 | raw.convert_to_s16 != new_raw.convert_to_s16 || |
| 656 | raw.renderer != new_raw.renderer || |
| 657 | raw.dump_to_file != new_raw.dump_to_file) |
| 658 | { |
| 659 | std::lock_guard lock{g_audio.emu_cfg_upd_m}; |
| 660 | g_audio.cfg.new_raw = new_raw; |
| 661 | g_audio.m_update_configuration = raw.renderer != new_raw.renderer ? audio_backend_update::ALL : audio_backend_update::PARAM; |
| 662 | } |
| 663 | } |
| 664 | } |
| 665 | } // namespace audio |
| 666 | |
| 667 | void cell_audio_thread::update_config(bool backend_changed) |
no test coverage detected