mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-15 08:56:34 -05:00
dbus: fix ActiveProfile setting
Just like with handle_set_active_port, we need to look up the profile corresponding to the provided path rather than doing a name comparison. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/709
This commit is contained in:
parent
bdf66c4693
commit
b76f668253
1 changed files with 11 additions and 2 deletions
|
|
@ -324,7 +324,9 @@ static void handle_get_active_profile(DBusConnection *conn, DBusMessage *msg, vo
|
||||||
static void handle_set_active_profile(DBusConnection *conn, DBusMessage *msg, DBusMessageIter *iter, void *userdata) {
|
static void handle_set_active_profile(DBusConnection *conn, DBusMessage *msg, DBusMessageIter *iter, void *userdata) {
|
||||||
pa_dbusiface_card *c = userdata;
|
pa_dbusiface_card *c = userdata;
|
||||||
const char *new_active_path;
|
const char *new_active_path;
|
||||||
pa_dbusiface_card_profile *new_active;
|
pa_dbusiface_card_profile *profile;
|
||||||
|
void *state;
|
||||||
|
pa_dbusiface_card_profile *new_active = NULL;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
pa_assert(conn);
|
pa_assert(conn);
|
||||||
|
|
@ -334,7 +336,14 @@ static void handle_set_active_profile(DBusConnection *conn, DBusMessage *msg, DB
|
||||||
|
|
||||||
dbus_message_iter_get_basic(iter, &new_active_path);
|
dbus_message_iter_get_basic(iter, &new_active_path);
|
||||||
|
|
||||||
if (!(new_active = pa_hashmap_get(c->profiles, new_active_path))) {
|
PA_HASHMAP_FOREACH(profile, c->profiles, state) {
|
||||||
|
if (pa_streq(pa_dbusiface_card_profile_get_path(profile), new_active_path)) {
|
||||||
|
new_active = profile;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!new_active) {
|
||||||
pa_dbus_send_error(conn, msg, PA_DBUS_ERROR_NOT_FOUND, "%s: No such profile.", new_active_path);
|
pa_dbus_send_error(conn, msg, PA_DBUS_ERROR_NOT_FOUND, "%s: No such profile.", new_active_path);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue