#include "ardour/port.h"
#include "ardour/midi_buffer.h"
+#include "ardour/midi_state_tracker.h"
namespace ARDOUR {
return DataType::MIDI;
}
- void cycle_start (nframes_t nframes);
- void cycle_end (nframes_t nframes);
+ void cycle_start (pframes_t nframes);
+ void cycle_end (pframes_t nframes);
void cycle_split ();
- void flush_buffers (nframes_t nframes, nframes_t offset = 0);
- size_t raw_buffer_size(jack_nframes_t nframes) const;
+ void flush_buffers (pframes_t nframes);
+ void transport_stopped ();
+ void realtime_locate ();
+ void reset ();
+ void require_resolve ();
- Buffer& get_buffer (nframes_t nframes, nframes_t offset = 0) {
- return get_midi_buffer (nframes, offset);
+ bool input_active() const { return _input_active; }
+ void set_input_active (bool yn);
+
+ Buffer& get_buffer (pframes_t nframes) {
+ return get_midi_buffer (nframes);
}
- MidiBuffer& get_midi_buffer (nframes_t nframes, nframes_t offset = 0);
+ MidiBuffer& get_midi_buffer (pframes_t nframes);
protected:
friend class AudioEngine;
private:
MidiBuffer* _buffer;
- bool _has_been_mixed_down;
+ bool _has_been_mixed_down;
+ bool _resolve_required;
+ bool _input_active;
+ void resolve_notes (void* jack_buffer, MidiBuffer::TimeType when);
};
} // namespace ARDOUR