diff options
Diffstat (limited to 'player')
-rw-r--r-- | player/client.c | 12 | ||||
-rw-r--r-- | player/command.c | 10 | ||||
-rw-r--r-- | player/lua/defaults.lua | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/player/client.c b/player/client.c index 675410893d..42d2fb2bb8 100644 --- a/player/client.c +++ b/player/client.c @@ -339,6 +339,7 @@ static void status_reply(struct mpv_handle *ctx, int event, } // set ev->data to a new copy of the original data +// (done only for message types that are broadcast) static void dup_event_data(struct mpv_event *ev) { switch (ev->event_id) { @@ -346,6 +347,17 @@ static void dup_event_data(struct mpv_event *ev) case MPV_EVENT_UNPAUSE: ev->data = talloc_memdup(NULL, ev->data, sizeof(mpv_event_pause_reason)); break; + case MPV_EVENT_CLIENT_MESSAGE: { + struct mpv_event_client_message *src = ev->data; + struct mpv_event_client_message *msg = + talloc_zero(NULL, struct mpv_event_client_message); + for (int n = 0; n < src->num_args; n++) { + MP_TARRAY_APPEND(msg, msg->args, msg->num_args, + talloc_strdup(msg, src->args[n])); + } + ev->data = msg; + break; + } default: // Doesn't use events with memory allocation. if (ev->data) diff --git a/player/command.c b/player/command.c index 0af012bb16..e15d3db54e 100644 --- a/player/command.c +++ b/player/command.c @@ -3370,7 +3370,7 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd) break; } - case MP_CMD_SCRIPT_MESSAGE: { + case MP_CMD_SCRIPT_MESSAGE_TO: { mpv_event_client_message *event = talloc_ptrtype(NULL, event); *event = (mpv_event_client_message){0}; for (int n = 1; n < cmd->nargs; n++) { @@ -3385,6 +3385,14 @@ void run_command(MPContext *mpctx, mp_cmd_t *cmd) } break; } + case MP_CMD_SCRIPT_MESSAGE: { + const char *args[MP_CMD_MAX_ARGS]; + mpv_event_client_message event = {.args = args}; + for (int n = 0; n < cmd->nargs; n++) + event.args[event.num_args++] = cmd->args[n].v.s; + mp_client_broadcast_event(mpctx, MPV_EVENT_CLIENT_MESSAGE, &event); + break; + } #if HAVE_SYS_MMAN_H case MP_CMD_OVERLAY_ADD: diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index bd9af08f7c..fbc09d48a3 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -103,7 +103,7 @@ local function update_key_bindings() local cfg = "" for k, v in pairs(key_bindings) do if v.forced ~= def then - cfg = cfg .. v.key .. " script_message " .. mp.script_name + cfg = cfg .. v.key .. " script_message_to " .. mp.script_name .. " " .. v.name .. "\n" end end |