expose SessionConfiguration as lua bindings
authorRobin Gareus <robin@gareus.org>
Mon, 15 Aug 2016 20:16:08 +0000 (22:16 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 15 Aug 2016 20:25:56 +0000 (22:25 +0200)
libs/ardour/ardour/session.h
libs/ardour/luabindings.cc

index db80ddcae3543982d17e6eba3d2ef12c980c17d3..a1e094a7a443bccd47674a5b220448869c91d8ca 100644 (file)
@@ -1007,6 +1007,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        SessionConfiguration config;
 
+       SessionConfiguration* cfg () { return &config; }
+
        bool exporting () const {
                return _exporting;
        }
index 631ab3b8a45b315870d0499fcb9f7991166b98ef..6f34b57f06b9dae9c0a3a62c65ea0049efa4898e 100644 (file)
@@ -171,6 +171,9 @@ CLASSKEYS(ARDOUR::BufferSet);
 CLASSKEYS(ARDOUR::ChanMapping);
 CLASSKEYS(ARDOUR::DSP::DspShm);
 CLASSKEYS(ARDOUR::LuaTableRef);
+CLASSKEYS(PBD::Configuration);
+CLASSKEYS(ARDOUR::PresentationInfo);
+CLASSKEYS(ARDOUR::SessionConfiguration);
 CLASSKEYS(PBD::ID);
 CLASSKEYS(ARDOUR::Location);
 CLASSKEYS(ARDOUR::PluginInfo);
@@ -276,6 +279,9 @@ LuaBindings::common (lua_State* L)
                .deriveClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructible")
                .endClass ()
 
+               .deriveClass <PBD::Configuration, PBD::Stateful> ("Configuration")
+               .endClass()
+
                .deriveWSPtrClass <PBD::StatefulDestructible, PBD::Stateful> ("StatefulDestructiblePtr")
                .endClass ()
 
@@ -1182,6 +1188,25 @@ LuaBindings::common (lua_State* L)
                .addFunction ("set_buffer_size", &AudioEngine::set_buffer_size)
                .addFunction ("get_last_backend_error", &AudioEngine::get_last_backend_error)
                .endClass()
+
+               .deriveClass <SessionConfiguration, PBD::Configuration> ("SessionConfiguration")
+#undef  CONFIG_VARIABLE
+#undef  CONFIG_VARIABLE_SPECIAL
+#define CONFIG_VARIABLE(Type,var,name,value) \
+               .addFunction ("get_" # var, &SessionConfiguration::get_##var) \
+               .addFunction ("set_" # var, &SessionConfiguration::set_##var) \
+               .addProperty (#var, &SessionConfiguration::get_##var, &SessionConfiguration::set_##var)
+
+#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) \
+               .addFunction ("get_" # var, &SessionConfiguration::get_##var) \
+               .addFunction ("set_" # var, &SessionConfiguration::set_##var) \
+               .addProperty (#var, &SessionConfiguration::get_##var, &SessionConfiguration::set_##var)
+
+#include "ardour/session_configuration_vars.h"
+
+#undef CONFIG_VARIABLE
+#undef CONFIG_VARIABLE_SPECIAL
+               .endClass()
                .endNamespace ();
 
        // basic representation of Session
@@ -1242,6 +1267,7 @@ LuaBindings::common (lua_State* L)
                .addFunction ("worst_input_latency", &Session::worst_input_latency)
                .addFunction ("worst_track_latency", &Session::worst_track_latency)
                .addFunction ("worst_playback_latency", &Session::worst_playback_latency)
+               .addFunction ("cfg", &Session::cfg)
                .endClass ()
 
                .beginClass <RegionFactory> ("RegionFactory")