• 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: IOAudioEngine::createUserClient on Intel iMAC
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IOAudioEngine::createUserClient on Intel iMAC


  • Subject: Re: IOAudioEngine::createUserClient on Intel iMAC
  • From: Jeff Moore <email@hidden>
  • Date: Wed, 22 Mar 2006 11:52:32 -0800

I'm pretty sure that the current version of Xcode for the Intel stuff is 2.2.1. You might also want to check out this tech note: http:// developer.apple.com/technotes/tn2006/tn2163.html

On Mar 22, 2006, at 11:48 AM, Carlos Silva wrote:

Thanks for the info B.J.

Unfortunately, I do not seem to have the header that you speak about.
In my 10.4.0u SDK, my IOAudioEngine.h does not have :

IOReturn createUserClient(task_t task, void *securityID, UInt32 type,
IOAudioEngineUserClient **newUserClient, OSDictionary *properties);

I do not see either the extra parameter for the initWithAudioEngine () of the IOAudioUserClient.h .

I checked if I had all the latest updates for XCode; I have version 2.2.
Any further help would be appreciated.
Carlos





On 22-Mar-06, at 1:56 PM, B.J. Buchalter wrote:

on 3/22/06 1:40 PM, Carlos Silva at email@hidden wrote:

Hello,

We have developed a CoreAudio KEXT that creates its own user client by
overloading the IOAudioEngine::createUserClient, and calling the
IOAudioUserClient::withAudioEngine of a custom overloaded IOAudioUserClient.


On an Intel iMAC, the IOAudioEngine::createUserClient is not called at all but
IOAudioEngine::newUserClient is called.
This works fine i.e. createUserClient is called on a PPC G5.

There is a RADAR on this: rdar://4423103 -- you might want to check with DTS
and see if you can get any more info, but, that being said, this is how you
have to deal with this:


Basically, what happened is that the createUserClient path is called with a
different signature to support Rosetta. Look at the headers in the 10.4.0u
SDK -- there is a new method for IOAudioEngine::createUserClient with an
extra parameter.


IOReturn createUserClient(task_t task, void *securityID, UInt32 type,
IOAudioEngineUserClient **newUserClient, OSDictionary *properties);

You need to override this version of createUserClient (as well as the old
one for PPC builds), and you need to make sure that you pass the properties
parameter into your eventual call to initWithAudioEngine().


Please note that the version of the engine and headers that supports the
extra parameter in initWithAudioEngine() is only in 10.4.0u, so you will
need to special case that code for the __i386__ build of your driver since
the PPC build needs to use the 10.4.x or 10.3.9 SDK -- which does not have
the initWithAudioEngine() with the new parameter.


All of this is required to get you a custom user client on Intel, and is
also required to support Rosetta clients if you have a custom user client.


I ran into this issue as well. One of the CA guys helped me to figure it out
at one of the UB kitchens. At least there is a known answer to this issue
now. AFAIK, this change is still not documented.


Any way to get a technote or a Q&A about this on the developer site guys?

Has the behavior changed?

Yes -- a new entry point to support Rosetta.

How do we create our own user client then?

See above.

Best regards,

B.J. Buchalter

Metric Halo
5 Donovan Drive
Hopewell Junction, NY 12533 USA
tel +1 845 223-6112
fax +1 603 250-2451





_______________________________________________ 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


--

Jeff Moore
Core Audio
Apple


_______________________________________________ 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: IOAudioEngine::createUserClient on Intel iMAC (From: "B.J. Buchalter" <email@hidden>)
 >Re: IOAudioEngine::createUserClient on Intel iMAC (From: Carlos Silva <email@hidden>)

  • Prev by Date: crashing in calls to AudioConverter on 10.3.9
  • Next by Date: Re: MIDI interface UniqueID changes depending on user
  • Previous by thread: Re: IOAudioEngine::createUserClient on Intel iMAC
  • Next by thread: Re: IOAudioEngine::createUserClient on Intel iMAC
  • Index(es):
    • Date
    • Thread