<p><br>
>><br>
>> We currently only support one and two channels for volumes, and<br>
>> bail out otherwise. This makes Xonar users unhappy because they<br>
>> have a volume with eight channels, and bailing out means they<br>
>> don't have a path/port at all.<br>
>><br>
>> This way they will at least have a port, which will in turn make<br>
>> the gnome/unity UI behave better.<br>
>><br>
>> BugLink: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=84983">https://bugs.freedesktop.org/show_bug.cgi?id=84983</a><br>
>> BugLink: <a href="https://bugzilla.gnome.org/show_bug.cgi?id=745017">https://bugzilla.gnome.org/show_bug.cgi?id=745017</a><br>
>> Signed-off-by: David Henningsson <<a href="mailto:david.henningsson@canonical.com">david.henningsson@canonical.com</a>><br>
>> ---<br>
>><br>
>> This is a resend of <a href="https://bugs.freedesktop.org/attachment.cgi?id=114250">https://bugs.freedesktop.org/attachment.cgi?id=114250</a><br>
>> There is a competing patch by Raymond in that bug, but I think his<br>
>> patch is broken, so I'm going to push mine in a week if there are no<br>
>> reviews.<br>
><br>
><br>
> Well, here is my review :)<br>
><br>
> While this should work, this patch means that all those users are essentially limited to software-based volume inside of PulseAudio. Also, the master (or whatever multichannel) slider will not be touched by PulseAudio at all. Which means that it will stay at whatever position that alsactl init (or alsactl restore) left it at. I.e. a limited volume range (note: this is not a regression). Which is still better than what we have now.<br>
><br>
> Counterproposal: if that's easier to implement than full multi-channel volume, treat all multichannel volume controls as mono internally, duplicate the volume across all channels when setting it, and use the first channel when getting. I.e., instead of full software volume, make "software balance".<br>
><br>
> As this counterproposal comes without a patch, and especially since the "counterprpopsed" improvement can be done later, this should not block the "going to push in one week" statement.<br>
></p>
<p>What is the usage of e->merged_mask since it is not initialised ?</p>
<p> for (t = 0; t < PA_CHANNEL_POSITION_MAX; t++)<br>
if (PA_CHANNEL_POSITION_MASK(t) & e->merged_mask) {<br>
min_dB[t] = e->min_dB;<br>
max_dB[t] = e->max_dB;<br>
path_volume_channels |= PA_CHANNEL_POSITION_MASK(t);<br>
}</p>
<p>It seem the logic try to skip the first control ( virtual master ) </p>
<p><a href="https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1497666">https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1497666</a></p>
<p>For snd-ca0106 , there is also a virutal master with slaves "Analog xxx Playback Volume" controls which are ignored by pulseaudio </p>