/*
- Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2018-2019 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#include "lib/dcpomatic_time.h"
#include "lib/player.h"
+#include "lib/text_ring_buffers.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/wx.h>
+LIBDCP_ENABLE_WARNINGS
class Butler;
+class FilmViewer;
+
class ClosedCaptionsDialog : public wxDialog
{
public:
- explicit ClosedCaptionsDialog (wxWindow* parent);
+ explicit ClosedCaptionsDialog (wxWindow* parent, FilmViewer* viewer);
- void update (DCPTime);
void clear ();
- void set_butler (boost::weak_ptr<Butler>);
+ void update_tracks (std::shared_ptr<const Film> film);
+ void set_butler (std::weak_ptr<Butler>);
private:
+ void shown (wxShowEvent);
+ void update ();
void paint ();
+ void track_selected ();
- boost::optional<std::pair<PlayerText, DCPTimePeriod> > _current;
+ FilmViewer* _viewer;
+ wxPanel* _display;
+ wxChoice* _track;
+ boost::optional<TextRingBuffers::Data> _current;
bool _current_in_lines;
std::vector<wxString> _lines;
- boost::weak_ptr<Butler> _butler;
+ std::vector<DCPTextTrack> _tracks;
+ std::weak_ptr<Butler> _butler;
+ wxTimer _timer;
};