summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-07-25 16:29:27 +0200
committerCarl Hetherington <cth@carlh.net>2024-07-26 11:39:59 +0200
commit349b0ca2ef8ab16d95d57d121960480ecce0cb7f (patch)
tree29a2fa8ebf618377325657fbc6e5ad7dc9c724b6
parent5fc64dfcf121d785de3445d10fa7510a30c55965 (diff)
Add AudioBackend::default_device_name().
-rw-r--r--src/wx/audio_backend.cc16
-rw-r--r--src/wx/audio_backend.h2
-rw-r--r--src/wx/config_dialog.cc26
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) {