X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Fconfig_dialog.cc;h=14abc286b115f616cbf4a786cd9770be4e012d30;hp=44fd8ecde5892ee2a1860c25444a07a97438724b;hb=a5d004b0773f633401528392fc28e66d70e13ac8;hpb=94aadbd62c259a73d7511522dd167d519c68c5f9 diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 44fd8ecde..14abc286b 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -34,8 +34,11 @@ using std::make_pair; using std::map; using boost::bind; using boost::optional; -using boost::shared_ptr; +using std::shared_ptr; using boost::function; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif static bool @@ -485,7 +488,7 @@ CertificateChainEditor::update_certificate_list () _certificates->DeleteAllItems (); size_t n = 0; dcp::CertificateChain::List certs = _get()->root_to_leaf (); - BOOST_FOREACH (dcp::Certificate const & i, certs) { + for (auto const& i: certs) { wxListItem item; item.SetId (n); _certificates->InsertItem (item); @@ -878,9 +881,13 @@ SoundPage::setup () RtAudio audio (DCPOMATIC_RTAUDIO_API); for (unsigned int i = 0; i < audio.getDeviceCount(); ++i) { - RtAudio::DeviceInfo dev = audio.getDeviceInfo (i); - if (dev.probed && dev.outputChannels > 0) { - _sound_output->Append (std_to_wx (dev.name)); + try { + RtAudio::DeviceInfo dev = audio.getDeviceInfo (i); + if (dev.probed && dev.outputChannels > 0) { + _sound_output->Append (std_to_wx (dev.name)); + } + } catch (RtAudioError&) { + /* Something went wrong so let's just ignore that device */ } } @@ -913,7 +920,13 @@ SoundPage::sound_output_changed () { RtAudio audio (DCPOMATIC_RTAUDIO_API); optional const so = get_sound_output(); - if (!so || *so == audio.getDeviceInfo(audio.getDefaultOutputDevice()).name) { + string default_device; + try { + default_device = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; + } catch (RtAudioError&) { + /* Never mind */ + } + if (!so || *so == default_device) { Config::instance()->unset_sound_output (); } else { Config::instance()->set_sound_output (*so); @@ -937,7 +950,7 @@ SoundPage::config_changed () RtAudio audio (DCPOMATIC_RTAUDIO_API); try { configured_so = audio.getDeviceInfo(audio.getDefaultOutputDevice()).name; - } catch (RtAudioError& e) { + } catch (RtAudioError&) { /* Probably no audio devices at all */ } } @@ -970,9 +983,13 @@ SoundPage::config_changed () int channels = 0; if (configured_so) { for (unsigned int i = 0; i < audio.getDeviceCount(); ++i) { - RtAudio::DeviceInfo info = audio.getDeviceInfo(i); - if (info.name == *configured_so && info.outputChannels > 0) { - channels = info.outputChannels; + try { + RtAudio::DeviceInfo info = audio.getDeviceInfo(i); + if (info.name == *configured_so && info.outputChannels > 0) { + channels = info.outputChannels; + } + } catch (RtAudioError&) { + /* Never mind */ } } } @@ -983,15 +1000,15 @@ SoundPage::config_changed () _map->set (Config::instance()->audio_mapping(channels)); - vector input; + vector input; for (int i = 0; i < MAX_DCP_AUDIO_CHANNELS; ++i) { - input.push_back (short_audio_channel_name(i)); + input.push_back (NamedChannel(short_audio_channel_name(i), i)); } _map->set_input_channels (input); - vector output; + vector output; for (int i = 0; i < channels; ++i) { - output.push_back (dcp::raw_convert(i)); + output.push_back (NamedChannel(dcp::raw_convert(i), i)); } _map->set_output_channels (output); @@ -1040,7 +1057,6 @@ LocationsPage::GetLargeIcon () const void LocationsPage::setup () { - int r = 0; wxGridBagSizer* table = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); @@ -1061,19 +1077,9 @@ LocationsPage::setup () table->Add (_kdm_directory, wxGBPosition (r, 1)); ++r; -#ifdef DCPOMATIC_VARIANT_SWAROOP - add_label_to_sizer (table, _panel, _("Background image"), true, wxGBPosition (r, 0)); - _background_image = new FilePickerCtrl (_panel, _("Select image file"), "*.png;*.jpg;*.jpeg;*.tif;*.tiff", true, false); - table->Add (_background_image, wxGBPosition (r, 1)); - ++r; -#endif - _content_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::content_directory_changed, this)); _playlist_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::playlist_directory_changed, this)); _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&LocationsPage::kdm_directory_changed, this)); -#ifdef DCPOMATIC_VARIANT_SWAROOP - _background_image->Bind (wxEVT_FILEPICKER_CHANGED, bind(&LocationsPage::background_image_changed, this)); -#endif } void @@ -1090,11 +1096,6 @@ LocationsPage::config_changed () if (config->player_kdm_directory()) { checked_set (_kdm_directory, *config->player_kdm_directory()); } -#ifdef DCPOMATIC_VARIANT_SWAROOP - if (config->player_background_image()) { - checked_set (_background_image, *config->player_background_image()); - } -#endif } void @@ -1114,20 +1115,3 @@ LocationsPage::kdm_directory_changed () { Config::instance()->set_player_kdm_directory(wx_to_std(_kdm_directory->GetPath())); } - -#ifdef DCPOMATIC_VARIANT_SWAROOP -void -LocationsPage::background_image_changed () -{ - boost::filesystem::path const f = wx_to_std(_background_image->GetPath()); - if (!boost::filesystem::is_regular_file(f) || !wxImage::CanRead(std_to_wx(f.string()))) { - error_dialog (0, _("Could not load image file.")); - if (Config::instance()->player_background_image()) { - checked_set (_background_image, *Config::instance()->player_background_image()); - } - return; - } - - Config::instance()->set_player_background_image(f); -} -#endif