From a1bff57695c6063648e6cd650741db7a40726d8a Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 11 Jul 2016 03:04:29 +0200 Subject: lua MidiBuffer bindings --- libs/ardour/ardour/midi_buffer.h | 1 + libs/ardour/luabindings.cc | 4 ++++ libs/ardour/midi_buffer.cc | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/libs/ardour/ardour/midi_buffer.h b/libs/ardour/ardour/midi_buffer.h index 8593a4ebb2..2a472e1783 100644 --- a/libs/ardour/ardour/midi_buffer.h +++ b/libs/ardour/ardour/midi_buffer.h @@ -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& event); bool push_back(TimeType time, size_t size, const uint8_t* data); diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 89d132015c..de46eb607b 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -1278,6 +1278,10 @@ LuaBindings::dsp (lua_State* L) .beginClass ("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&))&MidiBuffer::push_back) .addFunction ("push_back", (bool (MidiBuffer::*)(framepos_t, size_t, const uint8_t*))&MidiBuffer::push_back) // TODO iterators.. diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc index 3a03a03f9e..41d638dc78 100644 --- a/libs/ardour/midi_buffer.cc +++ b/libs/ardour/midi_buffer.cc @@ -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. -- cgit v1.2.3