diff options
Diffstat (limited to 'player/client.c')
-rw-r--r-- | player/client.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/player/client.c b/player/client.c index 7d75b22256..facac7174a 100644 --- a/player/client.c +++ b/player/client.c @@ -201,6 +201,8 @@ struct mpv_handle *mp_new_client(struct mp_client_api *clients, const char *name { char nname[MAX_CLIENT_NAME]; for (int n = 1; n < 1000; n++) { + if (!name) + name = "client"; snprintf(nname, sizeof(nname) - 3, "%s", name); // - space for number for (int i = 0; nname[i]; i++) nname[i] = mp_isalnum(nname[i]) ? nname[i] : '_'; @@ -463,6 +465,18 @@ mpv_handle *mpv_create(void) return ctx; } +mpv_handle *mpv_create_client(mpv_handle *ctx, const char *name) +{ + if (!ctx) + return mpv_create(); + if (!ctx->mpctx->initialized) + return NULL; + mpv_handle *new = mp_new_client(ctx->mpctx->clients, name); + if (new) + mpv_wait_event(new, 0); // set fuzzy_initialized + return new; +} + static void *playback_thread(void *p) { struct MPContext *mpctx = p; |