void merge_from (const Buffer& src, framecnt_t nframes, framecnt_t dst_offset = 0, framecnt_t src_offset = 0);
void copy(const MidiBuffer& copy);
+ void copy(MidiBuffer const * const);
bool push_back(const Evoral::MIDIEvent<TimeType>& event);
bool push_back(TimeType time, size_t size, const uint8_t* data);
.beginClass <MidiBuffer> ("MidiBuffer")
.addEqualCheck ()
.addFunction ("silence", &MidiBuffer::silence)
+ .addFunction ("size", &MidiBuffer::size)
+ .addFunction ("empty", &MidiBuffer::empty)
+ .addFunction ("resize", &MidiBuffer::resize)
+ .addFunction ("copy", (void (MidiBuffer::*)(MidiBuffer const * const))&MidiBuffer::copy)
.addFunction ("push_event", (bool (MidiBuffer::*)(const Evoral::MIDIEvent<framepos_t>&))&MidiBuffer::push_back)
.addFunction ("push_back", (bool (MidiBuffer::*)(framepos_t, size_t, const uint8_t*))&MidiBuffer::push_back)
// TODO iterators..
memcpy(_data, copy._data, copy._size);
}
+void
+MidiBuffer::copy(MidiBuffer const * const copy)
+{
+ assert(_capacity >= copy->size ());
+ _size = copy->size ();
+ memcpy(_data, copy->data(), _size);
+}
+
/** Read events from @a src starting at time @a offset into the START of this buffer, for
* time duration @a nframes. Relative time, where 0 = start of buffer.