lua MidiBuffer bindings
authorRobin Gareus <robin@gareus.org>
Mon, 11 Jul 2016 01:04:29 +0000 (03:04 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 11 Jul 2016 01:04:29 +0000 (03:04 +0200)
libs/ardour/ardour/midi_buffer.h
libs/ardour/luabindings.cc
libs/ardour/midi_buffer.cc

index 8593a4ebb2ad778ce0ccfe7987e01f7383c6f1c5..2a472e17831c13899a65a19585d9c5c4da145ca8 100644 (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);
index 89d132015c43409ade1b526bae1942b8276182d9..de46eb607b4006a0cb4dcd6603bafa0c9514d694 100644 (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..
index 3a03a03f9ee5b48545386b33be297664a5b00100..41d638dc781fc84d221849bbefc5405344a3e1fc 100644 (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.