projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove redundant MIDI submenu. The items are now in the main menu.
[ardour.git]
/
gtk2_ardour
/
luainstance.cc
diff --git
a/gtk2_ardour/luainstance.cc
b/gtk2_ardour/luainstance.cc
index ab9b0128923e28b472c7e624f7463847f0c85674..d8c602b09a5e159d246c80eaa5143eb18e4189c0 100644
(file)
--- a/
gtk2_ardour/luainstance.cc
+++ b/
gtk2_ardour/luainstance.cc
@@
-37,9
+37,11
@@
#include "luainstance.h"
#include "luasignal.h"
#include "marker.h"
#include "luainstance.h"
#include "luasignal.h"
#include "marker.h"
+#include "processor_box.h"
#include "time_axis_view.h"
#include "selection.h"
#include "script_selector.h"
#include "time_axis_view.h"
#include "selection.h"
#include "script_selector.h"
+#include "timers.h"
#include "utils_videotl.h"
#include "pbd/i18n.h"
#include "utils_videotl.h"
#include "pbd/i18n.h"
@@
-348,6
+350,16
@@
const char *luasignalstr[] = {
}; // namespace
}; // namespace
+/** special cases for Ardour's Mixer UI */
+namespace LuaMixer {
+
+ ProcessorBox::ProcSelection
+ processor_selection () {
+ return ProcessorBox::current_processor_selection ();
+ }
+
+};
+
////////////////////////////////////////////////////////////////////////////////
#define xstr(s) stringify(s)
////////////////////////////////////////////////////////////////////////////////
#define xstr(s) stringify(s)
@@
-355,6
+367,8
@@
const char *luasignalstr[] = {
using namespace ARDOUR;
using namespace ARDOUR;
+PBD::Signal0<void> LuaInstance::LuaTimerDS;
+
void
LuaInstance::register_hooks (lua_State* L)
{
void
LuaInstance::register_hooks (lua_State* L)
{
@@
-542,6
+556,8
@@
LuaInstance::register_classes (lua_State* L)
.addFunction ("http_get", (std::string (*)(const std::string&))&ArdourCurl::http_get)
.addFunction ("http_get", (std::string (*)(const std::string&))&ArdourCurl::http_get)
+ .addFunction ("processor_selection", &LuaMixer::processor_selection)
+
.beginStdList <ArdourMarker*> ("ArdourMarkerList")
.endClass ()
.beginStdList <ArdourMarker*> ("ArdourMarkerList")
.endClass ()
@@
-798,11
+814,12
@@
using namespace ARDOUR_UI_UTILS;
using namespace PBD;
using namespace std;
using namespace PBD;
using namespace std;
-#ifndef NDEBUG
static void _lua_print (std::string s) {
static void _lua_print (std::string s) {
+#ifndef NDEBUG
std::cout << "LuaInstance: " << s << "\n";
std::cout << "LuaInstance: " << s << "\n";
-}
#endif
#endif
+ PBD::info << "LuaInstance: " << s << endmsg;
+}
LuaInstance* LuaInstance::_instance = 0;
LuaInstance* LuaInstance::_instance = 0;
@@
-816,11
+833,16
@@
LuaInstance::instance ()
return _instance;
}
return _instance;
}
+void
+LuaInstance::destroy_instance ()
+{
+ delete _instance;
+ _instance = 0;
+}
+
LuaInstance::LuaInstance ()
{
LuaInstance::LuaInstance ()
{
-#ifndef NDEBUG
lua.Print.connect (&_lua_print);
lua.Print.connect (&_lua_print);
-#endif
init ();
LuaScriptParamList args;
init ();
LuaScriptParamList args;
@@
-986,12
+1008,15
@@
void LuaInstance::set_session (Session* s)
for (LuaCallbackMap::iterator i = _callbacks.begin(); i != _callbacks.end(); ++i) {
i->second->set_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);
}
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 */
(*_lua_clear)();
for (int i = 0; i < 9; ++i) {
ActionChanged (i, ""); /* EMIT SIGNAL */
@@
-1004,6
+1029,12
@@
LuaInstance::session_going_away ()
lua.do_command ("collectgarbage();");
}
lua.do_command ("collectgarbage();");
}
+void
+LuaInstance::every_point_one_seconds ()
+{
+ LuaTimerDS (); // emit signal
+}
+
int
LuaInstance::set_state (const XMLNode& node)
{
int
LuaInstance::set_state (const XMLNode& node)
{
@@
-1268,9
+1299,7
@@
LuaInstance::register_lua_slot (const std::string& name, const std::string& scri
ActionHook ah;
try {
LuaState l;
ActionHook ah;
try {
LuaState l;
-#ifndef NDEBUG
l.Print.connect (&_lua_print);
l.Print.connect (&_lua_print);
-#endif
lua_State* L = l.getState();
register_hooks (L);
l.do_command ("function ardour () end");
lua_State* L = l.getState();
register_hooks (L);
l.do_command ("function ardour () end");
@@
-1466,9
+1495,7
@@
LuaCallback::get_state (void)
void
LuaCallback::init (void)
{
void
LuaCallback::init (void)
{
-#ifndef NDEBUG
lua.Print.connect (&_lua_print);
lua.Print.connect (&_lua_print);
-#endif
lua.do_command (
"function ScriptManager ()"
lua.do_command (
"function ScriptManager ()"
@@
-1634,11
+1661,13
@@
LuaCallback::set_session (ARDOUR::Session *s)
{
SessionHandlePtr::set_session (s);
{
SessionHandlePtr::set_session (s);
- if (_session) {
- lua_State* L = lua.getState();
- LuaBindings::set_session (L, _session);
+ if (!_session) {
+ return;
}
}
+ lua_State* L = lua.getState();
+ LuaBindings::set_session (L, _session);
+
reconnect();
}
reconnect();
}