Fix a compiler problem when building 'gtk2_ardour/template_dialog.cc' with MSVC
[ardour.git] / scripts / addscopes.lua
index 341773483c93da8554a066f9eca055006cbb86ec..5ff40a7da81b2aeffb0070622cceb42d55fccb5d 100644 (file)
@@ -2,9 +2,7 @@ ardour {
        ["type"]    = "EditorAction",
        name        = "Add Scopes",
        license     = "MIT",
-       author      = "Robin Gareus",
-       email       = "robin@gareus.org",
-       site        = "http://gareus.org",
+       author      = "Ardour Team",
        description = [[Add 'Inline Scope' Lua Processor to all Tracks]]
 }
 
@@ -20,8 +18,9 @@ end
 function factory (params)
        return function ()
                -- get configuration
-               local uniq = params["unique"] or "yes"
-               local pos = params["position"] or 0
+               local p = params or {}
+               local uniq = p["unique"] or "yes"
+               local pos = p["position"] or 0
 
                -- loop over all tracks
                for t in Session:get_tracks():iter() do
@@ -35,7 +34,7 @@ function factory (params)
                                        -- get Nth Ardour::Processor
                                        proc = t:nth_plugin (i)
                                        -- check if it's a scope
-                                       if (not proc:isnil() and proc:display_name () == "Inline Scope") then
+                                       if (not proc:isnil() and proc:display_name () == "a-Inline Scope") then
                                                insert = false;
                                        end
                                        i = i + 1
@@ -44,12 +43,32 @@ function factory (params)
 
                        -- create a new processor and insert it
                        if insert then
-                               local a = ARDOUR.LuaAPI.new_luaproc(Session, "Inline Scope");
+                               local a = ARDOUR.LuaAPI.new_luaproc(Session, "a-Inline Scope");
                                if (not a:isnil()) then
                                        t:add_processor_by_index(a, pos, nil, true)
-                                       a = nil
+                                       ARDOUR.LuaAPI.set_processor_param (a, 0, 5) -- timescale 5sec
+                                       -- ARDOUR.LuaAPI.set_processor_param (a, 1, 1) -- logscale on
+                                       -- ARDOUR.LuaAPI.set_processor_param (a, 2, 3) -- "Max" height
+                                       a = nil -- explicitly drop shared-ptr reference
                                end
                        end
                end
        end
 end
+
+
+function icon (params) return function (ctx, width, height)
+       local wh = math.min (width, height) * .5
+       local x0 = math.ceil (wh * .4)
+       local x1 = math.floor (wh * 1.6)
+       ctx:rectangle (wh * .4, wh * .4, wh * 1.2, wh * 1.2)
+       ctx:set_source_rgba (.7, .7, .7, 1)
+       ctx:fill ()
+       ctx:set_line_width (1)
+       ctx:set_source_rgba (.0, .0, .0, 1)
+       ctx:move_to (x0, wh)
+       for x = x0, x1 do
+               ctx:line_to (x, wh - math.sin (2 * math.pi * (x-x0) / (x1-x0)) * wh * .5)
+       end
+       ctx:stroke ()
+end end