+ boost::shared_ptr<SMFSource> write_source () { return _write_source; }
+
+ int set_destructive (bool yn); // doom!
+
+ void set_note_mode (NoteMode m);
+
+ uint16_t get_channel_mask() {
+ uint16_t playback_mask = _playback_buf->get_channel_mask();
+#ifndef NDEBUG
+ uint16_t capture_mask = _capture_buf->get_channel_mask();
+ assert(playback_mask == capture_mask);
+#endif
+ return playback_mask;
+ }
+
+ void set_channel_mode(ChannelMode mode, uint16_t mask) {
+ _playback_buf->set_channel_mode(mode, mask);
+ _capture_buf->set_channel_mode(mode, mask);
+ }
+
+ ChannelMode get_channel_mode() {
+ ChannelMode playback_mode = _playback_buf->get_channel_mode();
+#ifndef NDEBUG
+ ChannelMode capture_mode = _capture_buf->get_channel_mode();
+ assert(playback_mode == capture_mode);
+#endif
+ return playback_mode;
+ }
+
+ /** Emitted when some MIDI data has been received for recording.
+ * Parameter is the source that it is destined for.
+ * A caller can get a copy of the data with get_gui_feed_buffer ()
+ */
+ PBD::Signal1<void, boost::weak_ptr<MidiSource> > DataRecorded;
+
+ boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;