#endif
_panel->SetBackgroundStyle (wxBG_STYLE_PAINT);
- _panel->SetBackgroundColour (wxNullColour);
+ _panel->SetBackgroundColour (*wxBLACK);
_panel->Bind (wxEVT_PAINT, boost::bind (&FilmViewer::paint_panel, this));
_panel->Bind (wxEVT_SIZE, boost::bind (&FilmViewer::panel_sized, this, _1));
_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 ()
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;
}
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());
_playing = true;
_dropped = 0;
timer ();
- Started ();
+ Started (position());
}
bool
}
_playing = false;
- Stopped ();
+ Stopped (position());
return true;
}
}
PositionChanged ();
+ Seeked (position());
}
void
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;
+ }
+#endif
+
if (p != Config::SOUND && p != Config::SOUND_OUTPUT) {
return;
}