diff options
Diffstat (limited to 'player/lua/defaults.lua')
-rw-r--r-- | player/lua/defaults.lua | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index 32dfed9948..d5bb194c50 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -511,24 +511,21 @@ function mp.osd_message(text, duration) end local hook_table = {} -local hook_registered = false -local function hook_run(id, cont) - local fn = hook_table[tonumber(id)] +mp.register_event("hook", function(ev) + local fn = hook_table[tonumber(ev.id)] if fn then fn() end - mp.commandv("hook-ack", cont) -end + mp.raw_hook_continue(ev.hook_id) +end) function mp.add_hook(name, pri, cb) - if not hook_registered then - mp.register_script_message("hook_run", hook_run) - hook_registered = true - end local id = #hook_table + 1 hook_table[id] = cb - mp.commandv("hook-add", name, id, pri) + -- The C API suggests using 0 for a neutral priority, but lua.rst suggests + -- 50 (?), so whatever. + mp.raw_hook_add(id, name, pri - 50) end local mp_utils = package.loaded["mp.utils"] |