summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/ardour/location.h1
-rw-r--r--libs/ardour/location.cc12
2 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h
index b3a4e3ff24..754ebb8075 100644
--- a/libs/ardour/ardour/location.h
+++ b/libs/ardour/ardour/location.h
@@ -85,6 +85,7 @@ class LIBARDOUR_API Location : public SessionHandleRef, public PBD::StatefulDest
void set_hidden (bool yn, void *src);
void set_cd (bool yn, void *src);
void set_is_range_marker (bool yn, void* src);
+ void set_skip (bool yn);
bool is_auto_punch () const { return _flags & IsAutoPunch; }
bool is_auto_loop () const { return _flags & IsAutoLoop; }
diff --git a/libs/ardour/location.cc b/libs/ardour/location.cc
index 94afad679d..df65c5b341 100644
--- a/libs/ardour/location.cc
+++ b/libs/ardour/location.cc
@@ -376,6 +376,17 @@ Location::set_is_range_marker (bool yn, void*)
}
void
+Location::set_skip (bool yn)
+{
+ if (is_range_marker() && length() > 0) {
+ if (set_flag_internal (yn, IsSkip)) {
+ flags_changed (this);
+ FlagsChanged ();
+ }
+ }
+}
+
+void
Location::set_auto_punch (bool yn, void*)
{
if (is_mark() || _start == _end) {
@@ -648,6 +659,7 @@ Locations::Locations (Session& s)
Location::changed.connect_same_thread (*this, boost::bind (&Locations::location_changed, this, _1));
Location::start_changed.connect_same_thread (*this, boost::bind (&Locations::location_changed, this, _1));
Location::end_changed.connect_same_thread (*this, boost::bind (&Locations::location_changed, this, _1));
+ Location::flags_changed.connect_same_thread (*this, boost::bind (&Locations::location_changed, this, _1));
}
Locations::~Locations ()