diff options
author | Len Ovens <len@ovenwerks.net> | 2018-11-07 13:02:49 -0800 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2018-11-07 17:00:16 -0800 |
commit | 80fd215a5cf0dad7013b2ac5c94dd24d14767339 (patch) | |
tree | f1ee5db0f284645bbe5c666fba8cfe0f905eb437 /libs | |
parent | 41abf75077921766f25aae45c87aca927244e520 (diff) |
get_stripables and get_routelist are now presentationinfo aware
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/presentation_info.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 4 | ||||
-rw-r--r-- | libs/ardour/presentation_info.cc | 6 | ||||
-rw-r--r-- | libs/ardour/session.cc | 25 |
4 files changed, 26 insertions, 11 deletions
diff --git a/libs/ardour/ardour/presentation_info.h b/libs/ardour/ardour/presentation_info.h index 842d18292c..41e11d9ba8 100644 --- a/libs/ardour/ardour/presentation_info.h +++ b/libs/ardour/ardour/presentation_info.h @@ -127,7 +127,9 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful }; static const Flag AllStripables; /* mask to use for any route or VCA (but not auditioner) */ + static const Flag MixerStripables; /* mask to use for any route or VCA (but not auditioner or Listenbus) */ static const Flag AllRoutes; /* mask to use for any route include master+monitor, but not auditioner */ + static const Flag MixerRoutes; /* mask to use for any route include master+monitor, but not auditioner or ListenBus*/ 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 */ diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index b5997a3a83..36f323a6d4 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -287,7 +287,7 @@ public: boost::shared_ptr<RTTaskList> rt_tasklist () { return _rt_tasklist; } - RouteList get_routelist (bool mixer_order = false) const; + RouteList get_routelist (bool mixer_order = false, PresentationInfo::Flag fl = PresentationInfo::MixerRoutes) const; CoreSelection& selection () { return *_selection; } @@ -298,7 +298,7 @@ public: * with get_routes() */ - void get_stripables (StripableList&) const; + void get_stripables (StripableList&, PresentationInfo::Flag fl = PresentationInfo::MixerStripables) const; StripableList get_stripables () const; boost::shared_ptr<RouteList> get_tracks() const; boost::shared_ptr<RouteList> get_routes_with_internal_returns() const; diff --git a/libs/ardour/presentation_info.cc b/libs/ardour/presentation_info.cc index 889a94d7dc..19c5830819 100644 --- a/libs/ardour/presentation_info.cc +++ b/libs/ardour/presentation_info.cc @@ -112,11 +112,13 @@ PresentationInfo::send_static_change (const PropertyChange& what_changed) } const PresentationInfo::order_t PresentationInfo::max_order = UINT32_MAX; -const PresentationInfo::Flag PresentationInfo::Bus = PresentationInfo::Flag (PresentationInfo::AudioBus|PresentationInfo::MidiBus|PresentationInfo::ListenBus); +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); +const PresentationInfo::Flag PresentationInfo::AllRoutes = PresentationInfo::Flag (PresentationInfo::Route|PresentationInfo::MasterOut|PresentationInfo::MonitorOut|PresentationInfo::ListenBus); +const PresentationInfo::Flag PresentationInfo::MixerRoutes = PresentationInfo::Flag (PresentationInfo::Route|PresentationInfo::MasterOut|PresentationInfo::MonitorOut); const PresentationInfo::Flag PresentationInfo::AllStripables = PresentationInfo::Flag (PresentationInfo::AllRoutes|PresentationInfo::VCA); +const PresentationInfo::Flag PresentationInfo::MixerStripables = PresentationInfo::Flag (PresentationInfo::MixerRoutes|PresentationInfo::VCA); void PresentationInfo::make_property_quarks () diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 50e5825f68..235eb1451a 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -4235,30 +4235,41 @@ Session::cancel_all_mute () } void -Session::get_stripables (StripableList& sl) const +Session::get_stripables (StripableList& sl, PresentationInfo::Flag fl) const { boost::shared_ptr<RouteList> r = routes.reader (); - sl.insert (sl.end(), r->begin(), r->end()); + for (RouteList::iterator it = r->begin(); it != r->end(); ++it) { + if ((*it)->presentation_info ().flags () & fl) { + sl.push_back (*it); + } + } - VCAList v = _vca_manager->vcas (); - sl.insert (sl.end(), v.begin(), v.end()); + if (fl & PresentationInfo::VCA) { + VCAList v = _vca_manager->vcas (); + sl.insert (sl.end(), v.begin(), v.end()); + } } StripableList Session::get_stripables () const { + PresentationInfo::Flag fl = PresentationInfo::AllStripables; StripableList rv; - Session::get_stripables (rv); + Session::get_stripables (rv, fl); rv.sort (Stripable::Sorter ()); return rv; } RouteList -Session::get_routelist (bool mixer_order) const +Session::get_routelist (bool mixer_order, PresentationInfo::Flag fl) const { boost::shared_ptr<RouteList> r = routes.reader (); RouteList rv; - rv.insert (rv.end(), r->begin(), r->end()); + for (RouteList::iterator it = r->begin(); it != r->end(); ++it) { + if ((*it)->presentation_info ().flags () & fl) { + rv.push_back (*it); + } + } rv.sort (Stripable::Sorter (mixer_order)); return rv; } |