#ifdef DCPOMATIC_VARIANT_SWAROOP
_player_background_image = boost::none;
_kdm_server_url = "http://localhost:8000/{CPL}";
+ _player_watermark = boost::none;
#endif
_allowed_dcp_frame_rates.clear ();
#ifdef DCPOMATIC_VARIANT_SWAROOP
_player_background_image = f.optional_string_child("PlayerBackgroundImage");
_kdm_server_url = f.optional_string_child("KDMServerURL").get_value_or("http://localhost:8000/{CPL}");
+ _player_watermark = f.optional_string_child("PlayerWatermark");
#endif
/* Replace any cinemas from config.xml with those from the configured file */
root->add_child("PlayerBackgroundImage")->add_child_text(_player_background_image->string());
}
root->add_child("KDMServerURL")->add_child_text(_kdm_server_url);
+ if (_player_watermark) {
+ root->add_child("PlayerWatermark")->add_child_text(_player_watermark->string());
+ }
#endif
try {
PLAYER_DCP_DIRECTORY,
#ifdef DCPOMATIC_VARIANT_SWAROOP
PLAYER_BACKGROUND_IMAGE,
+ PLAYER_WATERMARK,
#endif
OTHER
};
std::string kdm_server_url () const {
return _kdm_server_url;
}
+
+ boost::optional<boost::filesystem::path> player_watermark () const {
+ return _player_watermark;
+ }
#endif
/* SET (mostly) */
void set_kdm_server_url (std::string s) {
maybe_set (_kdm_server_url, s);
}
+
+ void set_player_watermark (boost::filesystem::path p) {
+ maybe_set (_player_watermark, p, PLAYER_WATERMARK);
+ }
+
+ void unset_player_watermark () {
+ if (!_player_watermark) {
+ return;
+ }
+ _player_watermark = boost::none;
+ changed (PLAYER_WATERMARK);
+ }
#endif
void changed (Property p = OTHER);
#ifdef DCPOMATIC_VARIANT_SWAROOP
boost::optional<boost::filesystem::path> _player_background_image;
std::string _kdm_server_url;
+ boost::optional<boost::filesystem::path> _player_watermark;
#endif
static int const _current_version;
_config_changed_connection = Config::instance()->Changed.connect (bind (&FilmViewer::config_changed, this, _1));
config_changed (Config::SOUND_OUTPUT);
+ config_changed (Config::PLAYER_WATERMARK);
}
FilmViewer::~FilmViewer ()
wxBitmap frame_bitmap (frame);
dc.DrawBitmap (frame_bitmap, 0, max(0, (_panel_size.height - _out_size.height) / 2));
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ if (_watermark && (_video_position.get() % 960000) == 0) {
+ int x = rand() % (_panel_size.width - _watermark->GetWidth());
+ int y = rand() % (_panel_size.height - _watermark->GetHeight());
+ dc.DrawBitmap (*_watermark, x, y);
+ }
+#endif
+
if (_out_size.width < _panel_size.width) {
wxPen p (_panel->GetParent()->GetBackgroundColour());
wxBrush b (_panel->GetParent()->GetBackgroundColour());
FilmViewer::config_changed (Config::Property p)
{
#ifdef DCPOMATIC_VARIANT_SWAROOP
+ if (p == Config::PLAYER_WATERMARK) {
+ optional<boost::filesystem::path> f = Config::instance()->player_watermark();
+ if (f) {
+ _watermark = wxBitmap(wxImage(std_to_wx(f->string())));
+ } else {
+ _watermark = boost::none;
+ }
+ return;
+ }
+
if (p == Config::PLAYER_BACKGROUND_IMAGE) {
refresh_panel ();
return;
bool _outline_content;
Eyes _eyes;
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ boost::optional<wxBitmap> _watermark;
+#endif
+
boost::signals2::scoped_connection _config_changed_connection;
};
table->Add (_background_image, wxGBPosition (r, 1));
++r;
+ add_label_to_sizer (table, _panel, _("Watermark image"), true, wxGBPosition (r, 0));
+ _watermark = new FilePickerCtrl (_panel, _("Select image file"), "*.png;*.jpg;*.jpeg;*.tif;*.tiff", true);
+ table->Add (_watermark, wxGBPosition (r, 1));
+ ++r;
+
add_label_to_sizer (table, _panel, _("KDM server URL"), true, wxGBPosition(r, 0));
_kdm_server_url = new wxTextCtrl (_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(400, -1));
table->Add (_kdm_server_url, wxGBPosition (r, 1));
#ifdef DCPOMATIC_VARIANT_SWAROOP
_background_image->Bind (wxEVT_FILEPICKER_CHANGED, bind(&PlayerGeneralPage::background_image_changed, this));
_kdm_server_url->Bind (wxEVT_TEXT, bind(&PlayerGeneralPage::kdm_server_url_changed, this));
+ _watermark->Bind (wxEVT_TEXT, bind(&PlayerGeneralPage::watermark_changed, this));
#endif
}
checked_set (_background_image, *config->player_background_image());
}
checked_set (_kdm_server_url, config->kdm_server_url());
+ if (config->player_watermark()) {
+ checked_set (_watermark, *config->player_watermark());
+ }
#endif
}
{
Config::instance()->set_kdm_server_url(wx_to_std(_kdm_server_url->GetValue()));
}
+
+ void watermark_changed ()
+ {
+ Config::instance()->set_player_watermark(wx_to_std(_watermark->GetPath()));
+ }
#endif
wxChoice* _player_mode;
#ifdef DCPOMATIC_VARIANT_SWAROOP
FilePickerCtrl* _background_image;
wxTextCtrl* _kdm_server_url;
+ FilePickerCtrl* _watermark;
#endif
};