diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-02 23:41:33 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-02 23:41:33 +0200 |
commit | b7f723619d3dfdac02d7c5a0d5de45a9c4341ed1 (patch) | |
tree | 41bff8c2bac482f24f1cefceacad8f6e5ce066db /libs/ardour | |
parent | 3164c9a07b3646a60cb9433faf7ee90fdd57985e (diff) |
convenient Lua bindings to use Ardour::DataType
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/lua_api.h | 4 | ||||
-rw-r--r-- | libs/ardour/lua_api.cc | 25 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 3 |
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 */ |