#include <ctime>
#include <sigc++/bind.h>
-#include <pbd/stl_delete.h>
-#include <pbd/xml++.h>
-#include <pbd/enumwriter.h>
+#include "pbd/stl_delete.h"
+#include "pbd/xml++.h"
+#include "pbd/enumwriter.h"
-#include <ardour/location.h>
-#include <ardour/session.h>
-#include <ardour/audiofilesource.h>
+#include "ardour/location.h"
+#include "ardour/session.h"
+#include "ardour/audiofilesource.h"
#include "i18n.h"
_end = s;
start_changed(this); /* EMIT SIGNAL */
+ end_changed(this); /* EMIT SIGNAL */
if ( is_start() ) {
if (_start != e) {
_start = e;
_end = e;
+ start_changed(this); /* EMIT SIGNAL */
end_changed(this); /* EMIT SIGNAL */
+
+ if ( is_start() ) {
+ Session::StartTimeChanged (); /* EMIT SIGNAL */
+ }
+
+ if ( is_end() ) {
+ Session::EndTimeChanged (); /* EMIT SIGNAL */
+ }
+
}
return 0;
}
}
}
+void
+Location::set_is_range_marker (bool yn, void *src)
+{
+ if (set_flag_internal (yn, IsRangeMarker)) {
+ FlagsChanged (this, src); /* EMIT SIGNAL */
+ }
+}
+
void
Location::set_auto_punch (bool yn, void *src)
{
return 0;
}
+
+void
+Locations::find_all_between (nframes64_t start, nframes64_t end, LocationList& ll, Location::Flags flags)
+{
+ Glib::Mutex::Lock lm (lock);
+
+ for (LocationList::const_iterator i = locations.begin(); i != locations.end(); ++i) {
+ if ((flags == 0 || (*i)->matches (flags)) &&
+ ((*i)->start() >= start && (*i)->end() < end)) {
+ ll.push_back (*i);
+ }
+ }
+}