Emit no audio from DCPs if none is mapped
[dcpomatic.git] / src / wx / controls.h
index 377960425ba2807e5982ede7f25ffd4ec8e376a5..75bae9bb3877635f50e02f27aa67fdb48baca83f 100644 (file)
 #define DCPOMATIC_CONTROLS_H
 
 
+#include "lib/change_signaller.h"
 #include "lib/dcpomatic_time.h"
-#include "lib/types.h"
-#include "lib/film.h"
-#include "lib/warnings.h"
-DCPOMATIC_DISABLE_WARNINGS
+#include "lib/film_property.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/wx.h>
-DCPOMATIC_ENABLE_WARNINGS
+LIBDCP_ENABLE_WARNINGS
 #include <boost/signals2.hpp>
 
 
-class FilmViewer;
-class Film;
+class CheckBox;
 class ClosedCaptionsDialog;
 class Content;
+class ContentView;
+class Film;
+class FilmViewer;
+class MarkersPanel;
 class PlayerVideo;
-class wxToggleButton;
+
 class wxListCtrl;
-class ContentView;
+class wxToggleButton;
 
 
 namespace dcp {
@@ -53,12 +56,11 @@ class Controls : public wxPanel
 public:
        Controls (
                wxWindow* parent,
-               std::shared_ptr<FilmViewer>,
+               FilmViewer &,
                bool editor_controls = true
                );
 
-       virtual void log (wxString) {}
-       virtual void set_film (std::shared_ptr<Film> film);
+       void set_film (std::shared_ptr<Film> film);
 
        virtual void play () {};
        virtual void stop () {};
@@ -78,8 +80,9 @@ protected:
        wxSizer* _v_sizer;
        wxBoxSizer* _button_sizer;
        std::shared_ptr<Film> _film;
+       MarkersPanel* _markers;
        wxSlider* _slider;
-       std::weak_ptr<FilmViewer> _viewer;
+       FilmViewer& _viewer;
        boost::optional<std::string> _active_job;
 
 private:
@@ -100,15 +103,15 @@ private:
        void outline_content_changed ();
        void eye_changed ();
        void update_position ();
-       void film_change (ChangeType, Film::Property);
+       void film_change(ChangeType, FilmProperty);
 
        typedef std::pair<std::shared_ptr<dcp::CPL>, boost::filesystem::path> CPL;
 
-       bool _slider_being_moved;
+       bool _slider_being_moved = false;
 
-       wxCheckBox* _outline_content;
-       wxChoice* _eye;
-       wxCheckBox* _jump_to_selected;
+       CheckBox* _outline_content = nullptr;
+       wxChoice* _eye = nullptr;
+       CheckBox* _jump_to_selected = nullptr;
        wxButton* _rewind_button;
        wxButton* _back_button;
        wxButton* _forward_button;