diff options
Diffstat (limited to 'input')
-rw-r--r-- | input/input.c | 10 | ||||
-rw-r--r-- | input/input.h | 3 |
2 files changed, 7 insertions, 6 deletions
diff --git a/input/input.c b/input/input.c index 9525dbcbb1..f0f9f64e9b 100644 --- a/input/input.c +++ b/input/input.c @@ -144,7 +144,8 @@ struct input_ctx { struct cmd_queue cmd_queue; - struct mp_cancel *cancel; + void (*cancel)(void *cancel_ctx); + void *cancel_ctx; void (*wakeup_cb)(void *ctx); void *wakeup_ctx; @@ -809,7 +810,7 @@ int mp_input_queue_cmd(struct input_ctx *ictx, mp_cmd_t *cmd) input_lock(ictx); if (cmd) { if (ictx->cancel && test_abort_cmd(ictx, cmd)) - mp_cancel_trigger(ictx->cancel); + ictx->cancel(ictx->cancel_ctx); queue_add_tail(&ictx->cmd_queue, cmd); mp_input_wakeup(ictx); } @@ -1335,10 +1336,11 @@ void mp_input_uninit(struct input_ctx *ictx) talloc_free(ictx); } -void mp_input_set_cancel(struct input_ctx *ictx, struct mp_cancel *cancel) +void mp_input_set_cancel(struct input_ctx *ictx, void (*cb)(void *c), void *c) { input_lock(ictx); - ictx->cancel = cancel; + ictx->cancel = cb; + ictx->cancel_ctx = c; input_unlock(ictx); } diff --git a/input/input.h b/input/input.h index 5b5edd580d..fb928e0808 100644 --- a/input/input.h +++ b/input/input.h @@ -242,8 +242,7 @@ void mp_input_wakeup(struct input_ctx *ictx); // Used to asynchronously abort playback. Needed because the core still can // block on network in some situations. -struct mp_cancel; -void mp_input_set_cancel(struct input_ctx *ictx, struct mp_cancel *cancel); +void mp_input_set_cancel(struct input_ctx *ictx, void (*cb)(void *c), void *c); // If this returns true, use Right Alt key as Alt Gr to produce special // characters. If false, count Right Alt as the modifier Alt key. |