avoid unnecessary multiple calls to RouteUI::update_monitoring_state()
[ardour.git] / scripts / remove_unknown_procs.lua
1 ardour { ["type"] = "EditorAction", name = "Remove Unknown Plugins",
2         license     = "MIT",
3         author      = "Robin Gareus",
4         email       = "robin@gareus.org",
5         site        = "http://gareus.org",
6         description = [[Remove all unknown plugins/processors from all tracks and busses]]
7 }
8
9 function factory (params) return function ()
10         -- iterate over all tracks and busses
11         for route in Session:get_routes ():iter () do
12                 -- route is-a http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Route
13                 local i = 0;
14                 repeat
15                         proc = route:nth_processor (i)
16                         -- proc is a http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:Processor
17                         -- try cast it to http://manual.ardour.org/lua-scripting/class_reference/#ARDOUR:UnknownProcessor
18                         if not proc:isnil () and not proc:to_unknownprocessor ():isnil () then
19                                 route:remove_processor (proc, nil, true)
20                         else
21                                 i = i + 1
22                         end
23                 until proc:isnil ()
24         end
25 end end