checked_set (_preview_sound, config->preview_sound());
optional<string> const current_so = get_preview_sound_output ();
checked_set (_preview_sound, config->preview_sound());
optional<string> const current_so = get_preview_sound_output ();
if (config->preview_sound_output()) {
configured_so = config->preview_sound_output().get();
} else {
/* No configured output means we should use the default */
RtAudio audio (DCPOMATIC_RTAUDIO_API);
if (config->preview_sound_output()) {
configured_so = config->preview_sound_output().get();
} else {
/* No configured output means we should use the default */
RtAudio audio (DCPOMATIC_RTAUDIO_API);
- configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name;
+ try {
+ configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name;
+ } catch (RtAudioError& e) {
+ /* Probably no audio devices at all */
+ }
/* Update _preview_sound_output with the configured value */
unsigned int i = 0;
while (i < _preview_sound_output->GetCount()) {
/* Update _preview_sound_output with the configured value */
unsigned int i = 0;
while (i < _preview_sound_output->GetCount()) {