From cbd4450197a083bf58bda510e626f73ba583cb66 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 21 Jul 2018 15:16:18 +0100 Subject: Basics of multiple captions per content so that DCPContent can hold subs and closed captions. --- src/tools/dcpomatic.cc | 14 ++++++++++---- src/tools/dcpomatic_player.cc | 7 +++++-- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'src/tools') diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 9262be1b5..416bdf6c4 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -563,7 +563,7 @@ private: { DCPOMATIC_ASSERT (_clipboard); - PasteDialog* d = new PasteDialog (this, static_cast(_clipboard->video), static_cast(_clipboard->audio), static_cast(_clipboard->caption)); + PasteDialog* d = new PasteDialog (this, static_cast(_clipboard->video), static_cast(_clipboard->audio), !_clipboard->caption.empty()); if (d->ShowModal() == wxID_OK) { BOOST_FOREACH (shared_ptr i, _film_editor->content_panel()->selected()) { if (d->video() && i->video) { @@ -574,9 +574,15 @@ private: DCPOMATIC_ASSERT (_clipboard->audio); i->audio->take_settings_from (_clipboard->audio); } - if (d->caption() && i->caption) { - DCPOMATIC_ASSERT (_clipboard->caption); - i->caption->take_settings_from (_clipboard->caption); + + if (d->caption()) { + list >::iterator j = i->caption.begin (); + list >::const_iterator k = _clipboard->caption.begin (); + while (j != i->caption.end() && k != _clipboard->caption.end()) { + (*j)->take_settings_from (*k); + ++j; + ++k; + } } } } diff --git a/src/tools/dcpomatic_player.cc b/src/tools/dcpomatic_player.cc index 0af44fd05..d357e566b 100644 --- a/src/tools/dcpomatic_player.cc +++ b/src/tools/dcpomatic_player.cc @@ -618,8 +618,11 @@ private: void setup_from_dcp (shared_ptr dcp) { - if (dcp->caption) { - dcp->caption->set_use (true); + BOOST_FOREACH (shared_ptr i, dcp->caption) { + /* XXX: we should offer the option to view closed captions */ + if (i->type() == CAPTION_OPEN) { + i->set_use (true); + } } if (dcp->video) { -- cgit v1.2.3