summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-02-19 00:06:01 +0100
committerRobin Gareus <robin@gareus.org>2017-02-19 01:29:08 +0100
commit32fe5a083e43065e2ca277bcae834b137fce8d66 (patch)
tree5fcca185bf9c4dc7167c8322e65d8a76faf3e25a /libs
parentb066ad3164e4ae1a79ec4562556c4b3aa30f6339 (diff)
Emit a signal when Lua session script change (prepare UI update to un/set)
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/session.h2
-rw-r--r--libs/ardour/session.cc6
2 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 637412390e..dac899db5c 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -823,6 +823,8 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
uint32_t registered_lua_function_count () const { return _n_lua_scripts; }
void scripts_changed (); // called from lua, updates _n_lua_scripts
+ PBD::Signal0<void> LuaScriptsChanged;
+
/* flattening stuff */
boost::shared_ptr<Region> write_one_track (Track&, framepos_t start, framepos_t end,
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index e28685d03f..8edc14300f 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -5271,6 +5271,9 @@ Session::register_lua_function (
tbl_arg[(*i)->name] = (*i)->value;
}
(*_lua_add)(name, bytecode, tbl_arg); // throws luabridge::LuaException
+ lm.release();
+
+ LuaScriptsChanged (); /* EMIT SIGNAL */
set_dirty();
}
@@ -5280,6 +5283,9 @@ Session::unregister_lua_function (const std::string& name)
Glib::Threads::Mutex::Lock lm (lua_lock);
(*_lua_del)(name); // throws luabridge::LuaException
lua.collect_garbage ();
+ lm.release();
+
+ LuaScriptsChanged (); /* EMIT SIGNAL */
set_dirty();
}