swaroop: re-work background image logic. v2.13.113
authorCarl Hetherington <cth@carlh.net>
Wed, 6 Feb 2019 15:27:49 +0000 (15:27 +0000)
committerCarl Hetherington <cth@carlh.net>
Wed, 6 Feb 2019 15:27:49 +0000 (15:27 +0000)
src/wx/film_viewer.cc
src/wx/film_viewer.h
src/wx/swaroop_controls.cc

index dd088db20fa2d59c0c201b0fdca3e260e64c7ba3..7a0f1b5b4445dde2dacb2c4fe4edf4ea7aa27192 100644 (file)
@@ -89,6 +89,7 @@ FilmViewer::FilmViewer (wxWindow* p)
        , _pad_black (false)
 #ifdef DCPOMATIC_VARIANT_SWAROOP
        , _in_watermark (false)
+       , _background_image (false)
 #endif
 {
 #ifndef __WXOSX__
@@ -330,14 +331,14 @@ FilmViewer::paint_panel ()
 {
        wxPaintDC dc (_panel);
 
-       if (!_out_size.width || !_out_size.height || !_frame || _out_size != _frame->size()) {
+       if (_background_image) {
                dc.Clear ();
+               maybe_draw_background_image (dc);
                return;
        }
 
-       if (!_film) {
+       if (!_out_size.width || !_out_size.height || !_film || !_frame || _out_size != _frame->size()) {
                dc.Clear ();
-               maybe_draw_background_image (dc);
                return;
        }
 
index 123172ad24de0e18f60fcb7ff041a1a864999e4b..972a88a5af2aee7c8ed1ef8a27378a37df5e475b 100644 (file)
@@ -88,6 +88,13 @@ public:
 
        int audio_callback (void* out, unsigned int frames);
 
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       void set_background_image (bool b) {
+               _background_image = b;
+               refresh_panel ();
+       }
+#endif
+
        boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;
        boost::signals2::signal<void ()> PositionChanged;
        boost::signals2::signal<void (DCPTime)> Started;
@@ -164,6 +171,7 @@ private:
        bool _in_watermark;
        int _watermark_x;
        int _watermark_y;
+       bool _background_image;
 #endif
 
        boost::signals2::scoped_connection _config_changed_connection;
index d16f36132efd969ec27fbd614d1122bef15e9f52..aa3a095ec459411bd487f3bdac4f14b81658e259 100644 (file)
@@ -118,6 +118,8 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr<FilmViewer> viewe
 
        _content_view->update ();
        update_playlist_directory ();
+
+       _viewer->set_background_image (true);
 }
 
 void
@@ -169,6 +171,7 @@ SwaroopControls::started ()
        Controls::started ();
        _play_button->Enable (false);
        _pause_button->Enable (true);
+       _viewer->set_background_image (false);
 }
 
 void
@@ -214,6 +217,7 @@ SwaroopControls::stop_clicked ()
                _selected_playlist_position = 0;
                update_current_content ();
        }
+       _viewer->set_background_image (true);
 }
 
 bool
@@ -511,6 +515,7 @@ SwaroopControls::viewer_finished ()
                }
        } else {
                _selected_playlist_position = 0;
+               _viewer->set_background_image (true);
                ResetFilm (shared_ptr<Film>(new Film(optional<boost::filesystem::path>())));
        }
 }