summaryrefslogtreecommitdiff
path: root/scripts/s_plugin_reorder.lua
blob: 11fb0e056a1fd7d3383a57afdc5e74648b424b33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ardour { ["type"] = "Snippet", name = "Plugin Order Reverse" }

function factory () return function ()
	local sel = Editor:get_selection ()
	-- for each selected track/bus
	for r in sel.tracks:routelist ():iter () do
		print ("Route:", r:name ())
		local neworder = ARDOUR.ProcessorList(); -- create a PluginList
		local i = 0;
		repeat -- iterate over all plugins/processors
			local proc = r:nth_processor (i)
			if not proc:isnil () then
				-- append plugin to list
				neworder:push_back(proc)
			end
			i = i + 1
		until proc:isnil ()
		-- reverse list
		neworder:reverse()
		-- and set new order
		r:reorder_processors (neworder, nil)
	end
end end