#include "ardour/region_factory.h"
#include "ardour/session.h"
#include "ardour/session_object.h"
+#include "ardour/sidechain.h"
#include "ardour/tempo.h"
#include "LuaBridge/LuaBridge.h"
.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 ()
.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 ()
.addFunction ("name", &SessionObject::name)
.endClass ()
+ .deriveWSPtrClass <IO, SessionObject> ("IO")
+ .addFunction ("active", &IO::active)
+ .addFunction ("add_port", &IO::add_port)
+ .addFunction ("remove_port", &IO::remove_port)
+ .addFunction ("connect", &IO::connect)
+ .addFunction ("disconnect", (int (IO::*)(boost::shared_ptr<Port>, std::string, void *))&IO::disconnect)
+ .addFunction ("physically_connected", &IO::physically_connected)
+ .endClass ()
+
.deriveWSPtrClass <Route, SessionObject> ("Route")
.addFunction ("set_name", &Route::set_name)
.addFunction ("comment", &Route::comment)
.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)
+ .addFunction ("add_sidechain", &Route::add_sidechain)
+ .addFunction ("remove_sidechain", &Route::remove_sidechain)
.endClass ()
.deriveWSPtrClass <Track, Route> ("Track")
.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)
.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)
.deriveWSPtrClass <Processor, Automatable> ("Processor")
.addCast<PluginInsert> ("to_insert")
+ .addCast<SideChain> ("to_sidechain")
+ .addCast<IOProcessor> ("to_ioprocessor")
.addFunction ("display_name", &Processor::display_name)
.addFunction ("active", &Processor::active)
.addFunction ("activate", &Processor::activate)
.addFunction ("automation_control", (boost::shared_ptr<AutomationControl>(Automatable::*)(const Evoral::Parameter&, bool))&Automatable::automation_control)
.endClass ()
- .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("PluginInsert")
+ .deriveWSPtrClass <IOProcessor, Processor> ("IOProcessor")
+ .addFunction ("natural_input_streams", &IOProcessor::natural_input_streams)
+ .addFunction ("natural_output_streams", &IOProcessor::natural_output_streams)
+ .addFunction ("input", (boost::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::input)
+ .addFunction ("output", (boost::shared_ptr<IO>(IOProcessor::*)())&IOProcessor::output)
+ .endClass ()
+
+ .deriveWSPtrClass <SideChain, IOProcessor> ("SideChain")
+ .endClass ()
+
+ .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
.addFunction ("label", &Plugin::label)
.addFunction ("name", &Plugin::name)
.addFunction ("maker", &Plugin::maker)
.addFunction ("plugin", &PluginInsert::plugin)
.addFunction ("activate", &PluginInsert::activate)
.addFunction ("deactivate", &PluginInsert::deactivate)
+ .addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
+ .addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
+ .addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
+ .addFunction ("set_input_map", &PluginInsert::set_input_map)
+ .addFunction ("set_output_map", &PluginInsert::set_output_map)
+
.endClass ()
.deriveWSPtrClass <AutomationControl, Evoral::Control> ("AutomationControl")
.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")
.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 */
.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)
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 ();
}