• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: USB audio class - kIOAudioControlUsagePassThru implementation
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: USB audio class - kIOAudioControlUsagePassThru implementation


  • Subject: Re: USB audio class - kIOAudioControlUsagePassThru implementation
  • From: Alison Hughes <email@hidden>
  • Date: Thu, 20 May 2010 10:20:24 -0700

Brett is right - this is both a USB and a Core-Audio related question.

Actually, the USB audio class driver *does* indeed support play through using standard USB Audio descriptors.  The driver examines the audio topology contained in the Audio Control descriptors to discover a hardware play-through path and attempts to locate a feature unit that logically should control it.  This feature unit's mute control maps to the "Thru" toggle you see in AMS.  The play though volume controls are also published by AppleUSBAudio but do not appear in AMS or the Sound Preferences pane.  However, they can be accessed via other applications, like the developer audio utility HALLab.  

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.

Hope that helps,
Alison


On May 12, 2010, at 1:00 AM, Daniel Mack wrote:

> On Mon, May 10, 2010 at 07:38:58PM +0200, Daniel Mack wrote:
>> I'm wondering how kIOAudioControlUsagePassThru controls are supposed to
>> be mapped into USB audio class compliant devices. The USB audio standard
>> (v2 in my case) does not describe this kind of control selector
>> specifically, so I would guess the only way is to define an extension
>> unit or to use mixer elements.
>> 
>> The AppleUSBAudioDriver seems to do other fancy things though, and I
>> didn't fully get my head around yet what it really looks for in the
>> descriptors. Can anyone shed some light maybe?
> 
> Any idea, anyone?

I would recommend posting this to the USB group.

Brett.


 _______________________________________________
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

  • Follow-Ups:
    • Re: USB audio class - kIOAudioControlUsagePassThru implementation
      • From: Daniel Mack <email@hidden>
References: 
 >Re: USB audio class - kIOAudioControlUsagePassThru implementation (From: Jeff Moore <email@hidden>)

  • Prev by Date: Re: USB audio class - kIOAudioControlUsagePassThru implementation
  • Next by Date: Re: AudioQueue getting delayed by other audio output of the system
  • Previous by thread: Re: USB audio class - kIOAudioControlUsagePassThru implementation
  • Next by thread: Re: USB audio class - kIOAudioControlUsagePassThru implementation
  • Index(es):
    • Date
    • Thread