From a41f1a21d67b3d3dd6b173e563176f90074f589e Mon Sep 17 00:00:00 2001 From: Dark Date: Sat, 13 Jul 2019 20:36:34 -0400 Subject: client API: add mpv_command_ret This change adds a version of `mpv_command` that also returns a result. The main rationale behind this is `mpv_command_node` requires defining multiple structs before you can even use it, which results in a pretty painful to use interface just to get the result from a command. There isn't really a good name for this function, so I'm open to suggestions on a better name for it. --- player/client.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'player') diff --git a/player/client.c b/player/client.c index 8a22a2cb32..6a45ec7fb6 100644 --- a/player/client.c +++ b/player/client.c @@ -1087,6 +1087,15 @@ int mpv_command_node(mpv_handle *ctx, mpv_node *args, mpv_node *result) return r; } +int mpv_command_ret(mpv_handle *ctx, const char **args, mpv_node *result) +{ + struct mpv_node rn = {.format = MPV_FORMAT_NONE}; + int r = run_client_command(ctx, mp_input_parse_cmd_strv(ctx->log, args), &rn); + if (result && r >= 0) + *result = rn; + return r; +} + int mpv_command_string(mpv_handle *ctx, const char *args) { return run_client_command(ctx, -- cgit v1.2.3