Primitive dropped frame count in display.
[dcpomatic.git] / src / wx / film_viewer.h
index aacede06e5bf64ff43629d8be01fb82951fff273..419ee4c294b1be9db7d8d23e91c98961446cb20c 100644 (file)
@@ -41,10 +41,13 @@ class Butler;
 class FilmViewer : public wxPanel
 {
 public:
-       FilmViewer (wxWindow *);
+       FilmViewer (wxWindow *, bool outline_content = true, bool jump_to_selected = true);
        ~FilmViewer ();
 
        void set_film (boost::shared_ptr<Film>);
+       boost::shared_ptr<Film> film () const {
+               return _film;
+       }
 
        /** @return our `playhead' position; this may not lie exactly on a frame boundary */
        DCPTime position () const {
@@ -53,9 +56,14 @@ public:
 
        void set_position (DCPTime p);
        void set_coalesce_player_changes (bool c);
+       void set_dcp_decode_reduction (boost::optional<int> reduction);
 
        void refresh ();
 
+       int dropped () const {
+               return _dropped;
+       }
+
        int audio_callback (void* out, unsigned int frames);
 
        boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;
@@ -63,7 +71,7 @@ public:
 private:
        void paint_panel ();
        void panel_sized (wxSizeEvent &);
-       void slider_moved ();
+       void slider_moved (bool update_slider);
        void play_clicked ();
        void timer ();
        void calculate_sizes ();
@@ -90,11 +98,13 @@ private:
        void start ();
        bool stop ();
        Frame average_latency () const;
+       DCPTime one_video_frame () const;
 
        boost::shared_ptr<Film> _film;
        boost::shared_ptr<Player> _player;
 
        wxSizer* _v_sizer;
+       /** The area that we put our image in */
        wxPanel* _panel;
        wxCheckBox* _outline_content;
        wxRadioButton* _left_eye;
@@ -131,10 +141,12 @@ private:
        bool _playing;
        boost::shared_ptr<Butler> _butler;
 
-        std::list<Frame> _latency_history;
-        /** Mutex to protect _latency_history */
-        mutable boost::mutex _latency_history_mutex;
-        int _latency_history_count;
+       std::list<Frame> _latency_history;
+       /** Mutex to protect _latency_history */
+       mutable boost::mutex _latency_history_mutex;
+       int _latency_history_count;
+
+       int _dropped;
 
        boost::signals2::scoped_connection _config_changed_connection;
 };