Build fixes related to simple/GL view.
authorCarl Hetherington <cth@carlh.net>
Mon, 13 May 2019 10:36:09 +0000 (11:36 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 13 May 2019 10:36:09 +0000 (11:36 +0100)
src/tools/dcpomatic_ecinema.cc
src/wx/film_viewer.cc
src/wx/film_viewer.h
src/wx/simple_video_view.cc
src/wx/video_view.h

index bcd0907..a3f2288 100644 (file)
@@ -181,6 +181,6 @@ main (int argc, char* argv[])
        avformat_free_context (output_fc);
 
        DecryptedECinemaKDM decrypted_kdm (key);
-       EncryptedECinemaKDM encrypted_kdm = decrypted_kdm.encrypt (Config::instance()->decryption_chain());
+       EncryptedECinemaKDM encrypted_kdm = decrypted_kdm.encrypt (Config::instance()->decryption_chain()->leaf());
        cout << encrypted_kdm.as_xml() << "\n";
 }
index 9731891..7994601 100644 (file)
@@ -91,7 +91,6 @@ FilmViewer::FilmViewer (wxWindow* p)
        , _eyes (EYES_LEFT)
        , _pad_black (false)
 #ifdef DCPOMATIC_VARIANT_SWAROOP
-       , _in_watermark (false)
        , _background_image (false)
 #endif
        , _state_timer ("viewer")
@@ -325,28 +324,6 @@ FilmViewer::timer ()
        }
 }
 
-bool
-#ifdef DCPOMATIC_VARIANT_SWAROOP
-XXX
-FilmViewer::maybe_draw_background_image (wxPaintDC& dc)
-{
-       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));
-               return true;
-       }
-
-       return false;
-}
-#else
-FilmViewer::maybe_draw_background_image (wxPaintDC &)
-{
-       return false;
-}
-#endif
-
 void
 FilmViewer::set_outline_content (bool o)
 {
index 450111b..e9450c7 100644 (file)
@@ -93,7 +93,11 @@ public:
 #ifdef DCPOMATIC_VARIANT_SWAROOP
        void set_background_image (bool b) {
                _background_image = b;
-               refresh_panel ();
+               refresh_view ();
+       }
+
+       bool background_image () const {
+               return _background_image;
        }
 #endif
 
@@ -125,6 +129,9 @@ public:
        bool pad_black () const {
                return _pad_black;
        }
+       dcpomatic::DCPTime video_position () const {
+               return _video_position;
+       }
 
        boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;
        boost::signals2::signal<void ()> PositionChanged;
@@ -145,7 +152,6 @@ private:
        void film_change (ChangeType, Film::Property);
        void recreate_butler ();
        void config_changed (Config::Property);
-       bool maybe_draw_background_image (wxPaintDC& dc);
 
        dcpomatic::DCPTime time () const;
        dcpomatic::DCPTime uncorrected_time () const;
@@ -194,9 +200,6 @@ private:
        bool _pad_black;
 
 #ifdef DCPOMATIC_VARIANT_SWAROOP
-       bool _in_watermark;
-       int _watermark_x;
-       int _watermark_y;
        bool _background_image;
 #endif
 
index 0a0fce2..66af8f1 100644 (file)
 
 #include "simple_video_view.h"
 #include "film_viewer.h"
+#include "wx_util.h"
 #include "lib/image.h"
 #include <dcp/util.h>
 #include <wx/wx.h>
 #include <boost/bind.hpp>
 
 using std::max;
+using std::string;
+using boost::optional;
+using namespace dcpomatic;
 
 SimpleVideoView::SimpleVideoView (FilmViewer* viewer, wxWindow* parent)
        : VideoView (viewer)
@@ -49,17 +53,22 @@ SimpleVideoView::paint ()
         _viewer->state_timer().set("paint-panel");
        wxPaintDC dc (_panel);
 
+       dcp::Size const out_size = _viewer->out_size ();
+       wxSize const panel_size = _panel->GetSize ();
+
 #ifdef DCPOMATIC_VARIANT_SWAROOP
-       if (viewer->background_image()) {
+       if (_viewer->background_image()) {
                dc.Clear ();
-               maybe_draw_background_image (dc);
+               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.GetWidth() - image.GetSize().GetWidth()) / 2), max(0, (panel_size.GetHeight() - image.GetSize().GetHeight()) / 2));
+               }
                return;
        }
 #endif
 
-       dcp::Size const out_size = _viewer->out_size ();
-       wxSize const panel_size = _panel->GetSize ();
-
        if (!out_size.width || !out_size.height || !_image || out_size != _image->size()) {
                dc.Clear ();
        } else {
@@ -69,16 +78,15 @@ SimpleVideoView::paint ()
                dc.DrawBitmap (frame_bitmap, 0, max(0, (panel_size.GetHeight() - out_size.height) / 2));
 
 #ifdef DCPOMATIC_VARIANT_SWAROOP
-               XXX
                DCPTime const period = DCPTime::from_seconds(Config::instance()->player_watermark_period() * 60);
-               int64_t n = _video_position.get() / period.get();
+               int64_t n = _viewer->video_position().get() / period.get();
                DCPTime from(n * period.get());
                DCPTime to = from + DCPTime::from_seconds(Config::instance()->player_watermark_duration() / 1000.0);
-               if (from <= _video_position && _video_position <= to) {
+               if (from <= _viewer->video_position() && _viewer->video_position() <= to) {
                        if (!_in_watermark) {
                                _in_watermark = true;
-                               _watermark_x = rand() % _panel_size.width;
-                               _watermark_y = rand() % _panel_size.height;
+                               _watermark_x = rand() % panel_size.GetWidth();
+                               _watermark_y = rand() % panel_size.GetHeight();
                        }
                        dc.SetTextForeground(*wxWHITE);
                        string wm = Config::instance()->player_watermark_theatre();
index af6655e..892ffab 100644 (file)
@@ -33,6 +33,9 @@ class VideoView
 public:
        VideoView (FilmViewer* viewer)
                : _viewer (viewer)
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+               , _in_watermark (false)
+#endif
        {}
 
        virtual ~VideoView () {}
@@ -45,6 +48,12 @@ public:
 
 protected:
        FilmViewer* _viewer;
+
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+       bool _in_watermark;
+       int _watermark_x;
+       int _watermark_y;
+#endif
 };
 
 #endif