summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/track.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/track.h')
-rw-r--r--libs/ardour/ardour/track.h16
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 {