finalize fix for MIDI track monitoring
[ardour.git] / libs / ardour / ardour / midi_track.h
index 018b5c4f601e33c17ccf49606726a79f8b861908..a96094f140e6a7562eefe0ef7457767a45d225eb 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef __ardour_midi_track_h__
 #define __ardour_midi_track_h__
 
+#include "ardour/interthread_info.h"
 #include "ardour/track.h"
 #include "ardour/midi_ring_buffer.h"
 #include "ardour/midi_state_tracker.h"
@@ -54,15 +55,15 @@ public:
                return DataType::MIDI;
        }
 
-       int export_stuff (BufferSet& bufs, framecnt_t nframes, framepos_t end_frame);
-
        void freeze_me (InterThreadInfo&);
        void unfreeze ();
 
+       bool bounceable (boost::shared_ptr<Processor>, bool) const { return false; }
        boost::shared_ptr<Region> bounce (InterThreadInfo&);
-       boost::shared_ptr<Region> bounce_range (
-                       framepos_t start, framepos_t end, InterThreadInfo&, bool enable_processing
-               );
+       boost::shared_ptr<Region> bounce_range (framepos_t start, framepos_t end, InterThreadInfo&, 
+                                               boost::shared_ptr<Processor> endpoint, bool include_endpoint);
+       int export_stuff (BufferSet& bufs, framepos_t start_frame, framecnt_t end_frame, 
+                         boost::shared_ptr<Processor> endpoint, bool include_endpoint, bool for_export);
 
        int set_state (const XMLNode&, int version);
 
@@ -91,22 +92,17 @@ public:
 
        PBD::Signal1<void,bool> StepEditStatusChange;
 
-       bool midi_thru() const { return _midi_thru; }
-       void set_midi_thru (bool yn);
-
        boost::shared_ptr<SMFSource> write_source (uint32_t n = 0);
        void set_channel_mode (ChannelMode, uint16_t);
        ChannelMode get_channel_mode ();
        uint16_t get_channel_mask ();
        boost::shared_ptr<MidiPlaylist> midi_playlist ();
 
-       bool bounceable () const {
-               return false;
-       }
-
        PBD::Signal1<void, boost::weak_ptr<MidiSource> > DataRecorded;
        boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;
 
+       void set_monitoring (MonitorChoice);
+
        void set_input_active (bool);
        bool input_active () const;
        PBD::Signal0<void> InputActiveChanged;
@@ -114,12 +110,9 @@ public:
 protected:
        XMLNode& state (bool full);
 
-       bool should_monitor () const;
-       bool send_silence () const;
-
        void act_on_mute ();
 
-  private:
+private:
 
        virtual boost::shared_ptr<Diskstream> diskstream_factory (XMLNode const &);
        
@@ -134,7 +127,6 @@ protected:
        MidiRingBuffer<framepos_t> _step_edit_ring_buffer;
        NoteMode                  _note_mode;
        bool                      _step_editing;
-       bool                      _midi_thru;
        bool                      _input_active;
 
        int no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, bool state_changing);