Move stress testing code into a separate class and always build it.
[dcpomatic.git] / src / wx / controls.h
index 8ee5310c785a81f3bb2555a957f1a19c6e4905bb..b9c4604b6b298b7cd80d785ff759bbad58079e1e 100644 (file)
@@ -18,6 +18,9 @@
 
 */
 
+#ifndef DCPOMATIC_CONTROLS_H
+#define DCPOMATIC_CONTROLS_H
+
 #include "lib/dcpomatic_time.h"
 #include "lib/types.h"
 #include "lib/film.h"
@@ -32,6 +35,11 @@ class Content;
 class PlayerVideo;
 class wxToggleButton;
 class wxListCtrl;
+class ContentView;
+
+namespace dcp {
+       class CPL;
+}
 
 class Controls : public wxPanel
 {
@@ -39,21 +47,35 @@ public:
        Controls (
                wxWindow* parent,
                boost::shared_ptr<FilmViewer>,
-               bool outline_content = true,
-               bool jump_to_selected = true,
-               bool eyes = true,
-               bool dcp_directory = false
+               bool editor_controls = true
                );
 
+       virtual void log (wxString) {}
+       virtual void set_film (boost::shared_ptr<Film> film);
+
+       virtual void play () {};
+       virtual void stop () {};
+       void seek (int slider);
+
        boost::shared_ptr<Film> film () const;
        void back_frame ();
        void forward_frame ();
 
-       void show_dcp_directory (bool s);
+protected:
+       virtual void started ();
+       virtual void stopped ();
+       virtual void setup_sensitivity ();
+       virtual void config_changed (int property);
 
-       boost::signals2::signal<void (boost::filesystem::path)> DCPDirectorySelected;
+       wxSizer* _v_sizer;
+       wxBoxSizer* _button_sizer;
+       boost::shared_ptr<Film> _film;
+       wxSlider* _slider;
+       boost::shared_ptr<FilmViewer> _viewer;
+       boost::optional<std::string> _active_job;
 
 private:
+
        void update_position_label ();
        void update_position_slider ();
        void rewind_clicked (wxMouseEvent &);
@@ -61,48 +83,36 @@ private:
        void forward_clicked (wxKeyboardState &);
        void slider_moved (bool page);
        void slider_released ();
-       void play_clicked ();
        void frame_number_clicked ();
        void jump_to_selected_clicked ();
-       void setup_sensitivity ();
        void timecode_clicked ();
-       void check_play_state ();
        void active_jobs_changed (boost::optional<std::string>);
-       DCPTime nudge_amount (wxKeyboardState& ev);
+       dcpomatic::DCPTime nudge_amount (wxKeyboardState& ev);
        void image_changed (boost::weak_ptr<PlayerVideo>);
-       void film_change (ChangeType type, Film::Property p);
        void outline_content_changed ();
        void eye_changed ();
-       void position_changed ();
-       void started ();
-       void stopped ();
-       void film_changed ();
-       void update_dcp_directory ();
-       void dcp_directory_changed ();
-       void dcp_directory_selected ();
-       void config_changed (int property);
+       void update_position ();
+       void film_change (ChangeType, Film::Property);
 
-       boost::shared_ptr<Film> _film;
-       boost::shared_ptr<FilmViewer> _viewer;
+       typedef std::pair<boost::shared_ptr<dcp::CPL>, boost::filesystem::path> CPL;
 
-       wxSizer* _v_sizer;
        bool _slider_being_moved;
-       bool _was_running_before_slider;
 
        wxCheckBox* _outline_content;
        wxChoice* _eye;
        wxCheckBox* _jump_to_selected;
-       wxListCtrl* _dcp_directory;
-       std::vector<boost::filesystem::path> _dcp_directories;
-       wxSlider* _slider;
        wxButton* _rewind_button;
        wxButton* _back_button;
        wxButton* _forward_button;
        wxStaticText* _frame_number;
        wxStaticText* _timecode;
-       wxToggleButton* _play_button;
 
        ClosedCaptionsDialog* _closed_captions_dialog;
 
+       wxTimer _timer;
+
+       boost::signals2::scoped_connection _film_change_connection;
        boost::signals2::scoped_connection _config_changed_connection;
 };
+
+#endif