register_hooks (L);
luabridge::getGlobalNamespace (L)
- .beginNamespace ("ARDOUR")
+ .beginNamespace ("ArdourUI")
.beginClass <RegionSelection> ("RegionSelection")
.addFunction ("clear_all", &RegionSelection::clear_all)
.addFunction ("start", &RegionSelection::start)
.addFunction ("effective_mouse_mode", &PublicEditor::effective_mouse_mode)
- .addFunction ("do_import", &PublicEditor::do_import)
- .addFunction ("do_embed", &PublicEditor::do_embed)
+ .addRefFunction ("do_import", &PublicEditor::do_import)
+ .addRefFunction ("do_embed", &PublicEditor::do_embed)
.addFunction ("export_audio", &PublicEditor::export_audio)
.addFunction ("stem_export", &PublicEditor::stem_export)
//.addFunction ("get_preferred_edit_position", &PublicEditor::get_preferred_edit_position)
//.addFunction ("split_regions_at", &PublicEditor::split_regions_at)
- .addFunction ("get_nudge_distance", &PublicEditor::get_nudge_distance)
+ .addRefFunction ("get_nudge_distance", &PublicEditor::get_nudge_distance)
.addFunction ("get_paste_offset", &PublicEditor::get_paste_offset)
.addFunction ("get_grid_beat_divisions", &PublicEditor::get_grid_beat_divisions)
- .addFunction ("get_grid_type_as_beats", &PublicEditor::get_grid_type_as_beats)
+ .addRefFunction ("get_grid_type_as_beats", &PublicEditor::get_grid_type_as_beats)
.addFunction ("toggle_ruler_video", &PublicEditor::toggle_ruler_video)
.addFunction ("toggle_xjadeo_proc", &PublicEditor::toggle_xjadeo_proc)
.addFunction ("center_screen", &PublicEditor::center_screen)
.addFunction ("get_smart_mode", &PublicEditor::get_smart_mode)
- .addFunction ("get_pointer_position", &PublicEditor::get_pointer_position)
+ .addRefFunction ("get_pointer_position", &PublicEditor::get_pointer_position)
- .addFunction ("find_location_from_marker", &PublicEditor::find_location_from_marker)
+ .addRefFunction ("find_location_from_marker", &PublicEditor::find_location_from_marker)
.addFunction ("find_marker_from_location_id", &PublicEditor::find_marker_from_location_id)
.addFunction ("mouse_add_new_marker", &PublicEditor::mouse_add_new_marker)
#if 0
default:
return false;
}
+ ss.hide ();
std::string script = "";
return false;
}
- LuaScriptParamList lsp = LuaScripting::script_params (spi, "action_params");
+ LuaScriptParamList lsp = LuaScriptParams::script_params (spi, "action_params");
ScriptParameterDialog spd (_("Set Script Parameters"), spi, reg, lsp);
switch (spd.run ()) {
if (!lsi) {
return false;
}
- args = LuaScripting::script_params (lsi, "action_params");
- for (luabridge::Iterator i (static_cast<luabridge::LuaRef>(ref["args"])); !i.isNil (); ++i) {
- if (!i.key ().isString ()) { assert(0); continue; }
- std::string name = i.key ().cast<std::string> ();
- std::string value = i.value ().cast<std::string> ();
- for (LuaScriptParamList::const_iterator ii = args.begin(); ii != args.end(); ++ii) {
- if ((*ii)->name == name) {
- (*ii)->value = value;
- break;
- }
- }
- }
+ args = LuaScriptParams::script_params (lsi, "action_params");
+ luabridge::LuaRef rargs (ref["args"]);
+ LuaScriptParams::ref_to_params (args, &rargs);
return true;
} catch (luabridge::LuaException const& e) {
cerr << "LuaException:" << e.what () << endl;
if (!lsi) {
return false;
}
- args = LuaScripting::script_params (lsi, "action_params");
- for (luabridge::Iterator i (static_cast<luabridge::LuaRef>(ref["args"])); !i.isNil (); ++i) {
- if (!i.key ().isString ()) { assert(0); continue; }
- std::string name = i.key ().cast<std::string> ();
- std::string value = i.value ().cast<std::string> ();
- for (LuaScriptParamList::const_iterator ii = args.begin(); ii != args.end(); ++ii) {
- if ((*ii)->name == name) {
- (*ii)->value = value;
- break;
- }
- }
- }
+ args = LuaScriptParams::script_params (lsi, "action_params");
+ luabridge::LuaRef rargs (ref["args"]);
+ LuaScriptParams::ref_to_params (args, &rargs);
return true;
} catch (luabridge::LuaException const& e) {
cerr << "LuaException:" << e.what () << endl;
template <typename T> void
LuaCallback::proxy_0 (enum LuaSignal::LuaSignal ls, T ref) {
- luabridge::LuaRef rv ((*_lua_call)((int)ls, ref));
- if (! rv.cast<bool> ()) { drop_callback (); /* EMIT SIGNAL */}
+ bool ok = true;
+ {
+ const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref));
+ if (! rv.cast<bool> ()) {
+ ok = false;
+ }
+ }
+ /* destroy LuaRef ^^ first before calling drop_callback() */
+ if (!ok) {
+ drop_callback (); /* EMIT SIGNAL */
+ }
}
template <typename T, typename C1> void
LuaCallback::proxy_1 (enum LuaSignal::LuaSignal ls, T ref, C1 a1) {
- luabridge::LuaRef rv ((*_lua_call)((int)ls, ref, a1));
- if (! rv.cast<bool> ()) { drop_callback (); /* EMIT SIGNAL */}
+ bool ok = true;
+ {
+ const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1));
+ if (! rv.cast<bool> ()) {
+ ok = false;
+ }
+ }
+ if (!ok) {
+ drop_callback (); /* EMIT SIGNAL */
+ }
}
template <typename T, typename C1, typename C2> void
LuaCallback::proxy_2 (enum LuaSignal::LuaSignal ls, T ref, C1 a1, C2 a2) {
- luabridge::LuaRef rv ((*_lua_call)((int)ls, ref, a1, a2));
- if (! rv.cast<bool> ()) { drop_callback (); /* EMIT SIGNAL */}
+ bool ok = true;
+ {
+ const luabridge::LuaRef& rv ((*_lua_call)((int)ls, ref, a1, a2));
+ if (! rv.cast<bool> ()) {
+ ok = false;
+ }
+ }
+ if (!ok) {
+ drop_callback (); /* EMIT SIGNAL */
+ }
}