diff options
Diffstat (limited to 'meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-pipewire-cli-add-command-to-modify-endpoint-control-.patch')
-rw-r--r-- | meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-pipewire-cli-add-command-to-modify-endpoint-control-.patch | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-pipewire-cli-add-command-to-modify-endpoint-control-.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-pipewire-cli-add-command-to-modify-endpoint-control-.patch deleted file mode 100644 index 4394d60d..00000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-pipewire-cli-add-command-to-modify-endpoint-control-.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 824c8abf88e9ee82567c177145798b619298ab91 Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Wed, 5 Jun 2019 14:57:37 +0300 -Subject: [PATCH] pipewire-cli: add command to modify endpoint control values - -Upstream-Status: Pending ---- - src/tools/pipewire-cli.c | 86 ++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 86 insertions(+) - -diff --git a/src/tools/pipewire-cli.c b/src/tools/pipewire-cli.c -index 9511db82..b52ab100 100644 ---- a/src/tools/pipewire-cli.c -+++ b/src/tools/pipewire-cli.c -@@ -210,6 +210,7 @@ static bool do_export_node(struct data *data, const char *cmd, char *args, char - static bool do_enum_params(struct data *data, const char *cmd, char *args, char **error); - static bool do_permissions(struct data *data, const char *cmd, char *args, char **error); - static bool do_get_permissions(struct data *data, const char *cmd, char *args, char **error); -+static bool do_endpoint_control(struct data *data, const char *cmd, char *args, char **error); - - static struct command command_list[] = { - { "help", "Show this help", do_help }, -@@ -228,6 +229,7 @@ static struct command command_list[] = { - { "enum-params", "Enumerate params of an object <object-id> [<param-id-name>]", do_enum_params }, - { "permissions", "Set permissions for a client <client-id> <permissions>", do_permissions }, - { "get-permissions", "Get permissions of a client <client-id>", do_get_permissions }, -+ { "endpoint-control", "Set control value on an endpoint <object-id> <control-id> <type: b|i|l|d> <value>", do_endpoint_control }, - }; - - static bool do_help(struct data *data, const char *cmd, char *args, char **error) -@@ -1357,6 +1359,90 @@ static bool do_get_permissions(struct data *data, const char *cmd, char *args, c - return true; - } - -+static bool do_endpoint_control(struct data *data, const char *cmd, char *args, char **error) -+{ -+ struct remote_data *rd = data->current; -+ int n; -+ char *a[4]; -+ uint32_t id, control_id; -+ struct global *global; -+ char buffer[1024]; -+ struct spa_pod_builder b; -+ struct spa_pod_frame f; -+ struct spa_pod *param; -+ -+ n = pw_split_ip(args, WHITESPACE, 4, a); -+ if (n < 4) { -+ asprintf(error, "%s <object-id> <control-id> <type: b|i|l|d> <value>", cmd); -+ return false; -+ } -+ -+ id = atoi(a[0]); -+ global = pw_map_lookup(&rd->globals, id); -+ if (global == NULL) { -+ asprintf(error, "%s: unknown global %d", cmd, id); -+ return false; -+ } -+ if (global->type != PW_TYPE_INTERFACE_Endpoint) { -+ asprintf(error, "object %d is not an endpoint", atoi(a[0])); -+ return false; -+ } -+ if (global->proxy == NULL) { -+ if (!bind_global(rd, global, error)) -+ return false; -+ } -+ -+ control_id = atoi(a[1]); -+ -+ spa_pod_builder_init(&b, buffer, 1024); -+ spa_pod_builder_push_object (&b, &f, -+ PW_ENDPOINT_OBJECT_ParamControl, PW_ENDPOINT_PARAM_Control); -+ spa_pod_builder_add(&b, -+ PW_ENDPOINT_PARAM_CONTROL_id, SPA_POD_Int(control_id), -+ NULL); -+ -+ switch (*a[2]) { -+ case 'b': { -+ bool val = atoi(a[3]); -+ spa_pod_builder_add(&b, -+ PW_ENDPOINT_PARAM_CONTROL_value, SPA_POD_Bool(val), -+ NULL); -+ break; -+ } -+ case 'i': { -+ int val = atoi(a[3]); -+ spa_pod_builder_add(&b, -+ PW_ENDPOINT_PARAM_CONTROL_value, SPA_POD_Int(val), -+ NULL); -+ break; -+ } -+ case 'l': { -+ int64_t val = strtoll(a[3], NULL, 10); -+ spa_pod_builder_add(&b, -+ PW_ENDPOINT_PARAM_CONTROL_value, SPA_POD_Long(val), -+ NULL); -+ break; -+ } -+ case 'd': { -+ double val = strtod(a[3], NULL); -+ spa_pod_builder_add(&b, -+ PW_ENDPOINT_PARAM_CONTROL_value, SPA_POD_Double(val), -+ NULL); -+ break; -+ } -+ default: -+ asprintf(error, "%s: unknown value type %s", cmd, a[2]); -+ return false; -+ } -+ -+ param = spa_pod_builder_pop(&b, &f); -+ -+ pw_endpoint_proxy_set_param((struct pw_endpoint_proxy *) global->proxy, -+ PW_ENDPOINT_PARAM_Control, 0, param); -+ -+ return true; -+} -+ - static bool parse(struct data *data, char *buf, size_t size, char **error) - { - char *a[2]; --- -2.20.1 - |