summaryrefslogtreecommitdiff
path: root/scripts/remove_unknown_procs.lua
blob: 0461e885671804ac18bdfcf017c6e6597be9dd4c (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"] = "EditorAction", name = "Remove Unknown Plugins",
	license     = "MIT",
	author      = "Ardour Team",
	description = [[Remove all unknown plugins/processors from all tracks and busses]]
}

function factory (params) return function ()
	-- iterate over all tracks and busses
	for route in Session:get_routes ():iter () do
		-- route is-a http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Route
		local i = 0;
		repeat
			proc = route:nth_processor (i)
			-- proc is a http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Processor
			-- try cast it to http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:UnknownProcessor
			if not proc:isnil () and not proc:to_unknownprocessor ():isnil () then
				route:remove_processor (proc, nil, true)
			else
				i = i + 1
			end
		until proc:isnil ()
	end
end end