• 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
kAudioObjectPropertyControlList and control properties
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

kAudioObjectPropertyControlList and control properties


  • Subject: kAudioObjectPropertyControlList and control properties
  • From: Dominic Feira <email@hidden>
  • Date: Tue, 13 Nov 2012 19:48:53 -0500

I am poking around core audio to look at the AudioControls that belong to a specified device.  I have run into several problems.  All of these observations are with built-in audio (both input and output) on my MacBook Pro 13-inch, Mid 2010 running 10.8.2.  I have also tried an external USB microphone with similarly disappointing results.

1. kAudioObjectPropertyControlList is returning empty data

I am able to get kAudioObjectPropertyOwnedObjects from a device, but when I ask for kAudioObjectPropertyControlList the data that I get back is empty. The size of the data is correct.  It's supposed to be an array of AudioObjectIDs, but the entire array is zeros.

I work around this problem by iterating through the kAudioObjectPropertyOwnedObjects and comparing the AudioClassID to the enumerated types in AudioHardwareBase.h.  For example I can see that one of the owned objects returned is of class kAudioJackControlClassID and I know that is a control.

2. kAudioObjectPropertyBaseClass returns kAudioHardwareUnknownPropertyError for all AudioControls

When I ask an AudioControl for it's class ID I get the expected result.  For example I see that one is kAudioJackControlClassID.  However, when I ask for it's kAudioObjectPropertyBaseClass I get kAudioHardwareUnknownPropertyError. I would like to be able to directly determine that a control is kAudioBooleanControlClassID, but I am unable to.  Instead I'm having to determine that kAudioJackControlClassID is a kAudioBooleanControlClassID because it is defined as such in the header.  This leads to some extra code that should be unnecessary.

If I ask a stream or audio device for it's base class I get the correct answer, kAudioObjectClassID.

3. kAudioControlPropertyScope and kAudioControlPropertyElement return kAudioHardwareUnknownPropertyError for all AudioControls

Similarily when I ask for kAudioControlPropertyScope or kAudioControlPropertyElement from an AudioControl it is returning kAudioHardwareUnknownPropertyError.  I would like to programmatically determine which element of a device the control affects.

I have found very little information about querying AudioControls on a device.  The only reference to them that I have found is providing AudioControls in a HAL Plugin.  Is what I am doing unsupported or deprecated?

-- Dominic
 _______________________________________________
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

  • Prev by Date: Re: .mov into AudioFilePlayer Unit?
  • Next by Date: Re: .mov into AudioFilePlayer Unit?
  • Previous by thread: Re: .mov into AudioFilePlayer Unit?
  • Next by thread: Audio Units - interleaved vs deinterleaved
  • Index(es):
    • Date
    • Thread