lua MidiBuffer bindings

This commit is contained in:
Robin Gareus 2016-07-11 03:04:29 +02:00
parent b8a7ee001b
commit a1bff57695
3 changed files with 13 additions and 0 deletions

View File

@ -45,6 +45,7 @@ public:
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);

View File

@ -1278,6 +1278,10 @@ LuaBindings::dsp (lua_State* L)
.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..

View File

@ -80,6 +80,14 @@ MidiBuffer::copy(const MidiBuffer& copy)
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.