Re: USB audio class - kIOAudioControlUsagePassThru implementation
Re: USB audio class - kIOAudioControlUsagePassThru implementation
- Subject: Re: USB audio class - kIOAudioControlUsagePassThru implementation
- From: Daniel Mack <email@hidden>
- Date: Tue, 1 Jun 2010 19:29:22 +0200
Hi Alison,
[sorry for the multiple postings, but my messages were all rejected by
the mailing list server as their bodies exceeded the configured
maximum of 12kB text size (sic!)]
On Thu, May 20, 2010 at 10:20:24AM -0700, Alison Hughes wrote:
> Brett is right - this is both a USB and a Core-Audio related question.
>
> Here is the algorithm we use in AppleUSBAudio which is dependent on the presence of a mixer in the play through path:
>
> - Hardware play through with mixer unit in path: AUA will publish controls contained in a feature unit between the input terminal and the mixer unit. Searching from the input terminal to the mixer unit, the driver selects the first feature unit that isn't shared with another audio path.
>
> Important note: Play through controls cannot be shared with another audio path because this could result in unwanted side effects. For example, if a play through control is also contained in a record path, muting the play through control would also unintentionally mute the recording input.
>
> Example play through path:
>
> Line Input Terminal ----> Feature Unit* ----> Mixer Unit ----> Feature Unit** ----> Speaker Terminal
>
> * The mute control contained in this feature unit is used to enable the play through path.
> ** The volume/mute controls contained in this feature unit are used to control output volume/mute.
>
> - Hardware play through without mixer unit in path: AUA will publish controls contained in the feature unit closest to the input terminal that isn't shared with another audio path.
>
> Let me know if you need any more information about USB audio controls - I'd be happy to elaborate.
We've now implemented the second approach you outlined, the feature unit
without the mixer unit in the path. What we end up with is a dangling
dead end unit (ID #12 in our case), which just has its SourceID set to
the physical input terminal.
Unfortunately, that doesn't make the driver publish a control
for kIOAudioControlUsagePassThru.
Could you have a quick look at these descriptors and see whether
there's any problem with them?
http://pastebin.com/unFrw6mw
Thanks,
Daniel
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden