#include <pbd/fastlog.h>
#include <pbd/ringbufferNPT.h>
-
#include <ardour/ardour.h>
#include <ardour/configuration.h>
-#include <ardour/session.h>
-#include <ardour/route_group.h>
-#include <ardour/route.h>
-#include <ardour/port.h>
-#include <ardour/utils.h>
#include <ardour/diskstream.h>
#include <ardour/midi_playlist.h>
#include <ardour/midi_ring_buffer.h>
#include <ardour/midi_state_tracker.h>
+#include <ardour/utils.h>
struct tm;
namespace ARDOUR {
+class IO;
class MidiEngine;
+class MidiPort;
+class MidiRingbuffer;
+class SMFSource;
class Send;
class Session;
-class MidiPlaylist;
-class SMFSource;
-class IO;
class MidiDiskstream : public Diskstream
{
private:
/* The two central butler operations */
- int do_flush (Session::RunContext context, bool force = false);
+ int do_flush (RunContext context, bool force = false);
int do_refill ();
int do_refill_with_alloc();
void engage_record_enable ();
void disengage_record_enable ();
- void check_note_onoffs(Evoral::MIDIEvent &event);
- void emit_pending_note_offs(MidiBuffer &dst, nframes_t time);
-
- MidiRingBuffer* _playback_buf;
- MidiRingBuffer* _capture_buf;
- MidiPort* _source_port;
- boost::shared_ptr<SMFSource> _write_source;
- nframes_t _last_flush_frame;
- NoteMode _note_mode;
- MidiStateTracker _midistate_tracker;
- volatile gint _frames_written_to_ringbuffer;
- volatile gint _frames_read_from_ringbuffer;
+
+ MidiRingBuffer<nframes_t>* _playback_buf;
+ MidiRingBuffer<nframes_t>* _capture_buf;
+ MidiPort* _source_port;
+ boost::shared_ptr<SMFSource> _write_source;
+ nframes_t _last_flush_frame;
+ NoteMode _note_mode;
+ MidiStateTracker _midi_state_tracker;
+ volatile gint _frames_written_to_ringbuffer;
+ volatile gint _frames_read_from_ringbuffer;
};
}; /* namespace ARDOUR */