From 4dcc035993a3716b63c6d65f24d5d4fbcdc90845 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 6 Feb 2019 15:27:49 +0000 Subject: [PATCH] swaroop: re-work background image logic. --- src/wx/film_viewer.cc | 7 ++++--- src/wx/film_viewer.h | 8 ++++++++ src/wx/swaroop_controls.cc | 5 +++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index dd088db20..7a0f1b5b4 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -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; } diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index 123172ad2..972a88a5a 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -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)> ImageChanged; boost::signals2::signal PositionChanged; boost::signals2::signal 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; diff --git a/src/wx/swaroop_controls.cc b/src/wx/swaroop_controls.cc index d16f36132..aa3a095ec 100644 --- a/src/wx/swaroop_controls.cc +++ b/src/wx/swaroop_controls.cc @@ -118,6 +118,8 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr 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(new Film(optional()))); } } -- 2.30.2