summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-09-26 22:17:11 +0100
committerCarl Hetherington <cth@carlh.net>2018-09-26 22:17:11 +0100
commit2d48fee30e323dfea9cc331f881637d91ee0895a (patch)
treed551ac5f171252bd9bd7a959c5dda041cf5d8a61
parentbe3ec98436ca28554d9414f5d5a2e3fa18846f3d (diff)
Finish off background image support for swaroop variant.
-rw-r--r--src/lib/config.h7
-rw-r--r--src/wx/film_viewer.cc15
-rw-r--r--src/wx/player_config_dialog.cc2
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
}