notify_callbacks ();
}
-struct RegionSortByLayer {
- bool operator() (boost::shared_ptr<Region> a, boost::shared_ptr<Region> b) {
- return a->layer() < b->layer();
- }
-};
-
template<typename Time>
struct EventsSortByTime {
bool operator() (Evoral::Event<Time>* a, Evoral::Event<Time>* b) {
on, and remove it from the list we are keeping
around, because we don't need it anymore.
- if the end of the region (where we want to theoretically resolve notes)
+ if the end of the region (where we want to theoretically resolve notes)
is outside the current read range, then just do it at the start
of this read range.
*/
if (resolve_at >= end) {
resolve_at = start;
}
-
+
tracker_info.push_back (TrackerInfo (t->second, resolve_at));
DEBUG_TRACE (DEBUG::MidiPlaylistIO, string_compose ("time to resolve & remove tracker for %1 @ %2\n", (*i)->name(), resolve_at));
note_cnt += (t->second->on());
}
#endif
- RegionSortByLayer layer_cmp;
- sort(regs.begin(), regs.end(), layer_cmp);
-
DEBUG_TRACE (DEBUG::MidiPlaylistIO, string_compose ("for %1 .. %2 we have %3 to consider\n", start, start+dur-1, regs.size()));
for (vector<boost::shared_ptr<Region> >::iterator i = regs.begin(); i != regs.end(); ++i) {