diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-07-25 16:29:27 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-07-26 11:39:59 +0200 |
| commit | 349b0ca2ef8ab16d95d57d121960480ecce0cb7f (patch) | |
| tree | 29a2fa8ebf618377325657fbc6e5ad7dc9c724b6 | |
| parent | 5fc64dfcf121d785de3445d10fa7510a30c55965 (diff) | |
Add AudioBackend::default_device_name().
| -rw-r--r-- | src/wx/audio_backend.cc | 16 | ||||
| -rw-r--r-- | src/wx/audio_backend.h | 2 | ||||
| -rw-r--r-- | 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<string> +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 <RtAudio.h> LIBDCP_ENABLE_WARNINGS +#include <boost/optional.hpp> @@ -39,6 +40,7 @@ public: } std::vector<std::string> output_device_names(); + boost::optional<std::string> default_device_name(); void abort_stream_if_running(); boost::optional<std::string> 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) { |
