Permalink
Switch branches/tags
Nothing to show
Find file Copy path
215a0fb Jan 4, 2018
1 contributor

Users who have contributed to this file

61 lines (52 sloc) 1.93 KB
-- This script saves the sub-delay quantity for each file.
-- When next time the file is opened, sub-delay is automatically restored.
-- Using `--sub-delay=<sec>` or `x` and `z` key-bindings both work.
-- But keep in mind that this script distinguishes different files by reading
-- their 'path' properties. If you use in command line:
-- `mpv --sub-delay=0.1 example.mkv`
-- this delay value won't be applied to the same file you open by
-- double-clicking it.
local mputils = require "mp.utils"
local JSON = (os.getenv('APPDATA') or os.getenv('HOME')..'/.config')..'/mpv/mpv_sub-delay.json'
local jsonFile = io.open(JSON, 'a+')
local sub_delay_table = mputils.parse_json(jsonFile:read("*all"))
jsonFile:close()
function read_sub_delay()
local sub_delay = mp.get_property_native("sub-delay")
local path = mp.get_property_native("path")
if sub_delay_table == nil then
sub_delay_table = {}
end
if sub_delay == 0 then
if sub_delay_table[path] ~= nil then
sub_delay = sub_delay_table[path]
if sub_delay > 0.000999 or sub_delay < -0.000999 then
mp.command("add sub-delay " .. sub_delay)
end
end
else
sub_delay_table[path] = sub_delay
write_sub_delay()
end
end
function write_sub_delay()
local jsonFile = io.open(JSON, 'w+')
local path = mp.get_property_native("path")
sub_delay_table[path] = mp.get_property_native("sub-delay")
local jsonContent, ret = mputils.format_json(sub_delay_table)
if ret ~= error and jsonContent ~= nil then
jsonFile:write(jsonContent)
end
jsonFile:close()
end
function sub_delay_pos()
mp.command("add sub-delay 0.1")
write_sub_delay()
end
function sub_delay_neg()
mp.command("add sub-delay -0.1")
write_sub_delay()
end
mp.register_event("file-loaded", read_sub_delay)
mp.add_key_binding("x", "sub-delay+", sub_delay_pos)
mp.add_key_binding("z", "sub-delay-", sub_delay_neg)