X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ffilm_viewer.cc;h=d3a6c12e44335a782d5a2e1b802acf15a85581c4;hb=6b1d9adcf6e75fc8e441b61108a2169bda6a6094;hp=4b9528bc04fe64113f3f4e478446139c8745ef9c;hpb=990f879d9af6300068af44c431b1a8e158e7f7a0;p=dcpomatic.git diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 4b9528bc0..d3a6c12e4 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -47,6 +47,7 @@ #include "lib/config.h" #include "lib/compose.hpp" #include "lib/dcpomatic_log.h" +#include "lib/text_content.h" extern "C" { #include } @@ -179,6 +180,7 @@ FilmViewer::set_film (shared_ptr film) _player->set_play_referenced (); _film->Change.connect (boost::bind (&FilmViewer::film_change, this, _1, _2)); + _film->ContentChange.connect (boost::bind(&FilmViewer::content_change, this, _1, _3)); _film->LengthChange.connect (boost::bind(&FilmViewer::film_length_change, this)); _player->Change.connect (boost::bind (&FilmViewer::player_change, this, _1, _2, _3)); @@ -189,6 +191,8 @@ FilmViewer::set_film (shared_ptr film) /* Keep about 1 second's worth of history samples */ _latency_history_count = _film->audio_frame_rate() / _audio_block_size; + _closed_captions_dialog->update_tracks (_film); + recreate_butler (); calculate_sizes (); @@ -221,7 +225,7 @@ FilmViewer::recreate_butler () _butler->disable_audio (); } - _closed_captions_dialog->set_film_and_butler (_film, _butler); + _closed_captions_dialog->set_butler (_butler); resume (); } @@ -233,6 +237,15 @@ FilmViewer::set_outline_content (bool o) _video_view->update (); } + +void +FilmViewer::set_outline_subtitles (optional > rect) +{ + _outline_subtitles = rect; + _video_view->update (); +} + + void FilmViewer::set_eyes (Eyes e) { @@ -399,6 +412,8 @@ FilmViewer::film_change (ChangeType type, Film::Property p) _video_view->set_video_frame_rate (_film->video_frame_rate()); } else if (p == Film::THREE_D) { _video_view->set_three_d (_film->three_d()); + } else if (p == Film::CONTENT) { + _closed_captions_dialog->update_tracks (_film); } } @@ -422,7 +437,7 @@ FilmViewer::slow_refresh () bool FilmViewer::quick_refresh () { - if (!_video_view || !_film) { + if (!_video_view || !_film || !_player) { return true; } return _video_view->refresh_metadata (_film, _player->video_container_size(), _film->frame_size()); @@ -694,3 +709,15 @@ FilmViewer::gets () const } +void +FilmViewer::content_change (ChangeType type, int property) +{ + if (type != CHANGE_TYPE_DONE) { + return; + } + + if (property == TextContentProperty::USE || property == TextContentProperty::TYPE || property == TextContentProperty::DCP_TRACK) { + _closed_captions_dialog->update_tracks (_film); + } +} +