summaryrefslogtreecommitdiff
path: root/gtk2_ardour/luainstance.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-07-22 14:42:38 +0200
committerRobin Gareus <robin@gareus.org>2016-07-24 13:00:15 +0200
commitbcee4e151867dab8c54b38efe101f90e34b1b70e (patch)
treed7ca7b6962a7d48a779daccf80aaa752f62bbf6d /gtk2_ardour/luainstance.cc
parent299709cbbc26b2c0e0328dce4e12b4d5fdce8b21 (diff)
add a lua timer callback signal
Diffstat (limited to 'gtk2_ardour/luainstance.cc')
-rw-r--r--gtk2_ardour/luainstance.cc12
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)
{