Grow luabindings
authorRobin Gareus <robin@gareus.org>
Thu, 10 Nov 2016 00:28:21 +0000 (01:28 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 10 Nov 2016 00:32:02 +0000 (01:32 +0100)
* expose Route IOs, Panner and Instrument
* add plugin + processor ChanCount
* bind IOPortDescription
* remove Port::**(Port*) API because there's no Port* but only
boost::shared_ptr<Port>

libs/ardour/luabindings.cc

index 034c6ee73b88a1df8c3923c6230a0f694cac84fc..5920fc023ddf001324569f43131d149ba151d676 100644 (file)
@@ -49,6 +49,7 @@
 #include "ardour/midi_port.h"
 #include "ardour/midi_region.h"
 #include "ardour/midi_source.h"
+#include "ardour/panner_shell.h"
 #include "ardour/phase_control.h"
 #include "ardour/playlist.h"
 #include "ardour/plugin.h"
@@ -771,12 +772,9 @@ LuaBindings::common (lua_State* L)
                .addFunction ("sends_output", &Port::sends_output)
                .addFunction ("connected", &Port::connected)
                .addFunction ("disconnect_all", &Port::disconnect_all)
-               .addFunction ("connected_to_name", (bool (Port::*)(std::string const &)const)&Port::connected_to)
-               .addFunction ("connect_by_name", (int (Port::*)(std::string const &))&Port::connect)
-               .addFunction ("disconnect_by_name", (int (Port::*)(std::string const &))&Port::disconnect)
-               .addFunction ("connected_to", (bool (Port::*)(Port*)const)&Port::connected_to)
-               .addFunction ("connect", (int (Port::*)(Port*))&Port::connect)
-               .addFunction ("disconnect", (int (Port::*)(Port*))&Port::disconnect)
+               .addFunction ("connected_to", (bool (Port::*)(std::string const &)const)&Port::connected_to)
+               .addFunction ("connect", (int (Port::*)(std::string const &))&Port::connect)
+               .addFunction ("disconnect", (int (Port::*)(std::string const &))&Port::disconnect)
                //.addStaticFunction ("port_offset", &Port::port_offset) // static
                .endClass ()
 
@@ -805,6 +803,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("remove_port", &IO::remove_port)
                .addFunction ("connect", &IO::connect)
                .addFunction ("disconnect", (int (IO::*)(boost::shared_ptr<Port>, std::string, void *))&IO::disconnect)
+               .addFunction ("disconnect_all", (int (IO::*)(void *))&IO::disconnect)
                .addFunction ("physically_connected", &IO::physically_connected)
                .addFunction ("has_port", &IO::has_port)
                .addFunction ("nth", &IO::nth)
@@ -814,6 +813,11 @@ LuaBindings::common (lua_State* L)
                .addFunction ("n_ports", &IO::n_ports)
                .endClass ()
 
+               .deriveWSPtrClass <PannerShell, SessionObject> ("PannerShell")
+               .addFunction ("bypassed", &PannerShell::bypassed)
+               .addFunction ("set_bypassed", &PannerShell::set_bypassed)
+               .endClass ()
+
                .beginClass <RouteGroup> ("RouteGroup")
                // stub RouteGroup* is needed for new_audio_track()
                .endClass ()
@@ -822,6 +826,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("color", &PresentationInfo::color)
                .addFunction ("set_color", &PresentationInfo::set_color)
                .addFunction ("order", &PresentationInfo::order)
+               .addConst ("max_order", ARDOUR::PresentationInfo::max_order)
                .endClass ()
 
                .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
@@ -883,8 +888,12 @@ LuaBindings::common (lua_State* L)
                .addFunction ("add_processor_by_index", &Route::add_processor_by_index)
                .addFunction ("remove_processor", &Route::remove_processor)
                .addFunction ("replace_processor", &Route::replace_processor)
+               .addFunction ("the_instrument", &Route::the_instrument)
                .addFunction ("n_inputs", &Route::n_inputs)
                .addFunction ("n_outputs", &Route::n_outputs)
+               .addFunction ("input", &Route::input)
+               .addFunction ("output", &Route::output)
+               .addFunction ("panner_shell", &Route::panner_shell)
                .addFunction ("set_comment", &Route::set_comment)
                .addFunction ("strict_io", &Route::strict_io)
                .addFunction ("set_strict_io", &Route::set_strict_io)
@@ -1133,6 +1142,8 @@ LuaBindings::common (lua_State* L)
                .addFunction ("active", &Processor::active)
                .addFunction ("activate", &Processor::activate)
                .addFunction ("deactivate", &Processor::deactivate)
+               .addFunction ("output_streams", &PluginInsert::output_streams)
+               .addFunction ("input_streams", &PluginInsert::input_streams)
                .endClass ()
 
                .deriveWSPtrClass <IOProcessor, Processor> ("IOProcessor")
@@ -1146,7 +1157,17 @@ LuaBindings::common (lua_State* L)
                .endClass ()
 
                .deriveWSPtrClass <Delivery, IOProcessor> ("Delivery")
+               .addFunction ("panner_shell", &Route::panner_shell)
+               .endClass ()
+
+               .beginNamespace ("Plugin")
+               .beginClass <Plugin::IOPortDescription> ("IOPortDescription")
+               .addData ("name", &Plugin::IOPortDescription::name)
+               .addData ("is_sidechain", &Plugin::IOPortDescription::is_sidechain)
+               .addData ("group_name", &Plugin::IOPortDescription::group_name)
+               .addData ("group_channel", &Plugin::IOPortDescription::group_channel)
                .endClass ()
+               .endNamespace ()
 
                .deriveWSPtrClass <Plugin, PBD::StatefulDestructible> ("Plugin")
                .addCast<LuaProc> ("to_luaproc")
@@ -1163,6 +1184,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("get_docs", &Plugin::get_docs)
                .addFunction ("get_info", &Plugin::get_info)
                .addFunction ("get_parameter_docs", &Plugin::get_parameter_docs)
+               .addFunction ("describe_io_port", &Plugin::describe_io_port)
                .addRefFunction ("get_parameter_descriptor", &Plugin::get_parameter_descriptor)
                .endClass ()
 
@@ -1180,7 +1202,8 @@ LuaBindings::common (lua_State* L)
                .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)
-               .addFunction ("sidechain_input", &PluginInsert::sidechain_input)
+               .addFunction ("natural_output_streams", &PluginInsert::natural_output_streams)
+               .addFunction ("natural_input_streams", &PluginInsert::natural_input_streams)
                .endClass ()
 
                .deriveWSPtrClass <AutomationControl, PBD::Controllable> ("AutomationControl")