summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-04-02 23:41:33 +0200
committerRobin Gareus <robin@gareus.org>2016-04-02 23:41:33 +0200
commitb7f723619d3dfdac02d7c5a0d5de45a9c4341ed1 (patch)
tree41bff8c2bac482f24f1cefceacad8f6e5ce066db /libs/ardour
parent3164c9a07b3646a60cb9433faf7ee90fdd57985e (diff)
convenient Lua bindings to use Ardour::DataType
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/lua_api.h4
-rw-r--r--libs/ardour/lua_api.cc25
-rw-r--r--libs/ardour/luabindings.cc3
3 files changed, 32 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lua_api.h b/libs/ardour/ardour/lua_api.h
index fd6bc364fd..7f0b54403b 100644
--- a/libs/ardour/ardour/lua_api.h
+++ b/libs/ardour/ardour/lua_api.h
@@ -30,6 +30,10 @@
namespace ARDOUR { namespace LuaAPI {
+ int datatype_ctor_nil (lua_State *L);
+ int datatype_ctor_audio (lua_State *L);
+ int datatype_ctor_midi (lua_State *L);
+
/** create a new Lua Processor (Plugin)
*
* @param s Session Handle
diff --git a/libs/ardour/lua_api.cc b/libs/ardour/lua_api.cc
index a21dbfb3ea..3bd4fc43f6 100644
--- a/libs/ardour/lua_api.cc
+++ b/libs/ardour/lua_api.cc
@@ -36,6 +36,31 @@ using namespace ARDOUR;
using namespace PBD;
using namespace std;
+int
+ARDOUR::LuaAPI::datatype_ctor_nil (lua_State *L)
+{
+ DataType dt (DataType::NIL);
+ luabridge::Stack <DataType>::push (L, dt);
+ return 1;
+}
+
+int
+ARDOUR::LuaAPI::datatype_ctor_audio (lua_State *L)
+{
+ DataType dt (DataType::AUDIO);
+ // NB luabridge will copy construct the object and manage lifetime.
+ luabridge::Stack <DataType>::push (L, dt);
+ return 1;
+}
+
+int
+ARDOUR::LuaAPI::datatype_ctor_midi (lua_State *L)
+{
+ DataType dt (DataType::MIDI);
+ luabridge::Stack <DataType>::push (L, dt);
+ return 1;
+}
+
boost::shared_ptr<Processor>
ARDOUR::LuaAPI::new_luaproc (Session *s, const string& name)
{
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 8c5023cfd7..41a29807eb 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -469,6 +469,9 @@ LuaBindings::common (lua_State* L)
.beginClass <DataType> ("DataType")
.addConstructor <void (*) (std::string)> ()
+ .addStaticCFunction ("null", &LuaAPI::datatype_ctor_nil) // "nil" is a lua reseved word
+ .addStaticCFunction ("audio", &LuaAPI::datatype_ctor_audio)
+ .addStaticCFunction ("midi", &LuaAPI::datatype_ctor_midi)
.endClass()
/* libardour enums */