25.07.2014 19:31, David Henningsson wrote: > In case all other profiles fail, try this fallback mapping as well. > It allows the device to specify the channel count, so it can be used > for devices that only supports being opened in multichannel mode. > > Signed-off-by: David Henningsson <david.henningsson at canonical.com> > --- > src/modules/alsa/alsa-mixer.c | 1 + > src/modules/alsa/mixer/profile-sets/default.conf | 11 +++++++++-- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c > index 57d56c0..ed4b75b 100644 > --- a/src/modules/alsa/alsa-mixer.c > +++ b/src/modules/alsa/alsa-mixer.c > @@ -3861,6 +3861,7 @@ static int mapping_verify(pa_alsa_mapping *m, const pa_channel_map *bonus) { > static const struct description_map well_known_descriptions[] = { > { "analog-mono", N_("Analog Mono") }, > { "analog-stereo", N_("Analog Stereo") }, > + { "generic", N_("Generic") }, > { "analog-surround-21", N_("Analog Surround 2.1") }, > { "analog-surround-30", N_("Analog Surround 3.0") }, > { "analog-surround-31", N_("Analog Surround 3.1") }, > diff --git a/src/modules/alsa/mixer/profile-sets/default.conf b/src/modules/alsa/mixer/profile-sets/default.conf > index a481efa..978551b 100644 > --- a/src/modules/alsa/mixer/profile-sets/default.conf > +++ b/src/modules/alsa/mixer/profile-sets/default.conf > @@ -107,7 +107,7 @@ device-strings = hw:%f > channel-map = mono > paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono > paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic > -priority = 1 > +priority = 2 > > [Mapping analog-stereo] > device-strings = front:%f hw:%f > @@ -165,7 +165,7 @@ direction = output > # device name standardized in alsa. > device-strings = hw:%f > channel-map = aux0,aux1,aux2,aux3 > -priority = 1 > +priority = 2 > direction = input I don't quite understand why the above priority changes are needed. If I understand the previous patches correctly, priority order only matters when comparing two non-fallback mappings or two fallback mappings. Other than that, the series looks OK as a stopgap solution for such essentially-multichannel cards until ALSA gains an "upmix if needed, but don't downmix" flag in itself. > > [Mapping iec958-stereo] > @@ -203,6 +203,13 @@ priority = 4 > direction = output > paths-output = hdmi-output-0 > > +[Mapping generic] > +device-strings = hw:%f > +channel-map = left,right > +exact-channels = false > +fallback = yes > +priority = 1 > + > ; An example for defining multiple-sink profiles > #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] > #description = Foobar