using namespace ARDOUR;
+PBD::Signal0<void> LuaInstance::LuaTimerS;
PBD::Signal0<void> LuaInstance::LuaTimerDS;
PBD::Signal0<void> LuaInstance::SetSession;
for (LuaCallbackMap::iterator i = _callbacks.begin(); i != _callbacks.end(); ++i) {
i->second->set_session (s);
}
+ second_connection = Timers::rapid_connect (sigc::mem_fun(*this, & LuaInstance::every_second));
point_one_second_connection = Timers::rapid_connect (sigc::mem_fun(*this, & LuaInstance::every_point_one_seconds));
SetSession (); /* EMIT SIGNAL */
}
LuaInstance::session_going_away ()
{
ENSURE_GUI_THREAD (*this, &LuaInstance::session_going_away);
+ second_connection.disconnect ();
point_one_second_connection.disconnect ();
(*_lua_clear)();
lua.do_command ("collectgarbage();");
}
+void
+LuaInstance::every_second ()
+{
+ LuaTimerS (); // emit signal
+}
+
void
LuaInstance::every_point_one_seconds ()
{
bool lua_slot (const PBD::ID&, std::string&, std::string&, ActionHook&, ARDOUR::LuaScriptParamList&);
sigc::signal<void,PBD::ID,std::string,ActionHook> SlotChanged;
+ static PBD::Signal0<void> LuaTimerS; // deci-seconds (Timer every 1s)
static PBD::Signal0<void> LuaTimerDS; // deci-seconds (Timer every .1s)
static PBD::Signal0<void> SetSession; // emitted when a session is loaded
LuaCallbackMap _callbacks;
PBD::ScopedConnectionList _slotcon;
+ void every_second ();
+ sigc::connection second_connection;
+
void every_point_one_seconds ();
sigc::connection point_one_second_connection;
};
STATIC(SessionLoad, &, 0)
STATIC(SessionClose, &, 0)
#endif
-//STATIC(EverySecond, get_timers().second, 0) // XXX
STATIC(ConfigChanged, &ARDOUR::Config->ParameterChanged, 1)
// engine instance
STATIC(RegionPropertyChanged, &ARDOUR::Region::RegionPropertyChanged, 2)
// Timers
+STATIC(LuaTimerS, &LuaInstance::LuaTimerS, 0)
STATIC(LuaTimerDS, &LuaInstance::LuaTimerDS, 0)
// Session load