diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-09-27 22:05:24 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-09-27 22:05:24 +0100 |
| commit | 97201e626d697e7dff203b2ea4f4a2c268d98313 (patch) | |
| tree | 6c5058676e4ce8977b75e0a513e595b41c1a622c /src | |
| parent | 595278aced18ca2597787e933b383c04a850e3d8 (diff) | |
Basic watermark.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/config.h | 2 | ||||
| -rw-r--r-- | src/wx/film_viewer.cc | 19 | ||||
| -rw-r--r-- | src/wx/film_viewer.h | 6 |
3 files changed, 26 insertions, 1 deletions
diff --git a/src/lib/config.h b/src/lib/config.h index 8ddc0367d..629828da9 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -1188,7 +1188,9 @@ private: boost::optional<boost::filesystem::path> _player_background_image; std::string _kdm_server_url; std::string _player_watermark_theatre; + /** watermark period in minutes */ int _player_watermark_period; + /** watermark duration in milliseconds */ int _player_watermark_duration; #endif diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 0f18f2e72..54de78f27 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -85,6 +85,9 @@ FilmViewer::FilmViewer (wxWindow* p) , _closed_captions_dialog (new ClosedCaptionsDialog(p)) , _outline_content (false) , _eyes (EYES_LEFT) +#ifdef DCPOMATIC_VARIANT_SWAROOP + , _in_watermark (false) +#endif { #ifndef __WXOSX__ _panel->SetDoubleBuffered (true); @@ -328,7 +331,21 @@ FilmViewer::paint_panel () dc.DrawBitmap (frame_bitmap, 0, max(0, (_panel_size.height - _out_size.height) / 2)); #ifdef DCPOMATIC_VARIANT_SWAROOP - /* XXX: watermark */ + DCPTime const period = DCPTime::from_seconds(Config::instance()->player_watermark_period() * 60); + int64_t n = _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 (!_in_watermark) { + _in_watermark = true; + _watermark_x = rand() % _panel_size.width; + _watermark_y = rand() % _panel_size.height; + } + dc.SetTextForeground(*wxWHITE); + dc.DrawText(std_to_wx(Config::instance()->player_watermark_theatre()), _watermark_x, _watermark_y); + } else { + _in_watermark = false; + } #endif if (_out_size.width < _panel_size.width) { diff --git a/src/wx/film_viewer.h b/src/wx/film_viewer.h index 94690daea..ef124fad3 100644 --- a/src/wx/film_viewer.h +++ b/src/wx/film_viewer.h @@ -154,5 +154,11 @@ private: bool _outline_content; Eyes _eyes; +#ifdef DCPOMATIC_VARIANT_SWAROOP + bool _in_watermark; + int _watermark_x; + int _watermark_y; +#endif + boost::signals2::scoped_connection _config_changed_connection; }; |
