diff options
Diffstat (limited to 'libs/ardour/ardour/track.h')
-rw-r--r-- | libs/ardour/ardour/track.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h index 39f9a52ec5..dcc0352157 100644 --- a/libs/ardour/ardour/track.h +++ b/libs/ardour/ardour/track.h @@ -51,11 +51,24 @@ class LIBARDOUR_API Track : public Route, public PublicDiskstream virtual bool can_use_mode (TrackMode /*m*/, bool& /*bounce_required*/) { return false; } PBD::Signal0<void> TrackModeChanged; - virtual void set_monitoring (MonitorChoice); + class LIBARDOUR_API MonitoringControllable : public RouteAutomationControl { + public: + MonitoringControllable (std::string name, boost::shared_ptr<Track>); + void set_value (double, PBD::Controllable::GroupControlDisposition group_override); + /* currently no automation, so no need for set_value_unchecked() */ + double get_value () const; + private: + void _set_value (double, PBD::Controllable::GroupControlDisposition group_override); + static ParameterDescriptor get_descriptor(); + }; + + void set_monitoring (MonitorChoice, PBD::Controllable::GroupControlDisposition group_override); MonitorChoice monitoring_choice() const { return _monitoring; } MonitorState monitoring_state () const; PBD::Signal0<void> MonitoringChanged; + boost::shared_ptr<AutomationControl> monitoring_control() const { return _monitoring_control; } + MeterState metering_state () const; virtual int no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, @@ -179,6 +192,7 @@ class LIBARDOUR_API Track : public Route, public PublicDiskstream TrackMode _mode; bool _needs_butler; MonitorChoice _monitoring; + boost::shared_ptr<MonitoringControllable> _monitoring_control; //private: (FIXME) struct FreezeRecordProcessorInfo { |