Consolidate PinDialog Session/recording checks
[ardour.git] / gtk2_ardour / luainstance.cc
index a0f247179ef94e88df595f9c100c130041722bf1..f184368f1d07adf05a6d42a54e91106d0129fa90 100644 (file)
@@ -363,6 +363,8 @@ const char *luasignalstr[] = {
 }; // namespace
 
 
+static std::string http_get_unlogged (const std::string& url) { return ArdourCurl::http_get (url, false); }
+
 /** special cases for Ardour's Mixer UI */
 namespace LuaMixer {
 
@@ -744,7 +746,7 @@ LuaInstance::register_classes (lua_State* L)
        luabridge::getGlobalNamespace (L)
                .beginNamespace ("ArdourUI")
 
-               .addFunction ("http_get", (std::string (*)(const std::string&))&ArdourCurl::http_get)
+               .addFunction ("http_get", &http_get_unlogged)
 
                .addFunction ("processor_selection", &LuaMixer::processor_selection)
 
@@ -834,10 +836,9 @@ LuaInstance::register_classes (lua_State* L)
                .endClass ()
 
                .beginClass <PublicEditor> ("Editor")
-               .addFunction ("snap_type", &PublicEditor::snap_type)
+               .addFunction ("grid_type", &PublicEditor::grid_type)
                .addFunction ("snap_mode", &PublicEditor::snap_mode)
                .addFunction ("set_snap_mode", &PublicEditor::set_snap_mode)
-               .addFunction ("set_snap_threshold", &PublicEditor::set_snap_threshold)
 
                .addFunction ("undo", &PublicEditor::undo)
                .addFunction ("redo", &PublicEditor::redo)
@@ -866,8 +867,7 @@ LuaInstance::register_classes (lua_State* L)
                .addFunction ("add_location_from_playhead_cursor", &PublicEditor::add_location_from_playhead_cursor)
                .addFunction ("remove_location_at_playhead_cursor", &PublicEditor::remove_location_at_playhead_cursor)
 
-               .addFunction ("set_show_measures", &PublicEditor::set_show_measures)
-               .addFunction ("show_measures", &PublicEditor::show_measures)
+               .addFunction ("update_grid", &PublicEditor::update_grid)
                .addFunction ("remove_tracks", &PublicEditor::remove_tracks)
 
                .addFunction ("set_loop_range", &PublicEditor::set_loop_range)
@@ -1029,7 +1029,7 @@ LuaInstance::register_classes (lua_State* L)
        // Editing Symbols
 
 #undef ZOOMFOCUS
-#undef SNAPTYPE
+#undef GRIDTYPE
 #undef SNAPMODE
 #undef MOUSEMODE
 #undef DISPLAYCONTROL
@@ -1038,7 +1038,7 @@ LuaInstance::register_classes (lua_State* L)
 #undef IMPORTDISPOSITION
 
 #define ZOOMFOCUS(NAME) .addConst (stringify(NAME), (Editing::ZoomFocus)Editing::NAME)
-#define SNAPTYPE(NAME) .addConst (stringify(NAME), (Editing::SnapType)Editing::NAME)
+#define GRIDTYPE(NAME) .addConst (stringify(NAME), (Editing::GridType)Editing::NAME)
 #define SNAPMODE(NAME) .addConst (stringify(NAME), (Editing::SnapMode)Editing::NAME)
 #define MOUSEMODE(NAME) .addConst (stringify(NAME), (Editing::MouseMode)Editing::NAME)
 #define DISPLAYCONTROL(NAME) .addConst (stringify(NAME), (Editing::DisplayControl)Editing::NAME)
@@ -1290,7 +1290,7 @@ LuaInstance::session_going_away ()
        point_one_second_connection.disconnect ();
 
        (*_lua_clear)();
-       for (int i = 0; i < 9; ++i) {
+       for (int i = 0; i < MAX_LUA_ACTION_SCRIPTS; ++i) {
                ActionChanged (i, ""); /* EMIT SIGNAL */
        }
        SessionHandlePtr::session_going_away ();
@@ -1322,7 +1322,7 @@ LuaInstance::set_state (const XMLNode& node)
                        } catch (luabridge::LuaException const& e) {
                                cerr << "LuaException:" << e.what () << endl;
                        } catch (...) { }
-                       for (int i = 0; i < 9; ++i) {
+                       for (int i = 0; i < MAX_LUA_ACTION_SCRIPTS; ++i) {
                                std::string name;
                                if (lua_action_name (i, name)) {
                                        ActionChanged (i, name); /* EMIT SIGNAL */
@@ -1358,7 +1358,7 @@ LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
        switch (type) {
                case LuaScriptInfo::EditorAction:
                        reg = lua_action_names ();
-                       title = _("Add Lua Action");
+                       title = _("Add Shortcut or Lua Script");
                        break;
                case LuaScriptInfo::EditorHook:
                        reg = lua_slot_names ();
@@ -1580,7 +1580,7 @@ std::vector<std::string>
 LuaInstance::lua_action_names ()
 {
        std::vector<std::string> rv;
-       for (int i = 0; i < 9; ++i) {
+       for (int i = 0; i < MAX_LUA_ACTION_SCRIPTS; ++i) {
                std::string name;
                if (lua_action_name (i, name)) {
                        rv.push_back (name);
@@ -2125,6 +2125,14 @@ LuaCallback::connect_2 (enum LuaSignal::LuaSignal ls, T ref, PBD::Signal2<void,
                        gui_context());
 }
 
+template <typename T, typename C1, typename C2, typename C3> void
+LuaCallback::connect_3 (enum LuaSignal::LuaSignal ls, T ref, PBD::Signal3<void, C1, C2, C3> *signal) {
+       signal->connect (
+                       _connections, invalidator (*this),
+                       boost::bind (&LuaCallback::proxy_3<T, C1, C2, C3>, this, ls, ref, _1, _2, _3),
+                       gui_context());
+}
+
 template <typename T> void
 LuaCallback::proxy_0 (enum LuaSignal::LuaSignal ls, T ref) {
        bool ok = true;
@@ -2167,3 +2175,17 @@ LuaCallback::proxy_2 (enum LuaSignal::LuaSignal ls, T ref, C1 a1, C2 a2) {
                drop_callback (); /* EMIT SIGNAL */
        }
 }
+
+template <typename T, typename C1, typename C2, typename C3> void
+LuaCallback::proxy_3 (enum LuaSignal::LuaSignal ls, T ref, C1 a1, C2 a2, C3 a3) {
+       bool ok = true;
+       {
+               const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1, a2, a3));
+               if (! rv.cast<bool> ()) {
+                       ok = false;
+               }
+       }
+       if (!ok) {
+               drop_callback (); /* EMIT SIGNAL */
+       }
+}