abort if configuration fails
[ardour.git] / libs / ardour / luabindings.cc
index 339130c449930319c4e565c51cc669c00b83ce4f..dfcdfaec61b34e2549e8a35668258a3f0330c207 100644 (file)
@@ -128,16 +128,46 @@ LuaBindings::common (lua_State* L)
                .addConst ("UseGroup", PBD::Controllable::GroupControlDisposition(PBD::Controllable::UseGroup))
                .endNamespace ()
 
-               .endNamespace ();
+               .endNamespace (); // PBD
 
        luabridge::getGlobalNamespace (L)
-               .beginNamespace ("ARDOUR") // XXX really libtimecode
+               .beginNamespace ("Timecode")
                .beginClass <Timecode::BBT_Time> ("BBT_TIME")
                .addConstructor <void (*) (uint32_t, uint32_t, uint32_t)> ()
                .endClass ()
                .endNamespace ();
 
        luabridge::getGlobalNamespace (L)
+
+               .beginNamespace ("Evoral")
+               .beginClass <Evoral::Parameter> ("Parameter")
+               .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
+               .addFunction ("type", &Evoral::Parameter::type)
+               .addFunction ("channel", &Evoral::Parameter::channel)
+               .addFunction ("id", &Evoral::Parameter::id)
+               .endClass ()
+
+               .beginWSPtrClass <Evoral::ControlList> ("ControlList")
+               .addFunction ("add", &Evoral::ControlList::add)
+               .endClass ()
+
+               .beginWSPtrClass <Evoral::ControlSet> ("ControlSet")
+               .endClass ()
+
+               .beginWSPtrClass <Evoral::Control> ("Control")
+               .addFunction ("list", (boost::shared_ptr<Evoral::ControlList>(Evoral::Control::*)())&Evoral::Control::list)
+               .endClass ()
+
+               .beginClass <Evoral::ParameterDescriptor> ("ParameterDescriptor")
+               .addVoidConstructor ()
+               .addData ("lower", &Evoral::ParameterDescriptor::lower)
+               .addData ("upper", &Evoral::ParameterDescriptor::upper)
+               .addData ("normal", &Evoral::ParameterDescriptor::normal)
+               .addData ("toggled", &Evoral::ParameterDescriptor::toggled)
+               .endClass ()
+
+               .endNamespace () // Evoral
+
                .beginNamespace ("ARDOUR")
                .beginWSPtrClass <PluginInfo> ("PluginInfo")
                .addVoidConstructor ()
@@ -149,6 +179,13 @@ LuaBindings::common (lua_State* L)
                .endClass ()
                .endNamespace ()
 
+               .beginClass <ChanMapping> ("ChanMapping")
+               .addVoidConstructor ()
+               .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t) const>(&ChanMapping::get))
+               .addFunction ("set", &ChanMapping::set)
+               .addConst ("Invalid", 4294967295) // UINT32_MAX
+               .endClass ()
+
                .beginNamespace ("Properties")
                // templated class definitions
                .beginClass <PBD::PropertyDescriptor<bool> > ("BoolProperty").endClass ()
@@ -206,6 +243,10 @@ LuaBindings::common (lua_State* L)
                .addFunction ("n_inputs", &Route::n_inputs)
                .addFunction ("n_outputs", &Route::n_outputs)
                .addFunction ("set_comment", &Route::set_comment)
+               .addFunction ("strict_io", &Route::strict_io)
+               .addFunction ("set_strict_io", &Route::set_strict_io)
+               .addFunction ("reset_plugin_insert", &Route::reset_plugin_insert)
+               .addFunction ("customize_plugin_insert", &Route::customize_plugin_insert)
                .endClass ()
 
                .deriveWSPtrClass <Track, Route> ("Track")
@@ -281,13 +322,6 @@ LuaBindings::common (lua_State* L)
                .beginWSPtrClass <Source> ("Source")
                .endClass ()
 
-               .beginClass <Evoral::Parameter> ("EvoralParameter")
-               .addConstructor <void (*) (uint32_t, uint8_t, uint32_t)> ()
-               .addFunction ("type", &Evoral::Parameter::type)
-               .addFunction ("channel", &Evoral::Parameter::channel)
-               .addFunction ("id", &Evoral::Parameter::id)
-               .endClass ()
-
                .beginClass <Plugin::PresetRecord> ("PresetRecord")
                .addData ("uri", &Plugin::PresetRecord::uri, false)
                .addData ("label", &Plugin::PresetRecord::label, false)
@@ -295,29 +329,10 @@ LuaBindings::common (lua_State* L)
                .addData ("valid", &Plugin::PresetRecord::valid, false)
                .endClass ()
 
