From b76bcdc70d010ddf55856c519c4e8cdaec26ddf9 Mon Sep 17 00:00:00 2001 From: Pauli Virtanen Date: Mon, 4 Jan 2021 23:06:24 +0200 Subject: [PATCH] pulse-server: NULL means default only if id==INVALID The default values also only apply for sources/sinks which have defaults. --- src/modules/module-protocol-pulse/pulse-server.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index a113a8441..f7505d1b0 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -3893,8 +3893,14 @@ static int do_get_info(struct client *client, uint32_t command, uint32_t tag, st if (sel.id != SPA_ID_INVALID && sel.value != NULL) goto error_invalid; - if (sel.value == NULL || (def != NULL && strcmp(sel.value, def)) == 0) - sel.value = get_default(client, command == COMMAND_GET_SINK_INFO); + if (command == COMMAND_GET_SINK_INFO || command == COMMAND_GET_SOURCE_INFO) { + if ((sel.value == NULL && sel.id == SPA_ID_INVALID) || + (sel.value != NULL && strcmp(sel.value, def) == 0)) + sel.value = get_default(client, command == COMMAND_GET_SINK_INFO); + } else { + if (sel.value == NULL && sel.id == SPA_ID_INVALID) + goto error_invalid; + } pw_log_info(NAME" %p: [%s] %s tag:%u idx:%u name:%s", impl, client->name, commands[command].name, tag, sel.id, sel.value);