Cleanup: handle Filter objects by value rather than by reference.
[dcpomatic.git] / src / wx / content_advanced_dialog.h
index 1dd2b472d917a8e715bdd80a0ffeee95faf2232e..8f27fd822d89a4439c328bbfb3b80eed612dcc7d 100644 (file)
 */
 
 
+#include <dcp/language_tag.h>
 #include <dcp/warnings.h>
 LIBDCP_DISABLE_WARNINGS
 #include <wx/wx.h>
 LIBDCP_ENABLE_WARNINGS
+#include <boost/optional.hpp>
 #include <memory>
 #include <vector>
 
 
+class CheckBox;
 class Content;
 class Filter;
 class LanguageTagWidget;
@@ -37,24 +40,34 @@ class ContentAdvancedDialog : public wxDialog
 public:
        ContentAdvancedDialog (wxWindow* parent, std::shared_ptr<Content> content);
 
+       bool ignore_video() const;
+
+       std::vector<Filter> filters() {
+               return _filters_list;
+       }
+
+       boost::optional<double> video_frame_rate() const;
+       boost::optional<dcp::LanguageTag> burnt_subtitle_language() const;
+
 private:
-       void ignore_video_changed (wxCommandEvent& ev);
        void edit_filters ();
-       void filters_changed (std::vector<Filter const *> filters);
+       void filters_changed(std::vector<Filter> const& filters);
        void setup_filters ();
        void set_video_frame_rate ();
        void video_frame_rate_changed ();
        void setup_sensitivity ();
        void burnt_subtitle_changed ();
-       void burnt_subtitle_language_changed ();
 
        std::shared_ptr<Content> _content;
+       bool _filters_allowed = false;
+       std::vector<Filter> _filters_list;
 
        wxStaticText* _filters;
        wxButton* _filters_button;
        wxTextCtrl* _video_frame_rate;
        wxButton* _set_video_frame_rate;
-       wxCheckBox* _burnt_subtitle;
+       CheckBox* _burnt_subtitle;
        LanguageTagWidget* _burnt_subtitle_language;
+       CheckBox* _ignore_video;
 };