- any other position changes will be timeline drags which should not result in content
being sequenced.
*/
-
+
if (property == ContentProperty::LENGTH || property == VideoContentProperty::VIDEO_FRAME_TYPE) {
maybe_sequence_video ();
}
-
+
ContentChanged (content, property, frequent);
}
if (!_sequence_video || _sequencing_video) {
return;
}
-
+
_sequencing_video = true;
-
+
DCPTime next_left;
DCPTime next_right;
for (ContentList::iterator i = _content.begin(); i != _content.end(); ++i) {
if (!vc) {
continue;
}
-
+
if (vc->video_frame_type() == VIDEO_FRAME_TYPE_3D_RIGHT) {
vc->set_position (next_right);
next_right = vc->end() + DCPTime::delta ();
}
/* This won't change order, so it does not need a sort */
-
+
_sequencing_video = false;
}
Playlist::video_identifier () const
{
string t;
-
+
for (ContentList::const_iterator i = _content.begin(); i != _content.end(); ++i) {
shared_ptr<const VideoContent> vc = dynamic_pointer_cast<const VideoContent> (*i);
if (vc) {
while (i != _content.end() && *i != c) {
++i;
}
-
+
if (i != _content.end ()) {
_content.erase (i);
Changed ();
while (j != _content.end() && *j != *i) {
++j;
}
-
+
if (j != _content.end ()) {
_content.erase (j);
}
}
/* This won't change order, so it does not need a sort */
-
+
Changed ();
}
if (!best) {
return 24;
}
-
+
return best->dcp;
}
}
_content_connections.clear ();
-
+
for (ContentList::iterator i = _content.begin(); i != _content.end(); ++i) {
_content_connections.push_back ((*i)->Changed.connect (bind (&Playlist::content_changed, this, _1, _2, _3)));
}
}
sort (_content.begin(), _content.end(), ContentSorter ());
-
+
reconnect ();
Changed ();
}
Playlist::move_earlier (shared_ptr<Content> c)
{
sort (_content.begin(), _content.end(), ContentSorter ());
-
+
ContentList::iterator previous = _content.end ();
ContentList::iterator i = _content.begin();
while (i != _content.end() && *i != c) {
return;
}
-
+
DCPTime const p = (*previous)->position ();
(*previous)->set_position (p + c->length_after_trim ());
c->set_position (p);
Playlist::move_later (shared_ptr<Content> c)
{
sort (_content.begin(), _content.end(), ContentSorter ());
-
+
ContentList::iterator i = _content.begin();
while (i != _content.end() && *i != c) {
++i;