diff options
author | wm4 <wm4@nowhere> | 2014-11-23 15:08:49 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-11-23 15:13:35 +0100 |
commit | ae5df9be98e4193342321f30285655fcf88e7e63 (patch) | |
tree | 3f327acc1c25f3e48bebfc13c0d0061823c282e0 /player/client.c | |
parent | 7b47f12f8f1cae385060741e4e7f758297515225 (diff) | |
download | mpv-ae5df9be98e4193342321f30285655fcf88e7e63.tar.bz2 mpv-ae5df9be98e4193342321f30285655fcf88e7e63.tar.xz |
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.
Diffstat (limited to 'player/client.c')
-rw-r--r-- | player/client.c | 24 |
1 files changed, 24 insertions, 0 deletions
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) |