History

js: expose mpv_abort_async_command() (match dbe831bd)

With minor difference from lua, as documented.

Avi Halachmi (:avih) committed 7 years ago

Commit 44f8dcc1 parent ad0a5253 files · +26 −3Browse files

Unified · Split

3 files
  1. DOCS/man/javascript.rst +4 −2
  2. player/javascript.c +8 −0
  3. player/javascript/defaults.js +14 −1
DOCS/man/javascript.rst+4−2
@@ -96,8 +96,10 @@ Where the Lua APIs use ``nil`` to indicate error, JS APIs use ``undefined``. · 95 unmodified lines
96 96
97``mp.command_native(table [,def])`` (LE)97``mp.command_native(table [,def])`` (LE)
98 98
99``mp.command_native_async(table [,fn])`` (LE) Note: ``error`` is empty string on99``id = mp.command_native_async(table [,fn])`` (LE) Notes: ``id`` is true-thy on
100success.100success, ``fn`` is called always a-sync, ``error`` is empty string on success.
101
102``mp.abort_async_command(id)``
101 103
102``mp.get_property(name [,def])`` (LE)104``mp.get_property(name [,def])`` (LE)
103 105
player/javascript.c+8−0
@@ -718,6 +718,13 @@ static void script__command_native_async(js_State *J, void *af) · 717 unmodified lines
718 push_status(J, mpv_command_node_async(jclient(J), id, &node));718 push_status(J, mpv_command_node_async(jclient(J), id, &node));
719}719}
720 720
721// args: async-command-id
722static void script__abort_async_command(js_State *J)
723{
724 mpv_abort_async_command(jclient(J), jsL_checkuint64(J, 1));
725 push_success(J);
726}
727
721// args: none, result in millisec728// args: none, result in millisec
722static void script_get_time_ms(js_State *J)729static void script_get_time_ms(js_State *J)
723{730{
@@ -1232,6 +1239,7 @@ static const struct fn_entry main_fns[] = { · 508 unmodified lines
1232 FN_ENTRY(commandv, 0),1239 FN_ENTRY(commandv, 0),
1233 AF_ENTRY(command_native, 2),1240 AF_ENTRY(command_native, 2),
1234 AF_ENTRY(_command_native_async, 2),1241 AF_ENTRY(_command_native_async, 2),
1242 FN_ENTRY(_abort_async_command, 1),
1235 FN_ENTRY(get_property_bool, 2),1243 FN_ENTRY(get_property_bool, 2),
1236 FN_ENTRY(get_property_number, 2),1244 FN_ENTRY(get_property_number, 2),
1237 AF_ENTRY(get_property_native, 2),1245 AF_ENTRY(get_property_native, 2),
player/javascript/defaults.js+14−1
@@ -144,8 +144,15 @@ var async_next_id = 1; · 143 unmodified lines
144 144
145mp.command_native_async = function command_native_async(node, cb) {145mp.command_native_async = function command_native_async(node, cb) {
146 var id = async_next_id++;146 var id = async_next_id++;
147 cb = cb || function dummy() {};
148 if (!mp._command_native_async(id, node)) {
149 var le = mp.last_error();
150 setTimeout(cb, 0, false, undefined, le); /* callback async */
151 mp._set_last_error(le);
152 return undefined;
153 }
147 async_callbacks[id] = cb;154 async_callbacks[id] = cb;
148 return mp._command_native_async(id, node);155 return id;
149}156}
150 157
151function async_command_handler(ev) {158function async_command_handler(ev) {
@@ -157,6 +164,12 @@ function async_command_handler(ev) { · 5 unmodified lines
157 cb(true, ev.result, "");164 cb(true, ev.result, "");
158}165}
159 166
167mp.abort_async_command = function abort_async_command(id) {
168 // cb will be invoked regardless, possibly with the abort result
169 if (async_callbacks[id])
170 mp._abort_async_command(id);
171}
172
160/**********************************************************************173/**********************************************************************
161 * key bindings174 * key bindings
162 *********************************************************************/175 *********************************************************************/

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t