summaryrefslogtreecommitdiff
path: root/libs/pbd
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-03-10 20:17:40 +0100
committerRobin Gareus <robin@gareus.org>2020-03-10 20:55:50 +0100
commit2b17ded785be71f93c3f88a5ae1ca38759fb5d7e (patch)
treea65d2c28b20f366985adccad8ea45ba4aee4ac19 /libs/pbd
parent45f5513b66ff6aa8fbab516b9fd5d9a6018ea79d (diff)
Add convenience ControlFlags operators
Explicit functions for operator&=~ and operator|=
Diffstat (limited to 'libs/pbd')
-rw-r--r--libs/pbd/controllable.cc12
-rw-r--r--libs/pbd/pbd/controllable.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/libs/pbd/controllable.cc b/libs/pbd/controllable.cc
index 5d9b924ab5..16e03d8827 100644
--- a/libs/pbd/controllable.cc
+++ b/libs/pbd/controllable.cc
@@ -101,6 +101,18 @@ Controllable::set_flags (Flag f)
}
void
+Controllable::set_flag (Flag f)
+{
+ _flags = Flag ((int)_flags | f);
+}
+
+void
+Controllable::clear_flag (Flag f)
+{
+ _flags = Flag ((int)_flags & ~f);
+}
+
+void
Controllable::add (Controllable& ctl)
{
Glib::Threads::RWLock::WriterLock lm (registry_lock);
diff --git a/libs/pbd/pbd/controllable.h b/libs/pbd/pbd/controllable.h
index 95e75eb3be..05e014caf4 100644
--- a/libs/pbd/pbd/controllable.h
+++ b/libs/pbd/pbd/controllable.h
@@ -163,6 +163,9 @@ public:
Flag flags() const { return _flags; }
void set_flags (Flag f);
+ void set_flag (Flag f); ///< _flags |= f;
+ void clear_flag (Flag f); ///< _flags &= ~f;
+
static boost::shared_ptr<Controllable> by_id (const PBD::ID&);
static void dump_registry ();