Add a Lua SetSession signal/hook

This commit is contained in:
Robin Gareus 2017-08-09 14:09:27 +02:00
parent d0553753af
commit 8eb3b9d34b
4 changed files with 13 additions and 2 deletions

View File

@ -377,6 +377,7 @@ namespace LuaMixer {
using namespace ARDOUR;
PBD::Signal0<void> LuaInstance::LuaTimerDS;
PBD::Signal0<void> LuaInstance::SetSession;
void
LuaInstance::register_hooks (lua_State* L)
@ -398,6 +399,10 @@ LuaInstance::register_hooks (lua_State* L)
.beginStdBitSet <LuaSignal::LAST_SIGNAL> ("Set")
.endClass()
.endNamespace ();
#if 0 // Dump size -> libs/ardour/luabindings.cc
printf ("LuaInstance: registered %d signals\n", LuaSignal::LAST_SIGNAL);
#endif
}
void
@ -605,7 +610,6 @@ LuaInstance::register_classes (lua_State* L)
bind_cairo (L);
bind_dialog (L);
register_hooks (L);
luabridge::getGlobalNamespace (L)
.beginNamespace ("ArdourUI")
@ -1110,6 +1114,7 @@ LuaInstance::init ()
}
register_classes (L);
register_hooks (L);
luabridge::push <PublicEditor *> (L, &PublicEditor::instance());
lua_setglobal (L, "Editor");
@ -1129,6 +1134,7 @@ void LuaInstance::set_session (Session* s)
i->second->set_session (s);
}
point_one_second_connection = Timers::rapid_connect (sigc::mem_fun(*this, & LuaInstance::every_point_one_seconds));
SetSession (); /* EMIT SIGNAL */
}
void
@ -1806,6 +1812,7 @@ LuaCallback::init (void)
}
LuaInstance::register_classes (L);
LuaInstance::register_hooks (L);
luabridge::push <PublicEditor *> (L, &PublicEditor::instance());
lua_setglobal (L, "Editor");

View File

@ -121,6 +121,7 @@ public:
sigc::signal<void,PBD::ID,std::string,ActionHook> SlotChanged;
static PBD::Signal0<void> LuaTimerDS; // deci-seconds (Timer every .1s)
static PBD::Signal0<void> SetSession; // emitted when a session is loaded
private:
LuaInstance();

View File

@ -86,6 +86,9 @@ STATIC(RegionPropertyChanged, &ARDOUR::Region::RegionPropertyChanged, 2)
// Timers
STATIC(LuaTimerDS, &LuaInstance::LuaTimerDS, 0)
// Session load
STATIC(SetSession, &LuaInstance::SetSession, 0)
// TODO per track/route signals,
// TODO per plugin actions / controllables
// TODO per region actions

View File

@ -160,7 +160,7 @@ CLASSINFO(TrackSelection);
CLASSINFO(TrackViewList);
CLASSKEYS(std::bitset<47ul>); // LuaSignal::LAST_SIGNAL
CLASSKEYS(std::bitset<48ul>); // LuaSignal::LAST_SIGNAL
CLASSKEYS(void);
CLASSKEYS(float);