X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fardour%2Fardour%2Fstripable.h;h=8ad02c98b3cb1be00bbfd5e4efd8fa94cedd9306;hb=44a3f042a7a878af45ae893e0361d6a8be315da4;hp=1b8239707423adf4fd51632f4d263a2885a95934;hpb=e0ff70cf86c01c42f98faf8b0eaf1a8ccf867946;p=ardour.git diff --git a/libs/ardour/ardour/stripable.h b/libs/ardour/ardour/stripable.h index 1b82397074..8ad02c98b3 100644 --- a/libs/ardour/ardour/stripable.h +++ b/libs/ardour/ardour/stripable.h @@ -43,6 +43,9 @@ class PhaseControl; class SoloIsolateControl; class SoloSafeControl; class MonitorControl; +class MonitorProcessor; +class RecordEnableControl; +class RecordSafeControl; /* This is a virtual base class for any object that needs to be potentially * represented by a control-centric user interface using the general model of a @@ -73,35 +76,40 @@ class LIBARDOUR_API Stripable : public SessionObject { /* set just the order */ - void set_presentation_group_order (PresentationInfo::order_t, bool notify_class_listeners = true); - void set_presentation_group_order_explicit (PresentationInfo::order_t); + void set_presentation_order (PresentationInfo::order_t, bool notify_class_listeners = true); + void set_presentation_order_explicit (PresentationInfo::order_t); - /* for things concerned about *this* route's RID */ + struct PresentationOrderSorter { + bool operator() (boost::shared_ptr a, boost::shared_ptr b) { + return a->presentation_info().order() < b->presentation_info().order(); + } + }; - PBD::Signal0 PresentationInfoChanged; + /* gui's call this for their own purposes. */ - /* for things concerned about *any* route's RID changes */ - - static PBD::Signal0 PresentationInfoChange; + PBD::Signal2 gui_changed; /*************************************************************** * Pure interface begins here ***************************************************************/ - virtual boost::shared_ptr peak_meter() = 0; virtual boost::shared_ptr peak_meter() const = 0; virtual boost::shared_ptr gain_control() const = 0; virtual boost::shared_ptr solo_control() const = 0; + virtual boost::shared_ptr solo_isolate_control() const = 0; + virtual boost::shared_ptr solo_safe_control() const = 0; virtual boost::shared_ptr mute_control() const = 0; virtual boost::shared_ptr phase_control() const = 0; virtual boost::shared_ptr trim_control() const = 0; virtual boost::shared_ptr monitoring_control() const = 0; - virtual boost::shared_ptr recenable_control() const { return boost::shared_ptr(); } + + virtual boost::shared_ptr rec_enable_control() const { return boost::shared_ptr(); } + virtual boost::shared_ptr rec_safe_control() const { return boost::shared_ptr(); } /* "well-known" controls for panning. Any or all of these may return * null. @@ -171,30 +179,12 @@ class LIBARDOUR_API Stripable : public SessionObject { virtual bool muted_by_others_soloing () const = 0; - protected: - PresentationInfo _presentation_info; - - /* set the entire info. This should only be used in cases where the - * derived could not supply the correct Flag and/or order information - * in its constructor. - */ - - void set_presentation_info (PresentationInfo id, bool notify_class_listeners = true); - void set_presentation_info_explicit (PresentationInfo); - - void add_state (XMLNode&) const; - - private: - void set_presentation_info_internal (PresentationInfo id, bool notify_class_listeners = true); -}; + virtual boost::shared_ptr monitor_control() const = 0; -struct PresentationInfoSorter { - bool operator() (boost::shared_ptr a, boost::shared_ptr b) { - return a->presentation_info() < b->presentation_info(); - } + protected: + PresentationInfo _presentation_info; }; - } #endif /* __libardour_stripable_h__ */