#include "ardour/region_sorters.h"
#include "ardour/session.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace ARDOUR;
using namespace std;
: Playlist (session, node, DataType::AUDIO, hidden)
{
#ifndef NDEBUG
- const XMLProperty* prop = node.property("type");
+ XMLProperty const * prop = node.property("type");
assert(!prop || DataType(prop->value()) == DataType::AUDIO);
#endif
/** A segment of region that needs to be read */
struct Segment {
Segment (boost::shared_ptr<AudioRegion> r, Evoral::Range<framepos_t> a) : region (r), range (a) {}
-
+
boost::shared_ptr<AudioRegion> region; ///< the region
Evoral::Range<framepos_t> range; ///< range of the region to read, in session frames
};
return false;
}
+ PropertyChange bounds;
+ bounds.add (Properties::start);
+ bounds.add (Properties::position);
+ bounds.add (Properties::length);
+
PropertyChange our_interests;
our_interests.add (Properties::fade_in_active);
bool parent_wants_notify;
parent_wants_notify = Playlist::region_changed (what_changed, region);
-
- if (parent_wants_notify || (what_changed.contains (our_interests))) {
+ /* if bounds changed, we have already done notify_contents_changed ()*/
+ if ((parent_wants_notify || what_changed.contains (our_interests)) && !what_changed.contains (bounds)) {
notify_contents_changed ();
}
for (XMLNodeConstIterator i = children.begin(); i != children.end(); ++i) {
if ((*i)->name() == X_("Crossfade")) {
- XMLProperty* p = (*i)->property (X_("active"));
+ XMLProperty const * p = (*i)->property (X_("active"));
assert (p);
if (!string_is_affirmative (p->value())) {
continue;
}
-
+
if ((p = (*i)->property (X_("in"))) == 0) {
continue;
}
*/
const XMLNodeList c = (*i)->children ();
-
+
for (XMLNodeConstIterator j = c.begin(); j != c.end(); ++j) {
if ((*j)->name() == X_("FadeOut")) {
out_a->fade_out()->set_state (**j, version);
out_a->inverse_fade_out()->set_state (**j, version);
}
}
-
+
out_a->set_fade_out_active (true);
} else {
*/
const XMLNodeList c = (*i)->children ();
-
+
for (XMLNodeConstIterator j = c.begin(); j != c.end(); ++j) {
if ((*j)->name() == X_("FadeIn")) {
in_a->fade_in()->set_state (**j, version);
in_a->inverse_fade_in()->set_state (**j, version);
}
}
-
+
in_a->set_fade_in_active (true);
}
}