Move stress testing code into a separate class and always build it.
[dcpomatic.git] / src / wx / controls.h
index dba981d1436e072bff1ff083c2fc27c42ed353dc..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,7 @@ class Content;
 class PlayerVideo;
 class wxToggleButton;
 class wxListCtrl;
+class ContentView;
 
 namespace dcp {
        class CPL;
@@ -46,14 +50,32 @@ public:
                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_extended_player_controls (bool s);
-       void log (wxString s);
+protected:
+       virtual void started ();
+       virtual void stopped ();
+       virtual void setup_sensitivity ();
+       virtual void config_changed (int property);
+
+       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,77 +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 ();
-#ifndef DCPOMATIC_PLAYER_SWAROOP
-       void check_play_state ();
-#endif
        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 config_changed (int property);
+       void update_position ();
+       void film_change (ChangeType, Film::Property);
 
        typedef std::pair<boost::shared_ptr<dcp::CPL>, boost::filesystem::path> CPL;
 
-       boost::shared_ptr<Content> selected_content () const;
-#ifdef DCPOMATIC_VARIANT_SWAROOP
-       void pause_clicked ();
-       void stop_clicked ();
-#endif
-       void add_clicked ();
-       void save_clicked ();
-       void load_clicked ();
-       void add_content_to_list (boost::shared_ptr<Content> content, wxListCtrl* list);
-
-       boost::shared_ptr<Film> _film;
-       boost::shared_ptr<FilmViewer> _viewer;
-
-       wxSizer* _v_sizer;
        bool _slider_being_moved;
-       bool _was_running_before_slider;
 
        wxCheckBox* _outline_content;
        wxChoice* _eye;
        wxCheckBox* _jump_to_selected;
-       wxListCtrl* _content_view;
-       wxListCtrl* _spl_view;
-       wxTextCtrl* _log;
-       wxButton* _add_button;
-       wxButton* _save_button;
-       wxButton* _load_button;
-       std::vector<boost::shared_ptr<Content> > _content;
-       wxSlider* _slider;
        wxButton* _rewind_button;
        wxButton* _back_button;
        wxButton* _forward_button;
        wxStaticText* _frame_number;
        wxStaticText* _timecode;
-#ifdef DCPOMATIC_VARIANT_SWAROOP
-       wxButton* _play_button;
-       wxButton* _pause_button;
-       wxButton* _stop_button;
-#else
-       wxToggleButton* _play_button;
-#endif
-       boost::optional<std::string> _active_job;
 
        ClosedCaptionsDialog* _closed_captions_dialog;
 
-#ifdef DCPOMATIC_VARIANT_SWAROOP
-       boost::optional<dcp::ContentKind> _current_kind;
-#endif
+       wxTimer _timer;
 
+       boost::signals2::scoped_connection _film_change_connection;
        boost::signals2::scoped_connection _config_changed_connection;
 };
+
+#endif