diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-09-26 22:17:11 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-09-26 22:17:11 +0100 |
| commit | 2d48fee30e323dfea9cc331f881637d91ee0895a (patch) | |
| tree | d551ac5f171252bd9bd7a959c5dda041cf5d8a61 | |
| parent | be3ec98436ca28554d9414f5d5a2e3fa18846f3d (diff) | |
Finish off background image support for swaroop variant.
| -rw-r--r-- | src/lib/config.h | 7 | ||||
| -rw-r--r-- | src/wx/film_viewer.cc | 15 | ||||
| -rw-r--r-- | src/wx/player_config_dialog.cc | 2 |
3 files changed, 21 insertions, 3 deletions
diff --git a/src/lib/config.h b/src/lib/config.h index 04f521575..2ebfef84d 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -77,6 +77,9 @@ public: SOUND_OUTPUT, INTERFACE_COMPLEXITY, PLAYER_DCP_DIRECTORY, +#ifdef DCPOMATIC_VARIANT_SWAROOP + PLAYER_BACKGROUND_IMAGE, +#endif OTHER }; @@ -944,7 +947,7 @@ public: #ifdef DCPOMATIC_VARIANT_SWAROOP void set_player_background_image (boost::filesystem::path p) { - maybe_set (_player_background_image, p); + maybe_set (_player_background_image, p, PLAYER_BACKGROUND_IMAGE); } void unset_player_background_image () { @@ -952,7 +955,7 @@ public: return; } _player_background_image = boost::none; - changed (); + changed (PLAYER_BACKGROUND_IMAGE); } #endif diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index fd3bfa1c1..5a3e58724 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -312,6 +312,14 @@ FilmViewer::paint_panel () if (!_frame || !_film || !_out_size.width || !_out_size.height || _out_size != _frame->size()) { dc.Clear (); +#ifdef DCPOMATIC_VARIANT_SWAROOP + optional<boost::filesystem::path> bg = Config::instance()->player_background_image(); + if (bg) { + wxImage image (std_to_wx(bg->string())); + wxBitmap bitmap (image); + dc.DrawBitmap (bitmap, max(0, (_panel_size.width - image.GetSize().GetWidth()) / 2), max(0, (_panel_size.height - image.GetSize().GetHeight()) / 2)); + } +#endif return; } @@ -562,6 +570,13 @@ FilmViewer::seek (DCPTime t, bool accurate) void FilmViewer::config_changed (Config::Property p) { +#ifdef DCPOMATIC_VARIANT_SWAROOP + if (p == Config::PLAYER_BACKGROUND_IMAGE) { + refresh_panel (); + return; + } +#endif + if (p != Config::SOUND && p != Config::SOUND_OUTPUT) { return; } diff --git a/src/wx/player_config_dialog.cc b/src/wx/player_config_dialog.cc index a24dbc880..768459e0a 100644 --- a/src/wx/player_config_dialog.cc +++ b/src/wx/player_config_dialog.cc @@ -134,7 +134,7 @@ private: _dcp_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&PlayerGeneralPage::dcp_directory_changed, this)); _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&PlayerGeneralPage::kdm_directory_changed, this)); #ifdef DCPOMATIC_VARIANT_SWAROOP - _background_image->Bind (wxEVT_DIRPICKER_CHANGED, bind(&PlayerGeneralPage::background_image_changed, this)); + _background_image->Bind (wxEVT_FILEPICKER_CHANGED, bind(&PlayerGeneralPage::background_image_changed, this)); #endif } |
