mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
acp: also act on new available ports
This commit is contained in:
parent
5e368b1ad6
commit
a956c265a2
1 changed files with 15 additions and 7 deletions
|
|
@ -668,9 +668,13 @@ static void card_profile_available(void *data, uint32_t index,
|
||||||
this->params[IDX_EnumProfile].flags ^= SPA_PARAM_INFO_SERIAL;
|
this->params[IDX_EnumProfile].flags ^= SPA_PARAM_INFO_SERIAL;
|
||||||
emit_info(this, false);
|
emit_info(this, false);
|
||||||
|
|
||||||
if (this->props.auto_profile && available == ACP_AVAILABLE_NO) {
|
if (this->props.auto_profile) {
|
||||||
index = acp_card_find_best_profile_index(card, NULL);
|
if (available == ACP_AVAILABLE_NO) {
|
||||||
acp_card_set_profile(card, index);
|
uint32_t best = acp_card_find_best_profile_index(card, NULL);
|
||||||
|
acp_card_set_profile(card, best);
|
||||||
|
} else if (available == ACP_AVAILABLE_YES) {
|
||||||
|
acp_card_set_profile(card, index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -701,16 +705,20 @@ static void card_port_available(void *data, uint32_t index,
|
||||||
this->params[IDX_EnumRoute].flags ^= SPA_PARAM_INFO_SERIAL;
|
this->params[IDX_EnumRoute].flags ^= SPA_PARAM_INFO_SERIAL;
|
||||||
emit_info(this, false);
|
emit_info(this, false);
|
||||||
|
|
||||||
if (this->props.auto_port && available == ACP_AVAILABLE_NO) {
|
if (this->props.auto_port) {
|
||||||
uint32_t i, index;
|
uint32_t i;
|
||||||
|
|
||||||
for (i = 0; i < p->n_devices; i++) {
|
for (i = 0; i < p->n_devices; i++) {
|
||||||
struct acp_device *d = p->devices[i];
|
struct acp_device *d = p->devices[i];
|
||||||
if (!(d->flags & ACP_DEVICE_ACTIVE))
|
if (!(d->flags & ACP_DEVICE_ACTIVE))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
index = acp_device_find_best_port_index(d, NULL);
|
if (available == ACP_AVAILABLE_NO) {
|
||||||
acp_device_set_port(d, index);
|
uint32_t best = acp_device_find_best_port_index(d, NULL);
|
||||||
|
acp_device_set_port(d, best);
|
||||||
|
} else if (available == ACP_AVAILABLE_YES) {
|
||||||
|
acp_device_set_port(d, index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue