Set up new watermark config.
[dcpomatic.git] / src / wx / film_viewer.cc
index a27c0053d8ca6204dfa27c7a4adde1db7b64504c..0f18f2e722433d382513764362356aa971803c7c 100644 (file)
@@ -91,7 +91,7 @@ FilmViewer::FilmViewer (wxWindow* p)
 #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));
@@ -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;
        }
 
@@ -319,6 +327,10 @@ FilmViewer::paint_panel ()
        wxBitmap frame_bitmap (frame);
        dc.DrawBitmap (frame_bitmap, 0, max(0, (_panel_size.height - _out_size.height) / 2));
 
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       /* XXX: watermark */
+#endif
+
        if (_out_size.width < _panel_size.width) {
                wxPen p (_panel->GetParent()->GetBackgroundColour());
                wxBrush b (_panel->GetParent()->GetBackgroundColour());
@@ -422,7 +434,7 @@ FilmViewer::start ()
        _playing = true;
        _dropped = 0;
        timer ();
-       Started ();
+       Started (position());
 }
 
 bool
@@ -438,7 +450,7 @@ FilmViewer::stop ()
        }
 
        _playing = false;
-       Stopped ();
+       Stopped (position());
        return true;
 }
 
@@ -556,11 +568,19 @@ FilmViewer::seek (DCPTime t, bool accurate)
        }
 
        PositionChanged ();
+       Seeked (position());
 }
 
 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;
        }