Add Lua bindings for MIDI-parser and Async ports
authorRobin Gareus <robin@gareus.org>
Tue, 5 Dec 2017 15:08:02 +0000 (16:08 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 5 Dec 2017 15:09:49 +0000 (16:09 +0100)
libs/ardour/luabindings.cc

index 00e5b98884e8a68a887fd2ac6c856b8045fd676b..48489b1b00106dc0c2d4628085b71f389dedab10 100644 (file)
@@ -28,6 +28,7 @@
 #include "evoral/Range.hpp"
 
 #include "ardour/amp.h"
+#include "ardour/async_midi_port.h"
 #include "ardour/audioengine.h"
 #include "ardour/audioregion.h"
 #include "ardour/audiosource.h"
@@ -65,6 +66,7 @@
 #include "ardour/polarity_processor.h"
 #include "ardour/port_manager.h"
 #include "ardour/progress.h"
+#include "ardour/raw_midi_parser.h"
 #include "ardour/runtime_functions.h"
 #include "ardour/region.h"
 #include "ardour/region_factory.h"
@@ -869,6 +871,7 @@ LuaBindings::common (lua_State* L)
 
                .beginWSPtrClass <Port> ("Port")
                .addCast<MidiPort> ("to_midiport")
+               .addCast<AsyncMIDIPort> ("to_asyncmidiport")
                .addCast<AudioPort> ("to_audioport")
                .addFunction ("name", &Port::name)
                .addFunction ("pretty_name", &Port::pretty_name)
@@ -890,11 +893,16 @@ LuaBindings::common (lua_State* L)
                .endClass ()
 
                .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
+               .addCast<AsyncMIDIPort> ("to_asyncmidiport")
                .addFunction ("input_active", &MidiPort::input_active)
                .addFunction ("set_input_active", &MidiPort::set_input_active)
                .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
                .endClass ()
 
+               .deriveWSPtrClass <AsyncMIDIPort, MidiPort> ("AsyncMIDIPort")
+               .addFunction ("write", &AsyncMIDIPort::write)
+               .endClass ()
+
                .beginWSPtrClass <PortSet> ("PortSet")
                .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
                .addFunction ("add", &PortSet::add)
@@ -1555,6 +1563,14 @@ LuaBindings::common (lua_State* L)
                .deriveWSPtrClass <PluginInsert::PluginControl, AutomationControl> ("PluginControl")
                .endClass ()
 
+               .beginClass <RawMidiParser> ("RawMidiParser")
+               .addVoidConstructor ()
+               .addFunction ("reset", &RawMidiParser::reset)
+               .addFunction ("process_byte", &RawMidiParser::process_byte)
+               .addFunction ("buffer_size", &RawMidiParser::buffer_size)
+               .addFunction ("midi_buffer", &RawMidiParser::midi_buffer)
+               .endClass ()
+
                .deriveWSPtrClass <AudioSource, Source> ("AudioSource")
                .addFunction ("readable_length", &AudioSource::readable_length)
                .addFunction ("n_channels", &AudioSource::n_channels)