*/
+
#include "active_text.h"
#include "text_content.h"
-#include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
+
using std::list;
using std::pair;
using std::make_pair;
-using boost::weak_ptr;
-using boost::shared_ptr;
+using std::weak_ptr;
+using std::shared_ptr;
using boost::optional;
-
-void
-ActiveText::add (DCPTimePeriod period, list<PlayerText>& pc, list<Period> p) const
-{
- BOOST_FOREACH (Period i, p) {
- DCPTimePeriod test (i.from, i.to.get_value_or(DCPTime::max()));
- optional<DCPTimePeriod> overlap = period.overlap (test);
- if (overlap && overlap->duration() > DCPTime(period.duration().get() / 2)) {
- pc.push_back (i.subs);
- }
- }
-}
-
-list<PlayerText>
-ActiveText::get (DCPTimePeriod period) const
-{
- boost::mutex::scoped_lock lm (_mutex);
-
- list<PlayerText> ps;
-
- for (Map::const_iterator i = _data.begin(); i != _data.end(); ++i) {
-
- shared_ptr<const TextContent> caption = i->first.lock ();
- if (!caption || !caption->use()) {
- continue;
- }
-
- add (period, ps, i->second);
- }
-
- return ps;
-}
+using namespace dcpomatic;
/** Get the open captions that should be burnt into a given period.
* @param period Period of interest.
continue;
}
- add (period, ps, i->second);
+ for (auto j: i->second) {
+ DCPTimePeriod test (j.from, j.to.get_value_or(DCPTime::max()));
+ optional<DCPTimePeriod> overlap = period.overlap (test);
+ if (overlap && overlap->duration() > DCPTime(period.duration().get() / 2)) {
+ ps.push_back (j.subs);
+ }
+ }
}
return ps;
Map updated;
for (Map::const_iterator i = _data.begin(); i != _data.end(); ++i) {
list<Period> as;
- BOOST_FOREACH (Period j, i->second) {
+ for (auto j: i->second) {
if (!j.to || j.to.get() >= time) {
as.push_back (j);
}
_data[content].back().to = to;
- BOOST_FOREACH (StringText& i, _data[content].back().subs.text) {
+ for (auto& i: _data[content].back().subs.string) {
i.set_out (dcp::Time(to.seconds(), 1000));
}