X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fclosed_captions_dialog.h;h=5c366ca7b0dbe2cc9d9f61e8eba4002b5e71c6ff;hb=f10e025eba54b0ab4dbe1b3611071b160ca89208;hp=ca19cc95ad97b0205c3955502a24dded4f5cdf1f;hpb=bd763364d9c96928f3bd6bd5fe46ebe1a06e6d0a;p=dcpomatic.git diff --git a/src/wx/closed_captions_dialog.h b/src/wx/closed_captions_dialog.h index ca19cc95a..5c366ca7b 100644 --- a/src/wx/closed_captions_dialog.h +++ b/src/wx/closed_captions_dialog.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -19,24 +19,34 @@ */ #include "lib/dcpomatic_time.h" -#include "lib/player_caption.h" +#include "lib/player.h" +#include "lib/text_ring_buffers.h" #include -class ClosedCaptionsView : public wxDialog +class Butler; +class FilmViewer; + +class ClosedCaptionsDialog : public wxDialog { public: - ClosedCaptionsView (wxWindow* parent); + explicit ClosedCaptionsDialog (wxWindow* parent, FilmViewer* viewer); - void refresh (DCPTime); - void caption (PlayerCaption, DCPTimePeriod); void clear (); + void set_film_and_butler (boost::shared_ptr, boost::weak_ptr); private: + void shown (wxShowEvent); + void update (); void paint (); + void track_selected (); - typedef std::pair Caption; - std::list _captions; + FilmViewer* _viewer; + wxPanel* _display; + wxChoice* _track; + boost::optional _current; + bool _current_in_lines; std::vector _lines; - static int const _num_lines; - static int const _num_chars_per_line; + std::vector _tracks; + boost::weak_ptr _butler; + wxTimer _timer; };