• 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: Tue, 1 Jun 2010 16:06:28 -0700

Daniel,

Your descriptors are incorrect.  You must have a complete path for play through.  

I suggest you use a mixer so that you can route both the USB streaming and microphone inputs to the speaker terminal.  

Alison


On Jun 1, 2010, at 10:29 AM, Daniel Mack wrote:

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

References: 
 >Re: USB audio class - kIOAudioControlUsagePassThru implementation (From: Daniel Mack <email@hidden>)

  • Prev by Date: Play and Transcode AACP audio stream
  • Next by Date: Re: iPhone input internal mic vs headset.
  • Previous by thread: Re: USB audio class - kIOAudioControlUsagePassThru implementation
  • Next by thread: USB/MIDI controller keyboard and iPad camera connector
  • Index(es):
    • Date
    • Thread