From 349b0ca2ef8ab16d95d57d121960480ecce0cb7f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 25 Jul 2024 16:29:27 +0200 Subject: Add AudioBackend::default_device_name(). --- src/wx/audio_backend.cc | 16 ++++++++++++++++ src/wx/audio_backend.h | 2 ++ src/wx/config_dialog.cc | 26 ++++---------------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/wx/audio_backend.cc b/src/wx/audio_backend.cc index 73f57b50e..3cb2b8d4f 100644 --- a/src/wx/audio_backend.cc +++ b/src/wx/audio_backend.cc @@ -106,6 +106,22 @@ AudioBackend::output_device_names() } +optional +AudioBackend::default_device_name() +{ +#if (RTAUDIO_VERSION_MAJOR >= 6) + return _rtaudio.getDeviceInfo(_rtaudio.getDefaultOutputDevice()).name; +#else + try { + return _rtaudio.getDeviceInfo(_rtaudio.getDefaultOutputDevice()).name; + } catch (RtAudioError&) { + /* Never mind */ + } +#endif + return {}; +} + + void AudioBackend::abort_stream_if_running() { diff --git a/src/wx/audio_backend.h b/src/wx/audio_backend.h index bb1c2048f..f2a44a5fb 100644 --- a/src/wx/audio_backend.h +++ b/src/wx/audio_backend.h @@ -23,6 +23,7 @@ LIBDCP_DISABLE_WARNINGS #include LIBDCP_ENABLE_WARNINGS +#include @@ -39,6 +40,7 @@ public: } std::vector output_device_names(); + boost::optional default_device_name(); void abort_stream_if_running(); boost::optional start_stream(); diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index da6dcbd16..d97eeecc5 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -912,20 +912,10 @@ SoundPage::sound_changed () void SoundPage::sound_output_changed () { - auto& audio = AudioBackend::instance()->rtaudio(); - auto const so = get_sound_output(); - string default_device; -#if (RTAUDIO_VERSION_MAJOR >= 6) - default_device = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; -#else - try { - default_device = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; - } catch (RtAudioError&) { - /* Never mind */ - } -#endif - if (!so || *so == default_device) { + auto default_device = AudioBackend::instance()->default_device_name(); + + if (!so || so == default_device) { Config::instance()->unset_sound_output (); } else { Config::instance()->set_sound_output (*so); @@ -948,15 +938,7 @@ SoundPage::config_changed () configured_so = config->sound_output().get(); } else { /* No configured output means we should use the default */ -#if (RTAUDIO_VERSION_MAJOR >= 6) - configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; -#else - try { - configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; - } catch (RtAudioError&) { - /* Probably no audio devices at all */ - } -#endif + configured_so = AudioBackend::instance()->default_device_name(); } if (configured_so && current_so != configured_so) { -- cgit v1.2.3