--[[ Shared utility functions for mpv scripts. ]] local M = {} -- String utilities function M.trim(str) return str and str:match("^%s*(.-)%s*$") or "" end -- Math utilities function M.clamp(value, min_v, max_v) if value < min_v then return min_v end if value > max_v then return max_v end return value end -- ASS color utilities function M.rgb_to_bgr(rgb) return rgb:sub(5, 6) .. rgb:sub(3, 4) .. rgb:sub(1, 2) end function M.colorize(text, color_rgb, use_colors) if use_colors == false then return text end return "{\\1c&H" .. M.rgb_to_bgr(color_rgb) .. "&}" .. text .. "{\\1c&HFFFFFF&}" end -- Debug logging factory function M.make_dbg(prefix, log_fn) return function(text, config_enabled) if config_enabled ~= false then log_fn(prefix .. ": " .. text) end end end return M