[pulseaudio-discuss] Purpose of ports that represent multiple UCM devices?
Jaroslav Kysela
perex at perex.cz
Sun Jun 14 13:18:35 UTC 2020
Dne 10. 06. 20 v 11:20 Arun Raghavan napsal(a):
> On Wed, 10 Jun 2020, at 5:15 AM, Tanu Kaskinen wrote:
>> Hi,
>>
>> I did some work in PulseAudio's UCM code, and I got frustrated by the
>> "combined port" concept. We spend a lot of effort supporting the case
>> where one port represents multiple UCM devices, but I don't understand
>> why we do that. Do you know some use case for that? I would like to
>> drop the feature altogether.
>
> UCM has the notion of being able to have multiple concurrently active devices in a verb. For example, for a phone with headphones plugged in, when a ringtone/alarm needs to be played, you might want to enable the handset and headphone device.
>
> This is done with the SupportedDevices/ConflictDevices options in UCM.
>
> While the use case is still relevant, I'm not sure if there are better ways to do this. I'll let Jaroslav chime in on that.
At first, there's a bug in the PA code which skips the combination of the
devices without both supported/conflicting lists:
diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
index 1dfb0e08b..9f7a84c52 100644
--- a/src/modules/alsa/alsa-ucm.c
+++ b/src/modules/alsa/alsa-ucm.c
@@ -1182,9 +1182,6 @@ static int ucm_check_conformance(
return 0;
}
}
- } else { /* not support any other devices */
- pa_log_debug("Not support any other devices");
- return 0;
}
pa_log_debug("Device added to combination, number %d", dev_num + 1);
... but the specification is really straight about this case (use-case.h):
"Note that at most one of the supported/conflicting devs lists has
any entries, and when neither is present, all devices are supported."
So my above patch will follow the specification.
The simultaneous use of UCM devices is allowed. But I agree that the usability
for the desktop is a bit questionable. Users mostly expect to route the audio
to one device.
Jaroslav
>
> Cheers,
> Arun
>
--
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
More information about the pulseaudio-discuss
mailing list