Bind audio API choice to do something.
[dcpomatic.git] / src / wx / config_dialog.h
index e0d7f15b8447cc1c9f59f35f6ab5113882671a7d..1f70a058af48d81521fdcab083ee56b4ab21d488 100644 (file)
@@ -50,6 +50,8 @@ LIBDCP_ENABLE_WARNINGS
 
 class AudioMappingView;
 class CheckBox;
+class Choice;
+class FilmViewer;
 
 
 class Page : public wxPreferencesPage
@@ -189,8 +191,9 @@ private:
 class SoundPage : public Page
 {
 public:
-       SoundPage (wxSize panel_size, int border)
+       SoundPage(wxSize panel_size, int border, FilmViewer* viewer)
                : Page (panel_size, border)
+               , _viewer(viewer)
        {}
 
        wxString GetName() const override;
@@ -206,18 +209,23 @@ private:
 
        void setup () override;
        void config_changed () override;
-        boost::optional<std::string> get_sound_output ();
+       boost::optional<std::string> get_sound_api() const;
+       boost::optional<std::string> get_sound_output() const;
        void sound_changed ();
+       void sound_api_changed();
        void sound_output_changed ();
        void setup_sensitivity ();
        void map_changed (AudioMapping m);
        void reset_to_default ();
+       void update_sound_outputs();
 
        CheckBox* _sound;
+       Choice* _sound_api;
        wxChoice* _sound_output;
        wxStaticText* _sound_output_details;
        AudioMappingView* _map;
        Button* _reset_to_default;
+       FilmViewer* _viewer;
 };