rearrange inheritance so that Automatable IS-A Slavable
[ardour.git] / libs / ardour / ardour / midi_track.h
index 80bb743b10976cb65a76fabca40f715280413df2..69f498104756dc2a10258ed0351e443eabe3e437 100644 (file)
@@ -50,8 +50,9 @@ public:
 
        boost::shared_ptr<Diskstream> create_diskstream ();
        void set_diskstream (boost::shared_ptr<Diskstream>);
-       void set_record_enabled (bool yn, void *src);
-       void set_record_safe (bool yn, void *src);
+
+       bool can_be_record_enabled ();
+       bool can_be_record_safe ();
 
        DataType data_type () const {
                return DataType::MIDI;
@@ -89,11 +90,12 @@ public:
                        , _route (route)
                {}
 
-               void set_value (double val);
-               void set_value_unchecked (double);
                bool writable() const { return true; }
 
                MidiTrack* _route;
+
+       private:
+               void actually_set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
        };
 
        virtual void set_parameter_automation_state (Evoral::Parameter param, AutoState);
@@ -130,7 +132,6 @@ public:
        PBD::Signal1<void, boost::weak_ptr<MidiSource> > DataRecorded;
        boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;
 
-       void set_monitoring (MonitorChoice);
        MonitorState monitoring_state () const;
 
        void set_input_active (bool);
@@ -141,6 +142,7 @@ protected:
        XMLNode& state (bool full);
 
        void act_on_mute ();
+       void monitoring_changed (bool, PBD::Controllable::GroupControlDisposition);
 
 private:
        MidiRingBuffer<framepos_t> _immediate_events;