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
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)
{
.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 */