At Tue, 20 Nov 2007 01:51:51 +0100, Lennart Poettering wrote:
Hi!
A few days ago I sent the attached emails to Takashi and filed a couple of bugs on the ALSA BTS. Takashi suggested to post these issues on the ML as well, to allow public discussion. So, here we go.
The relevant bugs are:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3570 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3569 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3568 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3572 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3571
Thanks. Let's work on them in traditional tactics, divide and conquer. Here, the first one:
/usr/include/alsa/mixer.h contains this comment:
/* Simple (legacy) mixer elements API */
What does the "legacy" exactly mean? Shouldn't I be using it in new code? I am currently looking for some way I can find out which PCM channel for a stream on something like "surround51:0" maps to which mixer element. How am I supposed to implement something like this without stuff like the snd_mixer_selem_channel_id_t?
The "legacy" here seems to mean a legacy-style mixer elements API, not as a deprecated API. The abstraction is done for the playback/capture volumes and switches and channels are re-composed to match with the traditional channel setting. In the earlier version, it had no enum controls, too.
The mapping between the mixer element and the PCM element is a missing piece, together with the PCM channel mapping. I think we'll be able to implement both features together.
Takashi