summaryrefslogtreecommitdiffstats
path: root/player/lua
diff options
context:
space:
mode:
Diffstat (limited to 'player/lua')
-rw-r--r--player/lua/osc.lua79
-rw-r--r--player/lua/stats.lua23
2 files changed, 70 insertions, 32 deletions
diff --git a/player/lua/osc.lua b/player/lua/osc.lua
index 467f58bea6..4718be44c1 100644
--- a/player/lua/osc.lua
+++ b/player/lua/osc.lua
@@ -60,6 +60,18 @@ local user_opts = {
playlist_media_title = true, -- whether to use media titles as playlist entry names
chapter_fmt = "Chapter: %s", -- chapter print format for seekbar-hover. "no" to disable
unicodeminus = false, -- whether to use the Unicode minus sign character
+
+ background_color = "#000000", -- background color of the osc
+ timecode_color = "#FFFFFF", -- color of the progress bar and time color
+ title_color = "#FFFFFF", -- color of the title
+ time_pos_color = "#FFFFFF", -- color of the timecode at hovered position
+ buttons_color = "#FFFFFF", -- color of big buttons, wc buttons, and bar small buttons
+ small_buttonsL_color = "#FFFFFF", -- color of left small buttons
+ small_buttonsR_color = "#FFFFFF", -- color of right small buttons
+ top_buttons_color = "#FFFFFF", -- color of top buttons
+ held_element_color = "#999999", -- color of an element while held down
+
+ time_pos_outline_color = "#000000" -- color of the border timecodes in slimbox and TimePosBar
}
-- read options from config and command-line
@@ -76,27 +88,31 @@ local osc_param = { -- calculated by osc_init()
},
}
+function osc_color_convert(color)
+ return color:sub(6,7) .. color:sub(4,5) .. color:sub(2,3)
+end
+
local osc_styles = {
- bigButtons = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs50\\fnmpv-osd-symbols}",
- smallButtonsL = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs19\\fnmpv-osd-symbols}",
+ bigButtons = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.buttons_color) .. "\\3c&HFFFFFF\\fs50\\fnmpv-osd-symbols}",
+ smallButtonsL = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.small_buttonsL_color) .. "\\3c&HFFFFFF\\fs19\\fnmpv-osd-symbols}",
smallButtonsLlabel = "{\\fscx105\\fscy105\\fn" .. mp.get_property("options/osd-font") .. "}",
- smallButtonsR = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs30\\fnmpv-osd-symbols}",
- topButtons = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs12\\fnmpv-osd-symbols}",
-
- elementDown = "{\\1c&H999999}",
- timecodes = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs20}",
- vidtitle = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs12\\q2}",
- box = "{\\rDefault\\blur0\\bord1\\1c&H000000\\3c&HFFFFFF}",
-
- topButtonsBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs18\\fnmpv-osd-symbols}",
- smallButtonsBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs28\\fnmpv-osd-symbols}",
- timecodesBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs27}",
- timePosBar = "{\\blur0\\bord".. user_opts.tooltipborder .."\\1c&HFFFFFF\\3c&H000000\\fs30}",
- vidtitleBar = "{\\blur0\\bord0\\1c&HFFFFFF\\3c&HFFFFFF\\fs18\\q2}",
-
- wcButtons = "{\\1c&HFFFFFF\\fs24\\fnmpv-osd-symbols}",
- wcTitle = "{\\1c&HFFFFFF\\fs24\\q2}",
- wcBar = "{\\1c&H000000}",
+ smallButtonsR = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.small_buttonsR_color) .. "\\3c&HFFFFFF\\fs30\\fnmpv-osd-symbols}",
+ topButtons = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.top_buttons_color) .. "\\3c&HFFFFFF\\fs12\\fnmpv-osd-symbols}",
+
+ elementDown = "{\\1c&H" .. osc_color_convert(user_opts.held_element_color) .."}",
+ timecodes = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.timecode_color) .. "\\3c&HFFFFFF\\fs20}",
+ vidtitle = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.title_color) .. "\\3c&HFFFFFF\\fs12\\q2}",
+ box = "{\\rDefault\\blur0\\bord1\\1c&H" .. osc_color_convert(user_opts.background_color) .. "\\3c&HFFFFFF}",
+
+ topButtonsBar = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.top_buttons_color) .. "\\3c&HFFFFFF\\fs18\\fnmpv-osd-symbols}",
+ smallButtonsBar = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.buttons_color) .. "\\3c&HFFFFFF\\fs28\\fnmpv-osd-symbols}",
+ timecodesBar = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.timecode_color) .."\\3c&HFFFFFF\\fs27}",
+ timePosBar = "{\\blur0\\bord".. user_opts.tooltipborder .."\\1c&H" .. osc_color_convert(user_opts.time_pos_color) .. "\\3c&H" .. osc_color_convert(user_opts.time_pos_outline_color) .. "\\fs30}",
+ vidtitleBar = "{\\blur0\\bord0\\1c&H" .. osc_color_convert(user_opts.title_color) .. "\\3c&HFFFFFF\\fs18\\q2}",
+
+ wcButtons = "{\\1c&H" .. osc_color_convert(user_opts.buttons_color) .. "\\fs24\\fnmpv-osd-symbols}",
+ wcTitle = "{\\1c&H" .. osc_color_convert(user_opts.title_color) .. "\\fs24\\q2}",
+ wcBar = "{\\1c&H" .. osc_color_convert(user_opts.background_color) .. "}",
}
-- internal states, do not touch
@@ -1408,9 +1424,9 @@ layouts["slimbox"] = function ()
-- styles
local styles = {
- box = "{\\rDefault\\blur0\\bord1\\1c&H000000\\3c&HFFFFFF}",
- timecodes = "{\\1c&HFFFFFF\\3c&H000000\\fs20\\bord2\\blur1}",
- tooltip = "{\\1c&HFFFFFF\\3c&H000000\\fs12\\bord1\\blur0.5}",
+ box = "{\\rDefault\\blur0\\bord1\\1c&H" .. osc_color_convert(user_opts.background_color) .. "\\3c&HFFFFFF}",
+ timecodes = "{\\1c&H" .. osc_color_convert(user_opts.timecode_color) .. "\\3c&H" .. osc_color_convert(user_opts.time_pos_outline_color) .. "\\fs20\\bord2\\blur1}",
+ tooltip = "{\\1c&H" .. osc_color_convert(user_opts.time_pos_color).. "\\3c&H" .. osc_color_convert(user_opts.time_pos_outline_color) .. "\\fs12\\bord1\\blur0.5}",
}
@@ -1727,6 +1743,19 @@ function validate_user_opts()
user_opts.windowcontrols_alignment .. "\". Ignoring.")
user_opts.windowcontrols_alignment = "right"
end
+
+ local colors = {
+ user_opts.background_color, user_opts.top_buttons_color,
+ user_opts.small_buttonsL_color, user_opts.small_buttonsR_color,
+ user_opts.buttons_color, user_opts.title_color,
+ user_opts.timecode_color, user_opts.time_pos_color,
+ user_opts.held_element_color, user_opts.time_pos_outline_color,
+ }
+ for _, color in pairs(colors) do
+ if color:find("^#%x%x%x%x%x%x$") == nil then
+ msg.warn("'" .. color .. "' is not a valid color")
+ end
+ end
end
function update_options(list)
@@ -1849,7 +1878,11 @@ function osc_init()
ne.content = function ()
if mp.get_property("pause") == "yes" then
- return ("\238\132\129")
+ if mp.get_property("play-direction", "forward") ~= "backward" then
+ return ("\238\132\129")
+ else
+ return ("\238\132\144")
+ end
else
return ("\238\128\130")
end
diff --git a/player/lua/stats.lua b/player/lua/stats.lua
index 1cc3eb879a..0085c22638 100644
--- a/player/lua/stats.lua
+++ b/player/lua/stats.lua
@@ -895,18 +895,23 @@ local function add_video_out(s)
scale = mp.get_property_native("current-window-scale")
end
- local r = mp.get_property_native("video-target-params")
- if not r then
- local osd_dims = mp.get_property_native("osd-dimensions")
- local scaled_width = osd_dims["w"] - osd_dims["ml"] - osd_dims["mr"]
- local scaled_height = osd_dims["h"] - osd_dims["mt"] - osd_dims["mb"]
- append_resolution(s, {w=scaled_width, h=scaled_height, s=scale},
- "Resolution:")
- return
- end
+ local od = mp.get_property_native("osd-dimensions")
+ local rt = mp.get_property_native("video-target-params")
+ r = rt or {}
-- Add window scale
r["s"] = scale
+ r["crop-x"] = od["ml"]
+ r["crop-y"] = od["mt"]
+ r["crop-w"] = od["w"] - od["ml"] - od["mr"]
+ r["crop-h"] = od["h"] - od["mt"] - od["mb"]
+
+ if not rt then
+ r["w"] = r["crop-w"]
+ r["h"] = r["crop-h"]
+ append_resolution(s, r, "Resolution:", "w", "h", true)
+ return
+ end
append_img_params(s, r)
append_hdr(s, r, true)