From ae5df9be98e4193342321f30285655fcf88e7e63 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 23 Nov 2014 15:08:49 +0100 Subject: input, lua: redo input handling Much of it is the same, but now there's the possibility to distinguish key down/up events in the Lua API. --- player/client.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'player/client.c') diff --git a/player/client.c b/player/client.c index 97bb215464..d01c611a3d 100644 --- a/player/client.c +++ b/player/client.c @@ -589,9 +589,16 @@ void mp_client_broadcast_event(struct MPContext *mpctx, int event, void *data) pthread_mutex_unlock(&clients->lock); } +// If client_name == NULL, then broadcast and free the event. int mp_client_send_event(struct MPContext *mpctx, const char *client_name, int event, void *data) { + if (!client_name) { + mp_client_broadcast_event(mpctx, event, data); + talloc_free(data); + return 0; + } + struct mp_client_api *clients = mpctx->clients; int r = 0; @@ -615,6 +622,23 @@ int mp_client_send_event(struct MPContext *mpctx, const char *client_name, return r; } +int mp_client_send_event_dup(struct MPContext *mpctx, const char *client_name, + int event, void *data) +{ + if (!client_name) { + mp_client_broadcast_event(mpctx, event, data); + return 0; + } + + struct mpv_event event_data = { + .event_id = event, + .data = data, + }; + + dup_event_data(&event_data); + return mp_client_send_event(mpctx, client_name, event, event_data.data); +} + int mpv_request_event(mpv_handle *ctx, mpv_event_id event, int enable) { if (!mpv_event_name(event) || enable < 0 || enable > 1) -- cgit v1.2.3