summaryrefslogtreecommitdiffstats
path: root/player/javascript
diff options
context:
space:
mode:
authorAvi Halachmi (:avih) <avihpit@yahoo.com>2018-03-27 15:29:57 +0300
committerKevin Mitchell <kevmitch@gmail.com>2018-04-07 16:02:20 -0700
commitec625266c8f2b2c06355f31b5d58ec030bbc8e5d (patch)
tree5bc683dd8e845f9ab4a7ac662b2d7a9037818644 /player/javascript
parent84aa9e71469f666c552aa9f797da16d3c9676f53 (diff)
downloadmpv-ec625266c8f2b2c06355f31b5d58ec030bbc8e5d.tar.bz2
mpv-ec625266c8f2b2c06355f31b5d58ec030bbc8e5d.tar.xz
js: use new hooks API (match f60826c3)
Diffstat (limited to 'player/javascript')
-rw-r--r--player/javascript/defaults.js18
1 files changed, 8 insertions, 10 deletions
diff --git a/player/javascript/defaults.js b/player/javascript/defaults.js
index 96bac2126f..6e5686ff3d 100644
--- a/player/javascript/defaults.js
+++ b/player/javascript/defaults.js
@@ -123,22 +123,19 @@ function dispatch_message(ev) {
}
// ----- hooks -----
-var next_hid = 1,
- hooks = new_cache(); // items of id: fn
+var hooks = []; // array of callbacks, id is index+1
-function hook_run(id, cont) {
- var cb = hooks[id];
+function run_hook(ev) {
+ var cb = ev.id > 0 && hooks[ev.id - 1];
if (cb)
cb();
- mp.commandv("hook-ack", cont);
+ mp._hook_continue(ev.hook_id);
}
mp.add_hook = function add_hook(name, pri, fn) {
- if (next_hid == 1) // doesn't really matter if we do it once or always
- mp.register_script_message("hook_run", hook_run);
- var id = next_hid++;
- hooks[id] = fn;
- return mp.commandv("hook-add", name, id, pri);
+ hooks.push(fn);
+ // 50 (scripting docs default priority) maps to 0 (default in C API docs)
+ return mp._hook_add(name, pri - 50, hooks.length);
}
/**********************************************************************
@@ -559,6 +556,7 @@ mp.keep_running = true;
g.exit = function() { mp.keep_running = false }; // user-facing too
mp.register_event("shutdown", g.exit);
mp.register_event("property-change", notify_observer);
+mp.register_event("hook", run_hook);
mp.register_event("client-message", dispatch_message);
mp.register_script_message("key-binding", dispatch_key_binding);