From 5d597cdfeb644957358a4c2b0da10a4ef04f1747 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 23 Aug 2016 22:18:04 +0200 Subject: [PATCH] add FluidSynth Lua Bindings --- libs/ardour/luabindings.cc | 16 ++++++++++++++++ libs/ardour/luaproc.cc | 2 ++ 2 files changed, 18 insertions(+) diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 81d14b2a6f..e2ba1aa81c 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -36,6 +36,7 @@ #include "ardour/chan_mapping.h" #include "ardour/dB.h" #include "ardour/dsp_filter.h" +#include "ardour/fluid_synth.h" #include "ardour/interthread_info.h" #include "ardour/lua_api.h" #include "ardour/luabindings.h" @@ -169,6 +170,7 @@ CLASSKEYS(ARDOUR::LuaOSC::Address); CLASSKEYS(ARDOUR::Session); CLASSKEYS(ARDOUR::BufferSet); CLASSKEYS(ARDOUR::ChanMapping); +CLASSKEYS(ARDOUR::FluidSynth); CLASSKEYS(ARDOUR::DSP::DspShm); CLASSKEYS(ARDOUR::LuaTableRef); CLASSKEYS(PBD::Configuration); @@ -1479,6 +1481,20 @@ LuaBindings::dsp (lua_State* L) .endClass () .endNamespace (); + luabridge::getGlobalNamespace (L) + .beginNamespace ("ARDOUR") + .beginClass ("FluidSynth") + .addConstructor () + .addFunction ("load_sf2", &FluidSynth::load_sf2) + .addFunction ("synth", &FluidSynth::synth) + .addFunction ("midi_event", &FluidSynth::midi_event) + .addFunction ("panic", &FluidSynth::panic) + .addFunction ("select_program", &FluidSynth::select_program) + .addFunction ("program_count", &FluidSynth::program_count) + .addFunction ("program_name", &FluidSynth::program_name) + .endClass () + .endNamespace (); + luabridge::getGlobalNamespace (L) .beginNamespace ("ARDOUR") .beginNamespace ("DSP") diff --git a/libs/ardour/luaproc.cc b/libs/ardour/luaproc.cc index fbba74bba3..c67667c6ea 100644 --- a/libs/ardour/luaproc.cc +++ b/libs/ardour/luaproc.cc @@ -664,6 +664,8 @@ LuaProc::connect_and_run (BufferSet& bufs, luabridge::LuaRef lua_midi_event (luabridge::newTable (L)); lua_midi_event["time"] = 1 + (*m).time(); lua_midi_event["data"] = lua_midi_data; + lua_midi_event["bytes"] = data; + lua_midi_event["size"] = ev.size(); lua_midi_src_tbl[e] = lua_midi_event; } }