Re: kAudioUnitErr_Unauthorized and auval
Re: kAudioUnitErr_Unauthorized and auval
- Subject: Re: kAudioUnitErr_Unauthorized and auval
- From: Stefan Gretscher <email@hidden>
- Date: Tue, 7 Feb 2006 14:51:20 +0100
Hi Andrew,
we're aware of this problem, and I've recently talked to Bill Stewart
about it.
The current idea is that Bill's team could change auval so that it
handles kAudioUnitErr_Unauthorized with a separate return code which
is indicating that validation wasn't performed because of
authorization failure, and our team could then adopt Logic so that it
evaluates this new return code and presents corresponding warning
dialogs etc.
Here's the how this could work:
- upon launch, Logic encounters a new or updated AU, it runs auval
for it
- in auval, the AU reports kAudioUnitErr_Unauthorized from Initialize
(), auval stops and exits with corresponding return value
- Logic catches this and presents a dialog with the options to (A)
ignore the AU for this launch or (B) ignore the AU forever or to (C)
launch the AU with UI for authorization
- in case (A), Logic would ignore it during this run and try again
upon next launch
- in case (B), Logic would ignore the AU and save this in its AU
cache forever (but the AU manager would still allow for rescanning
the AU and thus resetting this)
- in case (C), Logic would open the AU and query its UI component and
then launch the UI for this (uninitialized!) AU instance so that the
user can enter challenge/response etc.
when the user closes the UI, both the UI and the AU instance are
released and Logic would loop back to running auval upon the AU as
described above
This is how things would be handled if kAudioUnitErr_Unauthorized is
returned from Initialize(), in case it's returned from OpenAComponent
() the behaviour would be slightly different because then Logic could
not open any UI for such an AU, so such an AU must provide some other
way of handling authorization.
Do think this scheme would work well with your requirements? Any
comments/suggestions?
Best,
Stefan
Am 06.02.2006 um 23:19 schrieb Andrew Kimpton:
To my mind it's not invalid for an AudioUnit to return
kAudioUnitErr_Unauthorized from Initialize() if serial numbers have
not been entered, dongles are not present etc. However auval seems
to persist in pushing the audiounit to answer 'unanswerable'
questions if Initialize() returns the above error. To the point
that auval will ultimately fail validation of a unit since it
'needs to be initialized but can't'. This in turn can lead to tech
support calls since customers don't insert their dongle before
running Logic - they then get the 'failed validation' dialog and
will call us for the update. Furthermore we then need to describe
to them how to launch AUManager in Logic, rescan the unit and
continue on. At least one unnecessary customer call to our
techsupport people.
Short of returning noErr from Initialize() instead of
kAudioUnitErr_Unauthorized and then taking care not to do any 'real
work' I can't see any other solution short of requesting that auval
be changed to treat kAudioUnitErr_Unauthorized as a valid response
that should then prevent it from doing any further work which
requires an initialized unit and not to treat the whole unit as
having failed validation.
Andrew 8-)
P.S. Logic 7.1 actually displays a reasonably worded dialog for
this error - of course most users will not see it since the unit
would not have been listed in the menus for them to select since it
failed validation.
------------------------------------
Stefan Gretscher
plug-in development & 3rd party plug-in support
Logic Pro team, Apple Computer
email: email@hidden
phone: (+49)-4101-495-586
(Central European Timezone)
_______________________________________________
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