diff options
Diffstat (limited to 'libs/ardour/ardour/session.h')
-rw-r--r-- | libs/ardour/ardour/session.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 15b7fe2fb5..d25f856b1f 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -42,10 +42,13 @@ #include "pbd/error.h" #include "pbd/event_loop.h" #include "pbd/rcu.h" +#include "pbd/reallocpool.h" #include "pbd/statefuldestructible.h" #include "pbd/signals.h" #include "pbd/undo.h" +#include "lua/luastate.h" + #include "evoral/types.hpp" #include "midi++/types.h" @@ -57,6 +60,7 @@ #include "ardour/chan_count.h" #include "ardour/delivery.h" #include "ardour/interthread_info.h" +#include "ardour/luascripting.h" #include "ardour/location.h" #include "ardour/monitor_processor.h" #include "ardour/rc_configuration.h" @@ -83,6 +87,10 @@ class Controllable; class ControllableDescriptor; } +namespace luabridge { + class LuaRef; +} + namespace Evoral { class Curve; } @@ -724,6 +732,13 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop PBD::Signal1<void,bool> AuditionActive; + /* session script */ + void register_lua_function (const std::string&, const std::string&, const LuaScriptParamList&); + void unregister_lua_function (const std::string& name); + std::vector<std::string> registered_lua_functions (); + uint32_t registered_lua_function_count () const { return _n_lua_scripts; } + void scripts_changed (); // called from lua, updates _n_lua_scripts + /* flattening stuff */ boost::shared_ptr<Region> write_one_track (Track&, framepos_t start, framepos_t end, @@ -1274,6 +1289,21 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop bool pending_abort; bool pending_auto_loop; + PBD::ReallocPool _mempool; + LuaState lua; + Glib::Threads::Mutex lua_lock; + luabridge::LuaRef * _lua_run; + luabridge::LuaRef * _lua_add; + luabridge::LuaRef * _lua_del; + luabridge::LuaRef * _lua_list; + luabridge::LuaRef * _lua_load; + luabridge::LuaRef * _lua_save; + luabridge::LuaRef * _lua_cleanup; + uint32_t _n_lua_scripts; + + void setup_lua (); + void try_run_lua (pframes_t); + Butler* _butler; static const PostTransportWork ProcessCannotProceedMask = |