diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-22 14:42:38 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-24 13:00:15 +0200 |
commit | bcee4e151867dab8c54b38efe101f90e34b1b70e (patch) | |
tree | d7ca7b6962a7d48a779daccf80aaa752f62bbf6d /gtk2_ardour/luainstance.cc | |
parent | 299709cbbc26b2c0e0328dce4e12b4d5fdce8b21 (diff) |
add a lua timer callback signal
Diffstat (limited to 'gtk2_ardour/luainstance.cc')
-rw-r--r-- | gtk2_ardour/luainstance.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc index ab9b012892..7c4898056f 100644 --- a/gtk2_ardour/luainstance.cc +++ b/gtk2_ardour/luainstance.cc @@ -40,6 +40,7 @@ #include "time_axis_view.h" #include "selection.h" #include "script_selector.h" +#include "timers.h" #include "utils_videotl.h" #include "pbd/i18n.h" @@ -355,6 +356,8 @@ const char *luasignalstr[] = { using namespace ARDOUR; +PBD::Signal0<void> LuaInstance::LuaTimerDS; + void LuaInstance::register_hooks (lua_State* L) { @@ -986,12 +989,15 @@ void LuaInstance::set_session (Session* s) for (LuaCallbackMap::iterator i = _callbacks.begin(); i != _callbacks.end(); ++i) { i->second->set_session (s); } + point_one_second_connection = Timers::rapid_connect (sigc::mem_fun(*this, & LuaInstance::every_point_one_seconds)); } void LuaInstance::session_going_away () { ENSURE_GUI_THREAD (*this, &LuaInstance::session_going_away); + point_one_second_connection.disconnect (); + (*_lua_clear)(); for (int i = 0; i < 9; ++i) { ActionChanged (i, ""); /* EMIT SIGNAL */ @@ -1004,6 +1010,12 @@ LuaInstance::session_going_away () lua.do_command ("collectgarbage();"); } +void +LuaInstance::every_point_one_seconds () +{ + LuaTimerDS (); // emit signal +} + int LuaInstance::set_state (const XMLNode& node) { |