-               .beginWSPtrClass <Evoral::ControlList> ("EvoralControlList")
-               .addFunction ("add", &Evoral::ControlList::add)
-               .endClass ()
-
-               .beginWSPtrClass <Evoral::ControlSet> ("EvoralControlSet")
-               .endClass ()
-
                .deriveWSPtrClass <Automatable, Evoral::ControlSet> ("Automatable")
                .addFunction ("automation_control", (boost::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
                .endClass ()
 
-               .beginWSPtrClass <Evoral::Control> ("EvoralControl")
-               .addFunction ("list", (boost::shared_ptr<Evoral::ControlList>(Evoral::Control::*)())&Evoral::Control::list)
-               .endClass ()
-
-               .beginClass <Evoral::ParameterDescriptor> ("EvoralParameterDescriptor")
-               .addVoidConstructor ()
-               .addData ("lower", &Evoral::ParameterDescriptor::lower)
-               .addData ("upper", &Evoral::ParameterDescriptor::upper)
-               .addData ("normal", &Evoral::ParameterDescriptor::normal)
-               .addData ("toggled", &Evoral::ParameterDescriptor::toggled)
-               .endClass ()
-
                .deriveClass <ParameterDescriptor, Evoral::ParameterDescriptor> ("ParameterDescriptor")
                .addVoidConstructor ()
                .addData ("label", &ParameterDescriptor::label)
@@ -338,7 +353,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("automation_control", (boost::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
                .endClass ()
 
-               .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("PluginInsert")
+               .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
                .addFunction ("label", &Plugin::label)
                .addFunction ("name", &Plugin::name)
                .addFunction ("maker", &Plugin::maker)
@@ -357,6 +372,14 @@ LuaBindings::common (lua_State* L)
                .addFunction ("plugin", &PluginInsert::plugin)
                .addFunction ("activate", &PluginInsert::activate)
                .addFunction ("deactivate", &PluginInsert::deactivate)
+               .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
+               .addFunction ("no_inplace", &PluginInsert::no_inplace)
+               .addFunction ("input_map", &PluginInsert::input_map)
+               .addFunction ("output_map", &PluginInsert::output_map)
+               .addFunction ("set_no_inplace", &PluginInsert::set_no_inplace) // XXX
+               .addFunction ("set_input_map", &PluginInsert::set_input_map)
+               .addFunction ("set_output_map", &PluginInsert::set_output_map)
+
                .endClass ()
 
                .deriveWSPtrClass <AutomationControl, Evoral::Control> ("AutomationControl")
@@ -437,7 +460,13 @@ LuaBindings::common (lua_State* L)
                .endClass ()
 
                .beginClass <ChanCount> ("ChanCount")
+               .addConstructor <void (*) (DataType, uint32_t)> ()
+               .addFunction ("get", &ChanCount::get)
+               .addFunction ("set", &ChanCount::set)
                .addFunction ("n_audio", &ChanCount::n_audio)
+               .addFunction ("n_midi", &ChanCount::n_midi)
+               .addFunction ("n_total", &ChanCount::n_total)
+               .addFunction ("reset", &ChanCount::reset)
                .endClass()
 
                .beginClass <DataType> ("DataType")
@@ -625,12 +654,6 @@ LuaBindings::dsp (lua_State* L)
                .addFunction ("get_audio", static_cast<AudioBuffer&(BufferSet::*)(size_t)>(&BufferSet::get_audio))
                .addFunction ("count", static_cast<const ChanCount&(BufferSet::*)()const>(&BufferSet::count))
                .endClass()
-
-               .beginClass <ChanMapping> ("ChanMapping")
-               .addFunction ("get", static_cast<uint32_t(ChanMapping::*)(DataType, uint32_t)>(&ChanMapping::get))
-               .addFunction ("set", &ChanMapping::set)
-               .addConst ("Invalid", 4294967295) // UINT32_MAX
-               .endClass ()
                .endNamespace ();
 
        luabridge::getGlobalNamespace (L)
@@ -745,11 +768,13 @@ void
 LuaBindings::osc (lua_State* L)
 {
        luabridge::getGlobalNamespace (L)
-               .beginNamespace ("OSC")
-               .beginClass<LuaAPI::LuaOSCAddress> ("Address")
+               .beginNamespace ("ARDOUR")
+               .beginNamespace ("LuaOSC")
+               .beginClass<LuaOSC::Address> ("Address")
                .addConstructor<void (*) (std::string)> ()
-               .addCFunction ("send", &LuaAPI::LuaOSCAddress::send)
+               .addCFunction ("send", &LuaOSC::Address::send)
                .endClass ()
+               .endNamespace ()
                .endNamespace ();
 }