we always only use the "C" locale when saving.
[ardour.git] / gtk2_ardour / luainstance.cc
index 32638bf334fad796d3e3279b40dfb36eb35a0fe7..a49733d5eafb094f5040f81c6360b87b548a0a42 100644 (file)
@@ -33,6 +33,7 @@
 #include "region_selection.h"
 #include "luainstance.h"
 #include "luasignal.h"
+#include "marker.h"
 #include "time_axis_view.h"
 #include "selection.h"
 #include "script_selector.h"
@@ -218,6 +219,25 @@ LuaInstance::register_classes (lua_State* L)
 
        luabridge::getGlobalNamespace (L)
                .beginNamespace ("ArdourUI")
+
+               .beginStdList <ArdourMarker*> ("ArdourMarkerList")
+               .endClass ()
+
+               .beginClass <ArdourMarker> ("ArdourMarker")
+               .addFunction ("name", &ArdourMarker::name)
+               .addFunction ("position", &ArdourMarker::position)
+               .addFunction ("_type", &ArdourMarker::type)
+               .endClass ()
+
+#if 0
+               .beginClass <AxisView> ("AxisView")
+               .endClass ()
+               .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
+               .endClass ()
+               .deriveClass <RouteTimeAxisView, TimeAxisView> ("RouteTimeAxisView")
+               .endClass ()
+#endif
+
                .beginClass <RegionSelection> ("RegionSelection")
                .addFunction ("clear_all", &RegionSelection::clear_all)
                .addFunction ("start", &RegionSelection::start)
@@ -232,31 +252,31 @@ LuaInstance::register_classes (lua_State* L)
                .addFunction ("length", &TimeSelection::length)
                .endClass ()
 
-#if 0
-               .beginClass <AxisView> ("AxisView")
+               .deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
                .endClass ()
-               .deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
+
+               .beginClass <TrackViewList> ("TrackViewList")
+               .addFunction ("routelist", &TrackViewList::routelist) // XXX check windows binding (libardour)
                .endClass ()
-               .deriveClass <RouteTimeAxisView, TimeAxisView> ("RouteTimeAxisView")
+
+               .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
                .endClass ()
-#endif
 
                .beginClass <Selection> ("Selection")
                .addFunction ("clear", &Selection::clear)
                .addFunction ("clear_all", &Selection::clear_all)
+               .addFunction ("empty", &Selection::empty)
                .addData ("tracks", &Selection::tracks)
                .addData ("regions", &Selection::regions)
                .addData ("time", &Selection::time)
-               .endClass ()
-
-               .beginClass <TrackViewList> ("TrackViewList")
-               .addFunction ("routelist", &TrackViewList::routelist) // XXX check windows binding (libardour)
-               .endClass ()
-
-               .deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
-               .endClass ()
-
-               .beginClass <ArdourMarker> ("ArdourMarker")
+               .addData ("markers", &Selection::markers)
+#if 0
+               .addData ("lines", &Selection::lines)
+               .addData ("playlists", &Selection::playlists)
+               .addData ("points", &Selection::points)
+               .addData ("midi_regions", &Selection::midi_regions)
+               .addData ("midi_notes", &Selection::midi_notes) // cut buffer only
+#endif
                .endClass ()
 
                .beginClass <PublicEditor> ("Editor")
@@ -403,7 +423,25 @@ LuaInstance::register_classes (lua_State* L)
 
                .addFunction ("access_action", &PublicEditor::access_action)
                .endClass ()
-               .endNamespace ();
+
+               /* ArdourUI enums */
+               .beginNamespace ("MarkerType")
+               .addConst ("Mark", ArdourMarker::Type(ArdourMarker::Mark))
+               .addConst ("Tempo", ArdourMarker::Type(ArdourMarker::Tempo))
+               .addConst ("Meter", ArdourMarker::Type(ArdourMarker::Meter))
+               .addConst ("SessionStart", ArdourMarker::Type(ArdourMarker::SessionStart))
+               .addConst ("SessionEnd", ArdourMarker::Type(ArdourMarker::SessionEnd))
+               .addConst ("RangeStart", ArdourMarker::Type(ArdourMarker::RangeStart))
+               .addConst ("RangeEnd", ArdourMarker::Type(ArdourMarker::RangeEnd))
+               .addConst ("LoopStart", ArdourMarker::Type(ArdourMarker::LoopStart))
+               .addConst ("LoopEnd", ArdourMarker::Type(ArdourMarker::LoopEnd))
+               .addConst ("PunchIn", ArdourMarker::Type(ArdourMarker::PunchIn))
+               .addConst ("PunchOut", ArdourMarker::Type(ArdourMarker::PunchOut))
+               .endNamespace ()
+
+               .endNamespace (); // end ArdourUI
+
+       // Editing Symbols
 
 #undef ZOOMFOCUS
 #undef SNAPTYPE
@@ -647,7 +685,7 @@ LuaInstance::session_going_away ()
 int
 LuaInstance::set_state (const XMLNode& node)
 {
-       LocaleGuard lg (X_("C"));
+       LocaleGuard lg ();
        XMLNode* child;
 
        if ((child = find_named_node (node, "ActionScript"))) {
@@ -753,7 +791,7 @@ LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
 XMLNode&
 LuaInstance::get_action_state ()
 {
-       LocaleGuard lg (X_("C"));
+       LocaleGuard lg ();
        std::string saved;
        {
                luabridge::LuaRef savedstate ((*_lua_save)());