first vaguely working version using PresentationInfo
[ardour.git] / libs / ardour / ardour / midi_track.h
index f2542f0f6b9e2d45b0353aa41e8b648db3263648..f756812e7142433f4c0a5e1d73ba42720ea22961 100644 (file)
@@ -37,7 +37,7 @@ class Session;
 class LIBARDOUR_API MidiTrack : public Track
 {
 public:
-       MidiTrack (Session&, std::string name, Route::Flag f = Route::Flag (0), TrackMode m = Normal);
+       MidiTrack (Session&, std::string name, TrackMode m = Normal);
        ~MidiTrack ();
 
        int init ();
@@ -50,7 +50,9 @@ public:
 
        boost::shared_ptr<Diskstream> create_diskstream ();
        void set_diskstream (boost::shared_ptr<Diskstream>);
-       void set_record_enabled (bool yn, void *src);
+
+       bool can_be_record_enabled ();
+       bool can_be_record_safe ();
 
        DataType data_type () const {
                return DataType::MIDI;
@@ -88,9 +90,12 @@ public:
                        , _route (route)
                {}
 
-               void set_value (double val);
+               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);
@@ -127,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);
@@ -138,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;
@@ -149,7 +154,7 @@ private:
        MidiChannelFilter          _capture_filter;
 
        virtual boost::shared_ptr<Diskstream> diskstream_factory (XMLNode const &);
-       
+
        boost::shared_ptr<MidiDiskstream> midi_diskstream () const;
 
        void write_out_of_band_data (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, framecnt_t nframes);