j
initial commit
402daee
raw
history blame contribute delete
934 Bytes
--[[
ReaIter.lua - Reaper iterators
]]--
ReaIter = {}
ReaIter._make_iterator = function(count_f, item_f)
return function(proj)
proj = proj or 0
local i = 0
local n = count_f(proj)
return function ()
if i < n then
local item = item_f(proj, i)
i = i + 1
return item
end
end
end
end
ReaIter.each_media_item = ReaIter._make_iterator(reaper.CountMediaItems, reaper.GetMediaItem)
ReaIter.each_selected_media_item = ReaIter._make_iterator(reaper.CountSelectedMediaItems, reaper.GetSelectedMediaItem)
ReaIter.each_selected_track = ReaIter._make_iterator(reaper.CountSelectedTracks, reaper.GetSelectedTrack)
ReaIter.each_track = ReaIter._make_iterator(reaper.CountTracks, reaper.GetTrack)
ReaIter.each_take = ReaIter._make_iterator(reaper.CountTakes, reaper.GetTake)
ReaIter.each_track_item = ReaIter._make_iterator(reaper.CountTrackMediaItems, reaper.GetTrackMediaItem)