X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fmidi_buffer.h;h=8593a4ebb2ad778ce0ccfe7987e01f7383c6f1c5;hb=36ec551a8ad66a99723f54d3149cbcf30d31c077;hp=2923b784a99baa4e4e6aab358936288eddf56b6e;hpb=8a128b33d38172ae525ac798c53bc105bc4e2c64;p=ardour.git diff --git a/libs/ardour/ardour/midi_buffer.h b/libs/ardour/ardour/midi_buffer.h index 2923b784a9..8593a4ebb2 100644 --- a/libs/ardour/ardour/midi_buffer.h +++ b/libs/ardour/ardour/midi_buffer.h @@ -21,7 +21,10 @@ #define __ardour_midi_buffer_h__ #include "evoral/midi_util.h" +#include "evoral/EventSink.hpp" + #include "midi++/event.h" + #include "ardour/buffer.h" #include "ardour/parameter_types.h" @@ -29,7 +32,7 @@ namespace ARDOUR { /** Buffer containing 8-bit unsigned char (MIDI) data. */ -class LIBARDOUR_API MidiBuffer : public Buffer +class LIBARDOUR_API MidiBuffer : public Buffer, public Evoral::EventSink { public: typedef framepos_t TimeType; @@ -55,6 +58,9 @@ public: bool insert_event(const Evoral::MIDIEvent& event); bool merge_in_place(const MidiBuffer &other); + /** EventSink interface for non-RT use (export, bounce). */ + uint32_t write(TimeType time, Evoral::EventType type, uint32_t size, const uint8_t* buf); + template class iterator_base {