Re: User space driver plug-in problems on Tiger
Re: User space driver plug-in problems on Tiger
- Subject: Re: User space driver plug-in problems on Tiger
- From: Jeff Moore <email@hidden>
- Date: Wed, 1 Jun 2005 11:26:44 -0700
On Jun 1, 2005, at 3:50 AM, Stéphane Letz wrote:
------------------------------
Message: 4
Date: Tue, 31 May 2005 13:10:36 -0700
From: Jeff Moore <email@hidden>
Subject: Re: User space driver plug-in problems on Tiger
To: CoreAudio API <email@hidden>
Message-ID: <email@hidden>
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes;
format=flowed
Catching up on the back log. Sorry for the delay.
kAudioHardwareBadDeviceError is only ever returned when the
AudioDeviceID in question can't be found. How did you get that ID?
The device ID was read in a preference file that was written by
another component that was using kAudioHardwarePropertyDevices
property.
I presume you are referring to. AudioDeviceID's are process-specific
and therefore cannot be passed between processes. The only persistent
ID you can use for this purpose is the device's UID.
Anyway it seems that accessing most of CoreAudio API function fails:
In my plug-in Initialize function, i do :
err = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyDevices,
&outSize, &outWritable);
and the returned outSize value is 0 instead of 4...
The size is 0 when there aren't any devices.
My guess is that you are incorrectly depending on the order of
initialization of the plug-ins, since the device you are looking for
(or any devices for that matter) are available. One of the changes to
the HAL was to make plug-in loading lazier. Chances are this is
scrambling the order of plug-in loading and the plug-in that
implements the device you are looking for hasn't loaded yet.
There have been and continue to be no guarantees about the order of
plug-in loading.
I'm still compiling my plug-in on Panther and basically the plug-
ins still implements the kAudioHardwarePlugInInterface2ID version
of the kAudioHardwarePlugIn interface. Could this be the problem?
Not likely.
I see also that the kAudioHardwarePlugInInterface3ID defines some
new entry-points like InitializeWithObjectID, ObjectShow....
Indeed. The HAL added a new layer of object abstraction on top of the
older model to better support aggregate devices make controls easier
to work with. These methods implement the new model.
Is is absolutely necessary to implements all of them when the plug-
in is running on Tiger?
The HAL is meant to be backward compatible with version 1 and version
2 plug-ins, so it is not required for a plug-in to support the
version 3 interface on Tiger.
What about Panther compatibility?
I'm pretty sure that version 3 plug-ins will be loaded by a version 2
host as a version 2 interface, but I forget all the nitty gritty
details of the COM stuff to be 100% sure.
--
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