-
- void engage_record_enable ();
- void disengage_record_enable ();
-
- // FIXME: This is basically a single ChannelInfo.. abstractify that concept?
- MidiRingBuffer* _playback_buf;
- MidiRingBuffer* _capture_buf;
- //RawMidi* _current_playback_buffer;
- //RawMidi* _current_capture_buffer;
- //RawMidi* _playback_wrap_buffer;
- //RawMidi* _capture_wrap_buffer;
- MidiPort* _source_port;
- boost::shared_ptr<SMFSource> _write_source;
- RingBufferNPT<CaptureTransition>* _capture_transition_buf;
- //RingBufferNPT<RawMidi>::rw_vector _playback_vector;
- //RingBufferNPT<RawMidi>::rw_vector _capture_vector;
- nframes_t _last_flush_frame;
+
+ /* fixed size buffers per instance of ardour for now (non-dynamic)
+ */
+
+ void adjust_playback_buffering () {}
+ void adjust_capture_buffering () {}
+
+ bool prep_record_enable ();
+ bool prep_record_disable ();
+
+ MidiRingBuffer<framepos_t>* _playback_buf;
+ MidiRingBuffer<framepos_t>* _capture_buf;
+ boost::weak_ptr<MidiPort> _source_port;
+ boost::shared_ptr<SMFSource> _write_source;
+ NoteMode _note_mode;
+ gint _frames_written_to_ringbuffer;
+ gint _frames_read_from_ringbuffer;
+ volatile gint _frames_pending_write;
+ volatile gint _num_captured_loops;
+ framepos_t _accumulated_capture_offset;
+
+ /** A buffer that we use to put newly-arrived MIDI data in for
+ the GUI to read (so that it can update itself).
+ */
+ MidiBuffer _gui_feed_buffer;
+ mutable Glib::Threads::Mutex _gui_feed_buffer_mutex;