diff options
Diffstat (limited to 'libs/ardour/midi_port.cc')
-rw-r--r-- | libs/ardour/midi_port.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc index f2f347a076..30084c6718 100644 --- a/libs/ardour/midi_port.cc +++ b/libs/ardour/midi_port.cc @@ -26,12 +26,10 @@ using namespace ARDOUR; using namespace std; MidiPort::MidiPort (const std::string& name, Flags flags) - : Port (name, DataType::MIDI, flags) + : Port (name, DataType::MIDI, flags) , _has_been_mixed_down (false) { - // FIXME: size kludge (see BufferSet::ensure_buffers) - // Jack needs to tell us this - _buffer = new MidiBuffer (1024 * 32); + _buffer = new MidiBuffer (raw_buffer_size(0)); } MidiPort::~MidiPort() @@ -39,7 +37,6 @@ MidiPort::~MidiPort() delete _buffer; } - void MidiPort::cycle_start (nframes_t nframes) { @@ -133,3 +130,9 @@ MidiPort::flush_buffers (nframes_t nframes, nframes_t offset) } } +size_t +MidiPort::raw_buffer_size (nframes_t nframes) const +{ + return jack_midi_max_event_size(jack_port_get_buffer(_jack_port, nframes)); +} + |