summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-01-31 21:47:19 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-01-31 21:47:19 -0500
commit5ea5e513a46f65fe55dcaeb0cb91eb41c79a131c (patch)
tree81ee411dbd72f62ac944a6f749a94234808d7989 /libs/ardour/ardour
parent9128fbd68f7bc03ea0b3238fc9dd24ff326f1ad8 (diff)
make Track::set_monitoring() use a GroupControlDisposition; expose an AutomationControl for track monitoring choice
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/midi_track.h2
-rw-r--r--libs/ardour/ardour/track.h16
2 files changed, 16 insertions, 2 deletions
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index a007757679..ed13832360 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -133,7 +133,7 @@ public:
PBD::Signal1<void, boost::weak_ptr<MidiSource> > DataRecorded;
boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;
- void set_monitoring (MonitorChoice);
+ void set_monitoring (MonitorChoice, PBD::Controllable::GroupControlDisposition);
MonitorState monitoring_state () const;
void set_input_active (bool);
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 {