summaryrefslogtreecommitdiff
path: root/libs/ardour/luabindings.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-08-15 23:51:51 +0200
committerRobin Gareus <robin@gareus.org>2017-08-16 00:51:20 +0200
commit11aa1d60aef92ab3e2b3c8ff14dc66b3ebc69e1c (patch)
tree458685198f825de5bc7310b83cb4bf72a2e2a230 /libs/ardour/luabindings.cc
parent9f87805d954ffe050d28947b024c610d8af13d49 (diff)
Add RCConfiguration Lua Bindings
Diffstat (limited to 'libs/ardour/luabindings.cc')
-rw-r--r--libs/ardour/luabindings.cc29
1 files changed, 29 insertions, 0 deletions
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, PBD::Configuration> ("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, PBD::Configuration> ("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