summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/ardour/presentation_info.h23
-rw-r--r--libs/ardour/presentation_info.cc1
2 files changed, 19 insertions, 5 deletions
diff --git a/libs/ardour/ardour/presentation_info.h b/libs/ardour/ardour/presentation_info.h
index 0de0a3d8bc..5ad33ab109 100644
--- a/libs/ardour/ardour/presentation_info.h
+++ b/libs/ardour/ardour/presentation_info.h
@@ -128,9 +128,10 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful
StatusMask = (Selected|Hidden)
};
- static const Flag Route;
- static const Flag Track;
- static const Flag Bus;
+ static const Flag AllRoutes; /* mask to use for any route include master+monitor, but not auditioner */
+ static const Flag Route; /* mask for any route (bus or track */
+ static const Flag Track; /* mask to use for any track */
+ static const Flag Bus; /* mask to use for any bus */
typedef uint32_t order_t;
typedef uint32_t color_t;
@@ -193,11 +194,23 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful
return true;
}
if (f == Route && (_flags & Route)) {
- /* any kind of route */
+ /* any kind of route, but not master, monitor in
+ or auditioner.
+ */
return true;
}
- return f == _flags;
+ if (f == AllRoutes && (_flags & AllRoutes)) {
+ /* any kind of route, but not auditioner. Ask for that
+ specifically.
+ */
+ return true;
+ }
+
+ /* compare without status mask - we already checked that above
+ */
+
+ return (f &~ (StatusMask|OrderSet)) == (_flags &~ (StatusMask|OrderSet));
}
int set_state (XMLNode const&, int);
diff --git a/libs/ardour/presentation_info.cc b/libs/ardour/presentation_info.cc
index 5490f983be..e6200371c3 100644
--- a/libs/ardour/presentation_info.cc
+++ b/libs/ardour/presentation_info.cc
@@ -51,6 +51,7 @@ const PresentationInfo::order_t PresentationInfo::max_order = UINT32_MAX;
const PresentationInfo::Flag PresentationInfo::Bus = PresentationInfo::Flag (PresentationInfo::AudioBus|PresentationInfo::MidiBus);
const PresentationInfo::Flag PresentationInfo::Track = PresentationInfo::Flag (PresentationInfo::AudioTrack|PresentationInfo::MidiTrack);
const PresentationInfo::Flag PresentationInfo::Route = PresentationInfo::Flag (PresentationInfo::Bus|PresentationInfo::Track);
+const PresentationInfo::Flag PresentationInfo::AllRoutes = PresentationInfo::Flag (PresentationInfo::Route|PresentationInfo::MasterOut|PresentationInfo::MonitorOut);
void
PresentationInfo::make_property_quarks ()