Add Lua bindings for ArdourUI's translate_order()
authorRobin Gareus <robin@gareus.org>
Tue, 22 Aug 2017 01:12:07 +0000 (03:12 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 22 Aug 2017 01:12:07 +0000 (03:12 +0200)
e.g. calculate the route insert position:
print (ArdourUI.translate_order (ArdourUI.InsertAt.BeforeSelection))

gtk2_ardour/luainstance.cc

index fe4276c39a9c2d22910bd00d482906e294573376..248e867be90bce9dbd1d4091a89e2dc38b882871 100644 (file)
@@ -368,6 +368,7 @@ namespace LuaMixer {
        }
 
 };
+
 ////////////////////////////////////////////////////////////////////////////////
 
 static PBD::ScopedConnectionList _luaexecs;
@@ -422,6 +423,14 @@ lua_exec (std::string cmd)
        return 0;
 }
 #endif
+////////////////////////////////////////////////////////////////////////////////
+
+// ARDOUR_UI and instance() are not exposed.
+ARDOUR::PresentationInfo::order_t
+lua_translate_order (RouteDialogs::InsertAt place)
+{
+       return ARDOUR_UI::instance()->translate_order (place);
+}
 
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -908,7 +917,16 @@ LuaInstance::register_classes (lua_State* L)
                .addFunction ("set_toggleaction", &PublicEditor::set_toggleaction)
                .endClass ()
 
+               .addFunction ("translate_order", &lua_translate_order)
+
                /* ArdourUI enums */
+               .beginNamespace ("InsertAt")
+               .addConst ("BeforeSelection", RouteDialogs::InsertAt(RouteDialogs::BeforeSelection))
+               .addConst ("AfterSelection", RouteDialogs::InsertAt(RouteDialogs::AfterSelection))
+               .addConst ("First", RouteDialogs::InsertAt(RouteDialogs::First))
+               .addConst ("Last", RouteDialogs::InsertAt(RouteDialogs::Last))
+               .endNamespace ()
+
                .beginNamespace ("MarkerType")
                .addConst ("Mark", ArdourMarker::Type(ArdourMarker::Mark))
                .addConst ("Tempo", ArdourMarker::Type(ArdourMarker::Tempo))