summaryrefslogtreecommitdiff
path: root/libs/ardour/luabindings.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-03-18 20:00:44 +0100
committerRobin Gareus <robin@gareus.org>2016-03-18 20:00:44 +0100
commit4ef3e251853dec5e7e300618c5135ea33af9ff81 (patch)
treee61eb6b57508bf1aea62de298392a9a7c0a010a8 /libs/ardour/luabindings.cc
parent2c71196a6cc878866e0deda9653d0e59ac39b960 (diff)
Add some convenient DSP methods for lua scripts
Diffstat (limited to 'libs/ardour/luabindings.cc')
-rw-r--r--libs/ardour/luabindings.cc31
1 files changed, 29 insertions, 2 deletions
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 0fa52c4020..b202649229 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -89,6 +89,19 @@ LuaBindings::stddef (lua_State* L)
.registerArray <float> ("FloatArray")
.endNamespace ();
+ // register float array (int32_t*)
+ luabridge::getGlobalNamespace (L)
+ .beginNamespace ("ARDOUR")
+ .registerArray <int32_t> ("IntArray")
+ .endNamespace ();
+
+ // std::vector<std::string>
+ luabridge::getGlobalNamespace (L)
+ .beginNamespace ("ARDOUR")
+ .beginStdVector <double> ("DoubleVector")
+ .endClass ()
+ .endNamespace ();
+
// TODO std::set
}
@@ -562,6 +575,10 @@ LuaBindings::dsp (lua_State* L)
.addFunction ("accurate_coefficient_to_dB", &accurate_coefficient_to_dB)
.addFunction ("memset", &DSP::memset)
.addFunction ("mmult", &DSP::mmult)
+ .addFunction ("log_meter", &DSP::log_meter)
+ .addFunction ("log_meter_coeff", &DSP::log_meter_coeff)
+ .addRefFunction ("peaks", &DSP::peaks)
+
.beginClass <DSP::LowPass> ("LowPass")
.addConstructor <void (*) (double, float)> ()
.addFunction ("proc", &DSP::LowPass::proc)
@@ -575,8 +592,18 @@ LuaBindings::dsp (lua_State* L)
.addFunction ("compute", &DSP::BiQuad::compute)
.addFunction ("reset", &DSP::BiQuad::reset)
.endClass ()
- .endNamespace ()
- .endNamespace ();
+
+ .beginClass <DSP::DspShm> ("DspShm")
+ .addFunction ("allocate", &DSP::DspShm::allocate)
+ .addFunction ("clear", &DSP::DspShm::clear)
+ .addFunction ("to_float", &DSP::DspShm::to_float)
+ .addFunction ("to_int", &DSP::DspShm::to_int)
+ .addFunction ("atomic_set_int", &DSP::DspShm::atomic_set_int)
+ .addFunction ("atomic_get_int", &DSP::DspShm::atomic_get_int)
+ .endClass ()
+
+ .endNamespace () // DSP
+ .endNamespace (); // ARDOUR
}
void