diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-31 21:47:19 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-01-31 21:47:19 -0500 |
commit | 5ea5e513a46f65fe55dcaeb0cb91eb41c79a131c (patch) | |
tree | 81ee411dbd72f62ac944a6f749a94234808d7989 /libs/ardour/ardour | |
parent | 9128fbd68f7bc03ea0b3238fc9dd24ff326f1ad8 (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.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/track.h | 16 |
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 { |