X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftext_view.cc;h=3b674b5c17eb04562932ca23e54d2668cc144b89;hb=405164e6239d968d666f6f3143a0aa4659cb5821;hp=49a98dc5e3c06f4647aa742093c50f6a5061a613;hpb=254b3044d72de6b033d7c584f5abd2b9aa70aad5;p=dcpomatic.git diff --git a/src/wx/text_view.cc b/src/wx/text_view.cc index 49a98dc5e..3b674b5c1 100644 --- a/src/wx/text_view.cc +++ b/src/wx/text_view.cc @@ -31,10 +31,14 @@ #include "lib/text_decoder.h" using std::list; -using boost::shared_ptr; -using boost::weak_ptr; +using std::shared_ptr; +using std::weak_ptr; using boost::bind; -using boost::dynamic_pointer_cast; +using std::dynamic_pointer_cast; +using namespace dcpomatic; +#if BOOST_VERSION >= 106100 +using namespace boost::placeholders; +#endif TextView::TextView ( wxWindow* parent, shared_ptr film, shared_ptr content, shared_ptr text, shared_ptr decoder, weak_ptr viewer @@ -90,20 +94,20 @@ TextView::TextView ( _frc = film->active_frame_rate_change (content->position()); /* Find the decoder that is being used for our TextContent and attach to it */ - BOOST_FOREACH (shared_ptr i, decoder->text) { + for (auto i: decoder->text) { if (i->content() == text) { i->PlainStart.connect (bind (&TextView::data_start, this, _1)); i->Stop.connect (bind (&TextView::data_stop, this, _1)); } } - while (!decoder->pass (film)) {} + while (!decoder->pass ()) {} SetSizerAndFit (sizer); } void TextView::data_start (ContentStringText cts) { - BOOST_FOREACH (dcp::SubtitleString const & i, cts.subs) { + for (auto const& i: cts.subs) { wxListItem list_item; list_item.SetId (_subs); _list->InsertItem (list_item); @@ -140,5 +144,6 @@ TextView::subtitle_selected (wxListEvent& ev) DCPOMATIC_ASSERT (lc); shared_ptr fv = _film_viewer.lock (); DCPOMATIC_ASSERT (fv); - fv->seek (lc, _start_times[ev.GetIndex()], true); + /* Add on a frame here to work around any rounding errors and make sure land in the subtitle */ + fv->seek (lc, _start_times[ev.GetIndex()] + ContentTime::from_frames(1, _frc->source), true); }