diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-11 03:04:29 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-11 03:04:29 +0200 |
commit | a1bff57695c6063648e6cd650741db7a40726d8a (patch) | |
tree | 8a1fd685219ff51796c49ad14842945d25a1ecd6 | |
parent | b8a7ee001b3e1e19012e8713d2e1424e4c8820a6 (diff) |
lua MidiBuffer bindings
-rw-r--r-- | libs/ardour/ardour/midi_buffer.h | 1 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 4 | ||||
-rw-r--r-- | libs/ardour/midi_buffer.cc | 8 |
3 files changed, 13 insertions, 0 deletions
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<TimeType>& 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> ("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.. 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. |