diff options
Diffstat (limited to 'src/wx/film_viewer.cc')
| -rw-r--r-- | src/wx/film_viewer.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 18d16a461..9c714b562 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -26,6 +26,7 @@ #include "playhead_to_timecode_dialog.h" #include "playhead_to_frame_dialog.h" #include "wx_util.h" +#include "closed_captions_view.h" #include "lib/film.h" #include "lib/ratio.h" #include "lib/util.h" @@ -94,6 +95,7 @@ FilmViewer::FilmViewer (wxWindow* p, bool outline_content, bool jump_to_selected , _playing (false) , _latency_history_count (0) , _dropped (0) + , _closed_captions_dialog (new ClosedCaptionsDialog(GetParent())) { #ifndef __WXOSX__ _panel->SetDoubleBuffered (true); @@ -194,6 +196,7 @@ FilmViewer::set_film (shared_ptr<Film> film) _film = film; _frame.reset (); + _closed_captions_dialog->clear (); update_position_slider (); update_position_label (); @@ -223,6 +226,7 @@ FilmViewer::set_film (shared_ptr<Film> film) _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1)); _player->Changed.connect (boost::bind (&FilmViewer::player_changed, this, _1, _2)); + _player->Caption.connect (boost::bind (&FilmViewer::caption, this, _1, _2, _3)); /* Keep about 1 second's worth of history samples */ _latency_history_count = _film->audio_frame_rate() / _audio_block_size; @@ -349,6 +353,8 @@ FilmViewer::display_player_video () _inter_size = _player_video.first->inter_size (); refresh_panel (); + + _closed_captions_dialog->refresh (time()); } void @@ -811,6 +817,7 @@ FilmViewer::seek (DCPTime t, bool accurate) bool const was_running = stop (); + _closed_captions_dialog->clear (); _butler->seek (t, accurate); get (); @@ -935,3 +942,17 @@ FilmViewer::one_video_frame () const { return DCPTime::from_frames (1, _film->video_frame_rate()); } + +void +FilmViewer::show_closed_captions () +{ + _closed_captions_dialog->Show(); +} + +void +FilmViewer::caption (PlayerCaption c, CaptionType t, DCPTimePeriod p) +{ + if (t == CAPTION_CLOSED) { + _closed_captions_dialog->caption (c, p); + } +} |
