diff options
Diffstat (limited to '.config/mpv/mvi/scripts/status-line.lua')
| -rw-r--r-- | .config/mpv/mvi/scripts/status-line.lua | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/.config/mpv/mvi/scripts/status-line.lua b/.config/mpv/mvi/scripts/status-line.lua deleted file mode 100644 index 7ac5168..0000000 --- a/.config/mpv/mvi/scripts/status-line.lua +++ /dev/null @@ -1,142 +0,0 @@ -local opts = { - enabled = true, - size = 36, - margin = 10, - text_top_left = "", - text_top_right = "", - text_bottom_left = "${filename} [${playlist-pos-1}/${playlist-count}]", - text_bottom_right = "[${dwidth:X}x${dheight:X}]", -} - -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 - if c["size"] or c["margin"] then - mark_stale() - end - if c["text_top_left"] or - c["text_top_right"] or - c["text_bottom_left"] or - c["text_bottom_right"] - then - observe_properties() - mark_stale() - end -end) - -local stale = true -local active = false - -function draw_ass(ass) - local ww, wh = mp.get_osd_size() - mp.set_osd_ass(ww, wh, ass) -end - -function refresh() - if not stale then return end - stale = false - local a = assdraw:ass_new() - local draw_text = function(text, an, x, y) - if text == "" then return end - local expanded = mp.command_native({ "expand-text", text}) - if not expanded then - msg.error("Error expanding status-line") - return - end - msg.verbose("Status-line changed to: " .. expanded) - a:new_event() - a:an(an) - a:pos(x,y) - a:append("{\\fs".. opts.size.. "}{\\bord1.0}") - a:append(expanded) - end - local w,h = mp.get_osd_size() - local m = opts.margin - draw_text(opts.text_top_left, 7, m, m) - draw_text(opts.text_top_right, 9, w-m, m) - draw_text(opts.text_bottom_left, 1, m, h-m) - draw_text(opts.text_bottom_right, 3, w-m, h-m) - draw_ass(a.text) -end - -function mark_stale() - stale = true -end - -function observe_properties() - mp.unobserve_property(mark_stale) - if not active then return end - for _, str in ipairs({ - opts.text_top_left, - opts.text_top_right, - opts.text_bottom_left, - opts.text_bottom_right, - }) do - local start = 0 - while true do - local s, e, cap = string.find(str, "%${[?!]?([%l%d-/]*)", start) - if not s then break end - msg.verbose("Observing property " .. cap) - mp.observe_property(cap, nil, mark_stale) - start = e - end - end - mp.observe_property("osd-width", nil, mark_stale) - mp.observe_property("osd-height", nil, mark_stale) -end - -function enable() - if active then return end - active = true - observe_properties() - mp.register_idle(refresh) - mark_stale() -end - - -function disable() - if not active then return end - active = false - observe_properties() - mp.unregister_idle(refresh) - draw_ass("") -end - -function toggle() - if active then - disable() - else - enable() - end -end - -if opts.enabled then - enable() -end - -mp.add_key_binding(nil, "status-line-enable", enable) -mp.add_key_binding(nil, "status-line-disable", disable) -mp.add_key_binding(nil, "status-line-toggle", toggle) - --- TODO remove -mp.add_key_binding(nil, "enable-status-line", function() - msg.warn("This binding is deprecated, use 'status-line-enable' instead") - enable() -end) -mp.add_key_binding(nil, "disable-status-line", function() - msg.warn("This binding is deprecated, use 'status-line-disable' instead") - disable() -end) -mp.add_key_binding(nil, "toggle-status-line", function() - msg.warn("This binding is deprecated, use 'status-line-toggle' instead") - toggle() -end) |