fix bug: capture buffer not filtered by track channel selector
[ardour.git] / libs / ardour / ardour / midi_diskstream.h
index a7695b5ebfff985adecfc1e2fa3065bdb4e6a865..1b1fcf54f35dfb1ca111b52a270095d710faa72d 100644 (file)
@@ -63,8 +63,11 @@ class MidiDiskstream : public Diskstream
        float capture_buffer_load() const;
 
        void get_playback (MidiBuffer& dst, framecnt_t);
+        void flush_playback (framepos_t, framepos_t);
 
        void set_record_enabled (bool yn);
+       
+       void reset_tracker ();
 
        boost::shared_ptr<MidiPlaylist> midi_playlist () { return boost::dynamic_pointer_cast<MidiPlaylist>(_playlist); }
 
@@ -78,7 +81,7 @@ class MidiDiskstream : public Diskstream
        XMLNode& get_state(void);
        int set_state(const XMLNode&, int version);
 
-       void monitor_input (bool);
+       void ensure_jack_monitors_input (bool);
 
        boost::shared_ptr<SMFSource> write_source ()    { return _write_source; }
 
@@ -102,8 +105,8 @@ class MidiDiskstream : public Diskstream
 
        ChannelMode get_channel_mode() {
                ChannelMode playback_mode = _playback_buf->get_channel_mode();
-#ifndef NDEBUG
                ChannelMode capture_mode  = _capture_buf->get_channel_mode();
+#ifndef NDEBUG
                assert(playback_mode == capture_mode);
 #endif
                return playback_mode;
@@ -196,7 +199,7 @@ class MidiDiskstream : public Diskstream
            the GUI to read (so that it can update itself).
        */
        MidiBuffer                   _gui_feed_buffer;
-       mutable Glib::Mutex          _gui_feed_buffer_mutex;
+       mutable Glib::Threads::Mutex          _gui_feed_buffer_mutex;
 };
 
 }; /* namespace ARDOUR */