summary refs log tree commit diff
path: root/.config/mpv/mvi/scripts/minimap.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/mpv/mvi/scripts/minimap.lua')
-rw-r--r--.config/mpv/mvi/scripts/minimap.lua201
1 files changed, 0 insertions, 201 deletions
diff --git a/.config/mpv/mvi/scripts/minimap.lua b/.config/mpv/mvi/scripts/minimap.lua
deleted file mode 100644
index f1b9a7d..0000000
--- a/.config/mpv/mvi/scripts/minimap.lua
+++ /dev/null
@@ -1,201 +0,0 @@
-local opts = {
-    enabled = true,
-    center = "92,92",
-    scale = 12,
-    max_size = "16,16",
-    image_opacity = "88",
-    image_color = "BBBBBB",
-    view_opacity = "BB",
-    view_color = "222222",
-    view_above_image = true,
-    hide_when_full_image_in_view = true,
-}
-
-local msg = require 'mp.msg'
-local assdraw = require 'mp.assdraw'
-local options = require 'mp.options'
-
-options.read_options(opts, nil, function(c)
-    if c["enabled"] then
-        if opts.enabled then
-            enable()
-        else
-            disable()
-        end
-    end
-    mark_stale()
-end)
-
-function split_comma(input)
-    local ret = {}
-    for str in string.gmatch(input, "([^,]+)") do
-        ret[#ret + 1] = tonumber(str)
-    end
-    return ret
-end
-
-local active = false
-local refresh = true
-
-function draw_ass(ass)
-    local ww, wh = mp.get_osd_size()
-    mp.set_osd_ass(ww, wh, ass)
-end
-
-function mark_stale()
-    refresh = true
-end
-
-function refresh_minimap()
-    if not refresh then return end
-    refresh = false
-
-    local dim = mp.get_property_native("osd-dimensions")
-    if not dim then
-        draw_ass("")
-        return
-    end
-    local ww, wh = dim.w, dim.h
-
-    if not (ww > 0 and wh > 0) then return end
-    if opts.hide_when_full_image_in_view then
-        if dim.mt >= 0 and dim.mb >= 0 and dim.ml >= 0 and dim.mr >= 0 then
-            draw_ass("")
-            return
-        end
-    end
-
-    local center = split_comma(opts.center)
-    center[1] = center[1] * 0.01 * ww
-    center[2] = center[2] * 0.01 * wh
-    local cutoff = split_comma(opts.max_size)
-    cutoff[1] = cutoff[1] * 0.01 * ww * 0.5
-    cutoff[2] = cutoff[2] * 0.01 * wh * 0.5
-
-    local a = assdraw.ass_new()
-    local draw = function(x, y, w, h, opacity, color)
-        a:new_event()
-        a:pos(center[1], center[2])
-        a:append("{\\bord0}")
-        a:append("{\\shad0}")
-        a:append("{\\c&" .. color .. "&}")
-        a:append("{\\2a&HFF}")
-        a:append("{\\3a&HFF}")
-        a:append("{\\4a&HFF}")
-        a:append("{\\1a&H" .. opacity .. "}")
-        w = w * 0.5
-        h = h * 0.5
-        a:draw_start()
-        local rounded = {true,true,true,true} -- tl, tr, br, bl
-        local x0,y0,x1,y1 = x-w, y-h, x+w, y+h
-        if x0 < -cutoff[1] then
-            x0 = -cutoff[1]
-            rounded[4] = false
-            rounded[1] = false
-        end
-        if y0 < -cutoff[2] then
-            y0 = -cutoff[2]
-            rounded[1] = false
-            rounded[2] = false
-        end
-        if x1 > cutoff[1] then
-            x1 = cutoff[1]
-            rounded[2] = false
-            rounded[3] = false
-        end
-        if y1 > cutoff[2] then
-            y1 = cutoff[2]
-            rounded[3] = false
-            rounded[4] = false
-        end
-
-        local r = 3
-        local c = 0.551915024494 * r
-        if rounded[0] then
-            a:move_to(x0 + r, y0)
-        else
-            a:move_to(x0,y0)
-        end
-        if rounded[1] then
-            a:line_to(x1 - r, y0)
-            a:bezier_curve(x1 - r + c, y0, x1, y0 + r - c, x1, y0 + r)
-        else
-            a:line_to(x1, y0)
-        end
-        if rounded[2] then
-            a:line_to(x1, y1 - r)
-            a:bezier_curve(x1, y1 - r + c, x1 - r + c, y1, x1 - r, y1)
-        else
-            a:line_to(x1, y1)
-        end
-        if rounded[3] then
-            a:line_to(x0 + r, y1)
-            a:bezier_curve(x0 + r - c, y1, x0, y1 - r + c, x0, y1 - r)
-        else
-            a:line_to(x0, y1)
-        end
-        if rounded[4] then
-            a:line_to(x0, y0 + r)
-            a:bezier_curve(x0, y0 + r - c, x0 + r - c, y0, x0 + r, y0)
-        else
-            a:line_to(x0, y0)
-        end
-        a:draw_stop()
-    end
-    local image = function()
-        draw((dim.ml/2 - dim.mr/2) / opts.scale,
-             (dim.mt/2 - dim.mb/2) / opts.scale,
-             (ww - dim.ml - dim.mr) / opts.scale,
-             (wh - dim.mt - dim.mb) / opts.scale,
-             opts.image_opacity,
-             opts.image_color)
-    end
-    local view = function()
-        draw(0,
-             0,
-             ww / opts.scale,
-             wh / opts.scale,
-             opts.view_opacity,
-             opts.view_color)
-    end
-    if opts.view_above_image then
-        image()
-        view()
-    else
-        view()
-        image()
-    end
-    draw_ass(a.text)
-end
-
-function enable()
-    if active then return end
-    active = true
-    mp.observe_property("osd-dimensions", nil, mark_stale)
-    mp.register_idle(refresh_minimap)
-    mark_stale()
-end
-
-function disable()
-    if not active then return end
-    active = false
-    mp.unobserve_property(mark_stale)
-    mp.unregister_idle(refresh_minimap)
-    draw_ass("")
-end
-
-function toggle()
-    if active then
-        disable()
-    else
-        enable()
-    end
-end
-
-if opts.enabled then
-    enable()
-end
-
-mp.add_key_binding(nil, "minimap-enable", enable)
-mp.add_key_binding(nil, "minimap-disable", disable)
-mp.add_key_binding(nil, "minimap-toggle", toggle)