Put Time types in dcpomatic namespace.
[dcpomatic.git] / src / wx / film_viewer.cc
index b728f6b2a0a47c8a69d54a69f0b5761260b5fe42..48fbf9fdce1eba2062a2ed72b67fc5d91f6d9ccc 100644 (file)
@@ -67,6 +67,7 @@ using boost::dynamic_pointer_cast;
 using boost::weak_ptr;
 using boost::optional;
 using dcp::Size;
+using namespace dcpomatic;
 
 static
 int
@@ -92,6 +93,8 @@ FilmViewer::FilmViewer (wxWindow* p)
        , _in_watermark (false)
        , _background_image (false)
 #endif
+       , _state_timer ("viewer")
+       , _gets (0)
 {
 #ifndef __WXOSX__
        _panel->SetDoubleBuffered (true);
@@ -211,14 +214,17 @@ FilmViewer::recreate_butler ()
 void
 FilmViewer::refresh_panel ()
 {
+       _state_timer.set ("refresh-panel");
        _panel->Refresh ();
        _panel->Update ();
+       _state_timer.unset ();
 }
 
 void
 FilmViewer::get ()
 {
        DCPOMATIC_ASSERT (_butler);
+       ++_gets;
 
        do {
                Butler::Error e;
@@ -275,9 +281,12 @@ FilmViewer::display_player_video ()
         * image and convert it (from whatever the user has said it is) to RGB.
         */
 
+       _state_timer.set ("get image");
        _frame = _player_video.first->image (bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24), false, true);
 
+       _state_timer.set ("ImageChanged");
        ImageChanged (_player_video.first);
+       _state_timer.unset ();
 
        _video_position = _player_video.second;
        _inter_position = _player_video.first->inter_position ();
@@ -337,12 +346,15 @@ FilmViewer::maybe_draw_background_image (wxPaintDC &)
 void
 FilmViewer::paint_panel ()
 {
+       _state_timer.set ("paint-panel");
+
        wxPaintDC dc (_panel);
 
 #ifdef DCPOMATIC_VARIANT_SWAROOP
        if (_background_image) {
                dc.Clear ();
                maybe_draw_background_image (dc);
+               _state_timer.unset ();
                return;
        }
 #endif
@@ -393,7 +405,7 @@ FilmViewer::paint_panel ()
                dc.SetBrush (b);
                int const gap = (_panel_size.height - _out_size.height) / 2;
                dc.DrawRectangle (0, 0, _panel_size.width, gap);
-               dc.DrawRectangle (0, gap + _out_size.height + 1, _panel_size.width, gap);
+               dc.DrawRectangle (0, gap + _out_size.height + 1, _panel_size.width, gap + 1);
        }
 
        if (_outline_content) {
@@ -402,6 +414,8 @@ FilmViewer::paint_panel ()
                dc.SetBrush (*wxTRANSPARENT_BRUSH);
                dc.DrawRectangle (_inter_position.x, _inter_position.y + (_panel_size.height - _out_size.height) / 2, _inter_size.width, _inter_size.height);
        }
+
+       _state_timer.unset ();
 }
 
 void