From 11aa1d60aef92ab3e2b3c8ff14dc66b3ebc69e1c Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 15 Aug 2017 23:51:51 +0200 Subject: Add RCConfiguration Lua Bindings --- libs/ardour/luabindings.cc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 253f88a759..e53cc02dc0 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -193,6 +193,7 @@ CLASSKEYS(ARDOUR::Plugin::PresetRecord); CLASSKEYS(ARDOUR::PortEngine); CLASSKEYS(ARDOUR::PortManager); CLASSKEYS(ARDOUR::PresentationInfo); +CLASSKEYS(ARDOUR::RCConfiguration); CLASSKEYS(ARDOUR::Session); CLASSKEYS(ARDOUR::SessionConfiguration); CLASSKEYS(ARDOUR::Source); @@ -310,6 +311,11 @@ CLASSKEYS(LuaDialog::Dialog); using namespace ARDOUR; +/** Access libardour global configuration */ +static RCConfiguration* _libardour_config () { + return ARDOUR::Config; +} + void LuaBindings::stddef (lua_State* L) { @@ -1920,6 +1926,25 @@ LuaBindings::common (lua_State* L) .addFunction ("vcas", &VCAManager::vcas) .endClass() + .deriveClass ("RCConfiguration") +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL +#define CONFIG_VARIABLE(Type,var,name,value) \ + .addFunction ("get_" # var, &RCConfiguration::get_##var) \ + .addFunction ("set_" # var, &RCConfiguration::set_##var) \ + .addProperty (#var, &RCConfiguration::get_##var, &RCConfiguration::set_##var) + +#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) \ + .addFunction ("get_" # var, &RCConfiguration::get_##var) \ + .addFunction ("set_" # var, &RCConfiguration::set_##var) \ + .addProperty (#var, &RCConfiguration::get_##var, &RCConfiguration::set_##var) + +#include "ardour/rc_configuration_vars.h" + +#undef CONFIG_VARIABLE +#undef CONFIG_VARIABLE_SPECIAL + .endClass() + .deriveClass ("SessionConfiguration") #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL @@ -1938,6 +1963,10 @@ LuaBindings::common (lua_State* L) #undef CONFIG_VARIABLE #undef CONFIG_VARIABLE_SPECIAL .endClass() + + // we could use addProperty () + .addFunction ("config", &_libardour_config) + .endNamespace (); // basic representation of Session -- cgit v1.2.3