BOOST_FOREACH.
[dcpomatic.git] / src / wx / config_dialog.cc
index 44fd8ecde5892ee2a1860c25444a07a97438724b..14abc286b115f616cbf4a786cd9770be4e012d30 100644 (file)
@@ -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<string> 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<string> input;
+       vector<NamedChannel> 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<string> output;
+       vector<NamedChannel> output;
        for (int i = 0; i < channels; ++i) {
-               output.push_back (dcp::raw_convert<string>(i));
+               output.push_back (NamedChannel(dcp::raw_convert<string>(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