summaryrefslogtreecommitdiffstats
path: root/input
diff options
context:
space:
mode:
Diffstat (limited to 'input')
-rw-r--r--input/input.c10
-rw-r--r--input/input.h3
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.