diff options
author | Robin Gareus <robin@gareus.org> | 2016-04-11 14:36:57 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-04-11 14:36:57 +0200 |
commit | baf631961360b1158f25b743f0bedfa60bc428f4 (patch) | |
tree | cc5a714595ab06282d62656465b54567e02e02f2 /scripts/s_selection.lua | |
parent | d21f20290515817cd7664301912184edb43c1845 (diff) | |
download | ardour-baf631961360b1158f25b743f0bedfa60bc428f4.zip ardour-baf631961360b1158f25b743f0bedfa60bc428f4.tar.gz ardour-baf631961360b1158f25b743f0bedfa60bc428f4.tar.bz2 |
update and cleanup lua example scripts
Diffstat (limited to 'scripts/s_selection.lua')
-rw-r--r-- | scripts/s_selection.lua | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/scripts/s_selection.lua b/scripts/s_selection.lua new file mode 100644 index 0000000..1963ac1 --- /dev/null +++ b/scripts/s_selection.lua @@ -0,0 +1,60 @@ +ardour { ["type"] = "Snippet", name = "Editor Selection" } + +function factory () return function () + -- http://manual.ardour.org/lua-scripting/class_reference/#ArdourUI:Selection + -- the Ardour Selection can include multiple items + -- (regions, tracks, ranges, markers, automation, midi-notes etc) + local sel = Editor:get_selection () + + -- + -- At the point of writing the following data items are available + -- + + -- Range selection, total span of all ranges (0, 0 if no time range is selected) + if sel.time:start () < sel.time:end_frame () then + print ("Total Range:", sel.time:start (), sel.time:end_frame ()) + end + + -- Range selection, individual ranges. + for ar in sel.time:iter () do + -- each of the items is a + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:AudioRange + print ("Range:", ar.id, ar.start, ar._end) + end + + -- Track/Bus Selection + -- http://manual.ardour.org/lua-scripting/class_reference/#ArdourUI:TrackSelection + for r in sel.tracks:routelist ():iter () do + -- each of the items is a + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Route + print ("Route:", r:name ()) + end + + -- Region selection + -- http://manual.ardour.org/lua-scripting/class_reference/#ArdourUI:RegionSelection + for r in sel.regions:regionlist ():iter () do + -- each of the items is a + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Region + print ("Region:", r:name ()) + end + + -- Markers + -- http://manual.ardour.org/lua-scripting/class_reference/#ArdourUI:MarkerSelection + -- Note: Marker selection is not cleared and currently (Ardour-4.7) points + -- to the most recently selected marker. + for m in sel.markers:iter () do + -- each of the items is a + -- http://manual.ardour.org/lua-scripting/class_reference/#ARDOURUI::ArdourMarker + print ("Marker:", m:name (), m:position(), m:_type()) + end + + ---------------------------------------------------------- + -- The total time extents of all selected regions and ranges + local ok, ext = Editor:get_selection_extents (0, 0) + if ok then + print ("Selection Extents:", ext[1], ext[2]) + else + print ("No region or range is selected") + end + +end end |