[alsa-devel] Balanced output support for Xonar: Patches for Virtuoso driver to add mixer option for balanced mono output (PCM179x dacs)
Christian Wisner-Carlson
christian at freedomofknowledge.org
Wed Nov 3 05:50:13 CET 2010
>> It allows for 4 balanced outputs, 8 unbalanced outputs, or any
>> combination of balanced and unbalanced outputs. HOWEVER, it adds 4
>> mixer controls and the code isn't very pretty.
>
> The controller can route any stereo pair to each DAC, so it would be a
> good idea to have one global control that also affects this routing so
> that, e.g., configuring the card for 4 outputs works correctly when
> playing 4-channel data.
Currently, routing is set up by void oxygen_update_dac_routing(struct
oxygen *chip) in oxygen_mixer.c.
However, it only allows for five different routing configurations,
which it statically defines internally as int reg_values[5].
Do you mind (ie, would you mind merging/using it) if I defined a new struct:
struct oxygen_routing_table = {
u8 channels;
unsigned int dac0;
unsigned int dac1;
unsigned int dac2;
unsigned int dac3;
}
that would be passed to oxygen_update_dac_routing() as a new field of
struct oxygen? This would allow for
arbitrary routing configurations for the dacs (needed to implement 4
channel balanced output) and would
not require many changes to the driver as a whole. Where should I
define this struct? (ie, in what file?)
Thanks,
Christian Wisner-Carlson
More information about the Alsa-devel
mailing list