summary refs log tree commit diff
path: root/.config/mpv/mvi/scripts/equalizer.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-02-10 12:32:48 +0100
committerRobert Günzler <r@gnzler.io>2026-02-10 12:41:25 +0100
commit63feeb9f369fc6176e85c1c2d8fcc863caad1946 (patch)
tree41cd5d2d1ec36e74e464caab722cc9b460153f04 /.config/mpv/mvi/scripts/equalizer.lua
parent5bd0a4aca65ecb9818ef1285982d160b6b6ff665 (diff)
start new
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.config/mpv/mvi/scripts/equalizer.lua')
-rw-r--r--.config/mpv/mvi/scripts/equalizer.lua176
1 files changed, 0 insertions, 176 deletions
diff --git a/.config/mpv/mvi/scripts/equalizer.lua b/.config/mpv/mvi/scripts/equalizer.lua
deleted file mode 100644
index f7a50ab..0000000
--- a/.config/mpv/mvi/scripts/equalizer.lua
+++ /dev/null
@@ -1,176 +0,0 @@
-local opts = {
-    bars = 'brightness,contrast,gamma,saturation,hue',
-    draw_icons = true,
-}
-
-local msg = require 'mp.msg'
-local assdraw = require 'mp.assdraw'
-local options = require 'mp.options'
-local utils = require 'mp.utils'
-
-options.read_options(opts, nil, function(c)
-end)
-
-local enabled = false
-local active_bars = {}
-local bar_being_dragged = nil
-local stale = false
-
-function split_comma(input)
-    local ret = {}
-    for str in string.gmatch(input, "([^,]+)") do
-        ret[#ret + 1] = str
-    end
-    return ret
-end
-
-function get_position_normalized(x, y, bar)
-    return (x - bar.x) / bar.w, (y - bar.y) / bar.h
-end
-
-function handle_mouse_move()
-    if not bar_being_dragged then return end
-    local bar = bar_being_dragged
-    local mx, my = mp.get_mouse_pos()
-    local nx, _ = get_position_normalized(mx, my, bar)
-    nx = math.max(0, math.min(nx, 1))
-    local val = math.floor(nx * (bar.max_value - bar.min_value) + bar.min_value + 0.5)
-    mp.set_property_number(bar.property, val)
-    -- the observe_property call will take care of setting the value
-end
-
-function handle_mouse_left(table)
-    if table["event"] == "down" then
-        local mx, my = mp.get_mouse_pos()
-        for _, bar in ipairs(active_bars) do
-            local nx, ny = get_position_normalized(mx, my, bar)
-            if nx >= 0 and ny >= 0 and nx <= 1 and ny <= 1 then
-                bar_being_dragged = bar
-                local val = math.floor(nx * (bar.max_value - bar.min_value) + bar.min_value + 0.5)
-                mp.set_property_number(bar.property, val)
-                mp.add_forced_key_binding("mouse_move", "mouse_move", handle_mouse_move)
-                break
-            end
-        end
-    elseif table["event"] == "up" then
-        mp.remove_key_binding("mouse_move")
-        bar_being_dragged = nil
-    end
-end
-
-function property_changed(prop, val)
-    for _, bar in ipairs(active_bars) do
-        if bar.property == prop then
-            bar.value = val
-            stale = true
-            break
-        end
-    end
-end
-
-function idle_handler()
-    if not stale then return end
-    stale = false
-    local a = assdraw.ass_new()
-    a:new_event()
-    a:append(string.format('{\\an0\\bord2\\shad0\\1a&00&\\1c&%s&}', '888888'))
-    a:pos(0, 0)
-    a:draw_start()
-    for _, bar in ipairs(active_bars) do
-        a:rect_cw(bar.x, bar.y, bar.x + bar.w, bar.y + bar.h)
-    end
-    a:new_event()
-    a:append(string.format('{\\an0\\bord2\\shad0\\1a&00&\\1c&%s&}', 'dddddd'))
-    a:pos(0, 0)
-    a:draw_start()
-    for _, bar in ipairs(active_bars) do
-        if bar.value > bar.min_value then
-            local val_norm = (bar.value - bar.min_value) / (bar.max_value - bar.min_value)
-            a:rect_cw(bar.x, bar.y, bar.x + val_norm * bar.w, bar.y + bar.h)
-        end
-    end
-    for _, bar in ipairs(active_bars) do
-        a:new_event()
-        a:append("{\\an6\\fs40\\bord2}")
-        a:pos(bar.x - 8, bar.y + bar.h/2 - 2)
-        a:append(bar.property:sub(1,1):upper() .. bar.property:sub(2,-1))
-    end
-    local ww, wh = mp.get_osd_size()
-    mp.set_osd_ass(ww, wh, a.text)
-end
-
-function fix_position()
-    local ww, wh = mp.get_osd_size()
-    for i, bar in ipairs(active_bars) do
-        bar.x = ww / 5
-        bar.y = wh / 2 + i * 50
-        bar.w = ww - 2 * (ww / 5)
-        bar.h = 30
-    end
-end
-
-function dimensions_changed()
-    stale = true
-    fix_position()
-end
-
-function enable()
-    if enabled then return end
-    enabled = true
-    mp.add_forced_key_binding("MBTN_LEFT", "mouse_left", handle_mouse_left, {complex=true})
-    for i, prop in ipairs(split_comma(opts.bars)) do
-        local prop_info = mp.get_property_native("option-info/" .. prop)
-        if not prop_info then
-            msg.warn("Property \'" .. prop .. "\' does not exist")
-        elseif not prop_info.type == 'Integer' then
-            msg.warn("Property \'" .. prop .. "\' is not an integer")
-        else
-            mp.observe_property(prop, 'native', property_changed)
-            active_bars[#active_bars + 1] = {
-                property = prop,
-                value = mp.get_property_number(prop),
-                min_value = prop_info.min,
-                max_value = prop_info.max,
-            }
-        end
-    end
-    stale = true
-    fix_position()
-    mp.observe_property("osd-dimensions", "native", dimensions_changed)
-    mp.register_idle(idle_handler)
-end
-
-function disable()
-    if not enabled then return end
-    enabled = false
-    active_bars = {}
-    bar_being_dragged = nil
-    mp.remove_key_binding("mouse_left")
-    mp.remove_key_binding("mouse_move")
-    mp.unobserve_property(property_changed)
-    mp.unobserve_property(dimensions_changed)
-    mp.unregister_idle(idle_handler)
-    mp.set_osd_ass(1280, 720, "")
-end
-
-function toggle()
-    if enabled then
-        disable()
-    else
-        enable()
-    end
-end
-
-function reset()
-    for _, prop in ipairs(split_comma(opts.bars)) do
-        local prop_info = mp.get_property_native("option-info/" .. prop)
-        if prop_info and prop_info["default-value"] then
-            mp.set_property(prop_info["name"], prop_info["default-value"])
-        end
-    end
-end
-
-mp.add_key_binding(nil, "equalizer-enable", enable)
-mp.add_key_binding(nil, "equalizer-disable", disable)
-mp.add_key_binding(nil, "equalizer-toggle", toggle)
-mp.add_key_binding(nil, "equalizer-reset", reset)