using boost::shared_ptr;
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
Playlist::Playlist ()
: _sequence (true)
void
Playlist::content_change (weak_ptr<const Film> weak_film, ChangeType type, weak_ptr<Content> content, int property, bool frequent)
{
- /* Make sure we only hear about atomic changes (e.g. a PENDING always with the DONE/CANCELLED)
- Ignore any DONE/CANCELLED that arrives without a PENDING.
- */
- if (_checker.send (type, property)) {
- return;
- }
-
shared_ptr<const Film> film = weak_film.lock ();
DCPOMATIC_ASSERT (film);
}
if (changed) {
- OrderChanged ();
+ OrderChange ();
}
+
+ /* The length might have changed, and that's good enough for this signal */
+ LengthChange ();
}
}
}
Change (CHANGE_TYPE_DONE);
+
+ LengthChange ();
}
void
}
/* This won't change order, so it does not need a sort */
+
+ LengthChange ();
}
void
}
}
+ Change (CHANGE_TYPE_DONE);
+
/* This won't change order, so it does not need a sort */
- Change (CHANGE_TYPE_DONE);
+ LengthChange ();
}
class FrameRateCandidate