Subject: Re: snd-aoa & rates

From: Johannes Berg <[email-masked]>
Date: Tue, 28 Mar 2006 14:15:00 +0200

Hi,

> Current snd-aoa blew up on me at module load btw ... anyway, that's not
> my point here :)

Yeah, keywest programming. Need help, see other mail.

> In fact, I would have been even nastier and only exposed the
> intersection of the above so I don't have to bother about rates that
> digital won't support :) But I suppose that if you really want to
> support 8k or 96k it might make sense to support others.
> 
> Also, for the sample sizes, same comment. Number of bits are not that
> useful. I'd rather have a bitmask of formats: 8 bits, 16 bits msb, 24
> bits msb, maybe lsb versions if supported, ac3, floating point if
> supported, etc... That or an array. I'm sure Alsa already have constants
> defined for those no ? I would then have the codec have a function
> returning the required clocks for a given bitrate/format combination...
> 
> That is all suggestions of course, if you feel that what you do is
> better, then stick to it :)

Yeah I'm doing pretty much exactly this now :)

> Another thing I wouldn't have bothered with is again with whatever
> digital supports or doesn't ... rather that trying to prevent some rates
> from being useable by alsa based on a control that users will typically
> not have means to set at the right time (what about a sound server
> running all the time keeping the drier running, you want to block the
> digital switch ?) what I would do is just "mute" the digital output if a
> format is selected that isn't supported for digital. I would let the
> user chose the formats they want at all time, and only clamp the digital
> enable/disable switch. On this switch, btw, you should then remember the
> user setting: if the user switches it off, remember off. If the user
> switches it on, remember on, If the user sets it on but you have to mute
> it, remember that so that when the sample size/format changes again,
> unmute.

Ok. This behaviour can be done in the codec itself now, there's a
callback :)

> Sames goes for things that may be supported by the digital output and
> not analog (ac3 ?). In this case, mute the analog outputs. The mutes of
> these are controlled externally via the amps so it may be a bit
> complicated, unless you define specific messages to the core for that,
> or maybe just clamp the master volume down in the codec driver.

There have to be callbacks anyway for microphone-detect since that is a
switch on the onyx, not the external amps.

johannes