diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-05 20:49:14 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-05 20:50:57 -0400 |
commit | 6520548fc27ffc7422f3714739841f3e88d47b5c (patch) | |
tree | 5b93b8290b59872db681d28cc6f1021fc634246f /libs | |
parent | 9e28056fd2325409a20482679ba40056affd056d (diff) |
extend/modify PresentationInfo to make searching for routes via Session::get_remote_nth_stripable() work
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/presentation_info.h | 23 | ||||
-rw-r--r-- | libs/ardour/presentation_info.cc | 1 |
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 () |