From: Carl Hetherington Date: Wed, 20 Nov 2019 23:05:12 +0000 (+0100) Subject: Move _state_timer into VideoView. X-Git-Tag: v2.15.40^2~16 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=9001a63be211fd8e97431f8fc07c66af01554f5a;ds=sidebyside Move _state_timer into VideoView. --- diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index cb9c85b3d..c323c8281 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -93,7 +93,6 @@ FilmViewer::FilmViewer (wxWindow* p) #ifdef DCPOMATIC_VARIANT_SWAROOP , _background_image (false) #endif - , _state_timer ("viewer") , _gets (0) , _idle_get (false) { @@ -228,9 +227,7 @@ FilmViewer::recreate_butler () void FilmViewer::refresh_view () { - _state_timer.set ("update-view"); _video_view->update (); - _state_timer.unset (); } void diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index c6fbd66e4..0699b12ae 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -107,18 +107,14 @@ public: } #endif - StateTimer const & state_timer () const { - return _state_timer; - } - - StateTimer& state_timer () { - return _state_timer; - } - int gets () const { return _gets; } + StateTimer const & state_timer () const { + return _video_view->state_timer (); + } + /* Some accessors and utility methods that VideoView classes need */ dcp::Size out_size () const { return _out_size; @@ -207,7 +203,6 @@ private: bool _background_image; #endif - StateTimer _state_timer; int _gets; /** true if an get() is required next time we are idle */ diff --git a/src/wx/simple_video_view.cc b/src/wx/simple_video_view.cc index e71d89412..437aed4fa 100644 --- a/src/wx/simple_video_view.cc +++ b/src/wx/simple_video_view.cc @@ -56,7 +56,7 @@ SimpleVideoView::SimpleVideoView (FilmViewer* viewer, wxWindow* parent) void SimpleVideoView::paint () { - _viewer->state_timer().set("paint-panel"); + _state_timer.set("paint-panel"); wxPaintDC dc (_panel); dcp::Size const out_size = _viewer->out_size (); @@ -130,14 +130,16 @@ SimpleVideoView::paint () dc.SetBrush (*wxTRANSPARENT_BRUSH); dc.DrawRectangle (_inter_position.x, _inter_position.y + (panel_size.GetHeight() - out_size.height) / 2, _inter_size.width, _inter_size.height); } - _viewer->state_timer().unset(); + _state_timer.unset(); } void SimpleVideoView::update () { + _state_timer.set ("update-view"); _panel->Refresh (); _panel->Update (); + _state_timer.unset (); } void @@ -237,15 +239,15 @@ SimpleVideoView::display_player_video () * image and convert it (from whatever the user has said it is) to RGB. */ - _viewer->_state_timer.set ("get image"); + _state_timer.set ("get image"); set_image ( player_video().first->image(bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true) ); - _viewer->_state_timer.set ("ImageChanged"); + _state_timer.set ("ImageChanged"); _viewer->ImageChanged (player_video().first); - _viewer->_state_timer.unset (); + _state_timer.unset (); _inter_position = player_video().first->inter_position (); _inter_size = player_video().first->inter_size (); diff --git a/src/wx/video_view.cc b/src/wx/video_view.cc index d54487a93..e65888656 100644 --- a/src/wx/video_view.cc +++ b/src/wx/video_view.cc @@ -28,6 +28,7 @@ VideoView::VideoView (FilmViewer* viewer) #ifdef DCPOMATIC_VARIANT_SWAROOP , _in_watermark (false) #endif + , _state_timer ("viewer") , _video_frame_rate (0) , _dropped (0) { diff --git a/src/wx/video_view.h b/src/wx/video_view.h index 8d9dce68d..4a94aa879 100644 --- a/src/wx/video_view.h +++ b/src/wx/video_view.h @@ -22,6 +22,7 @@ #define DCPOMATIC_VIDEO_VIEW_H #include "lib/dcpomatic_time.h" +#include "lib/timer.h" #include #include #include @@ -62,6 +63,10 @@ public: return _dropped; } + StateTimer const & state_timer () const { + return _state_timer; + } + dcpomatic::DCPTime position () const { boost::mutex::scoped_lock lm (_mutex); return _player_video.second; @@ -113,6 +118,8 @@ protected: int _watermark_y; #endif + StateTimer _state_timer; + private: /** Mutex protecting all the state in VideoView */ mutable boost::mutex _mutex;