Expose Controlpoint, and automation line selection as Lua bindings

This commit is contained in:
Robin Gareus 2025-09-28 01:51:41 +02:00
parent 625ad2af77
commit 73b903fd03
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 20 additions and 2 deletions

View file

@ -44,6 +44,7 @@
#include "ardour_http.h"
#include "ardour_ui.h"
#include "audio_region_view.h"
#include "control_point.h"
#include "public_editor.h"
#include "region_selection.h"
#include "luadialog.h"
@ -802,6 +803,12 @@ LuaInstance::register_classes (lua_State* L, bool sandbox)
.beginStdCPtrList <ArdourMarker> ("ArdourMarkerList")
.endClass ()
.beginStdCPtrList <ControlPoint> ("ControlPointList")
.endClass ()
.beginStdList <std::shared_ptr<ARDOUR::AutomationList> > ("ARDOUR::AutomationListList")
.endClass ()
.beginClass <ArdourMarker> ("ArdourMarker")
.addFunction ("name", &ArdourMarker::name)
.addFunction ("position", &ArdourMarker::position)
@ -861,6 +868,9 @@ LuaInstance::register_classes (lua_State* L, bool sandbox)
.beginConstStdCPtrList <TimeAxisView> ("TrackViewStdList")
.endClass ()
.deriveClass <ControlPoint, Selectable> ("ControlPoint")
//.addFunction ("line", &ControlPoint::line) // AutomationLine&
.endClass ()
.beginClass <RegionSelection> ("RegionSelection")
.addFunction ("start_time", &RegionSelection::start_time)
@ -880,6 +890,12 @@ LuaInstance::register_classes (lua_State* L, bool sandbox)
.deriveClass <MarkerSelection, std::list<ArdourMarker*> > ("MarkerSelection")
.endClass ()
.deriveClass <PointSelection, std::list<ControlPoint*> > ("PointSelection")
.endClass ()
.deriveClass <AutomationSelection, std::list<std::shared_ptr<ARDOUR::AutomationList>> > ("AutomationSelection")
.endClass ()
.beginClass <TrackViewList> ("TrackViewList")
.addCast<std::list<TimeAxisView*> > ("to_tav_list")
.addFunction ("contains", &TrackViewList::contains)
@ -897,10 +913,10 @@ LuaInstance::register_classes (lua_State* L, bool sandbox)
.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)
#if 0
.addData ("playlists", &Selection::playlists)
.addData ("midi_regions", &Selection::midi_regions)
.addData ("midi_notes", &Selection::midi_notes) // cut buffer only
#endif

View file

@ -53,6 +53,8 @@ function factory () return function ()
print ("Marker:", m:name (), m:position(), m:_type())
end
print ("AutomationList/Lines:", sel.lines:size(), "Control Points:", sel.points:size())
----------------------------------------------------------
-- The total time extents of all selected regions and ranges
local ok, ext = Editor:get_selection_extents (Temporal.timepos_t(0), Temporal.timepos_t(0))