add some more Editor Selection lua bindings

This commit is contained in:
Robin Gareus 2016-04-11 14:06:26 +02:00
parent ab01d150be
commit d21f202905
2 changed files with 60 additions and 17 deletions

View 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,21 +252,7 @@ LuaInstance::register_classes (lua_State* L)
.addFunction ("length", &TimeSelection::length)
.endClass ()
#if 0
.beginClass <AxisView> ("AxisView")
.endClass ()
.deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
.endClass ()
.deriveClass <RouteTimeAxisView, TimeAxisView> ("RouteTimeAxisView")
.endClass ()
#endif
.beginClass <Selection> ("Selection")
.addFunction ("clear", &Selection::clear)
.addFunction ("clear_all", &Selection::clear_all)
.addData ("tracks", &Selection::tracks)
.addData ("regions", &Selection::regions)
.addData ("time", &Selection::time)
.deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
.endClass ()
.beginClass <TrackViewList> ("TrackViewList")
@ -256,7 +262,21 @@ LuaInstance::register_classes (lua_State* L)
.deriveClass <TrackSelection, TrackViewList> ("TrackSelection")
.endClass ()
.beginClass <ArdourMarker> ("ArdourMarker")
.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)
.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

View File

@ -107,6 +107,11 @@ class Selection : public sigc::trackable, public PBD::ScopedConnectionList
void block_tracks_changed (bool);
void clear ();
/** check if all selections are empty
* @param internal_selection also check object internals (e.g midi notes, automation points), when false only check objects.
* @return true if nothing is selected.
*/
bool empty (bool internal_selection = false);
void dump_region_layers();