The following is a snippet of code I used to get the component list. When I step through with a break points set just after FindNextComponent, and further on where I get name, etc of the component, I see that only apple's components are returned. No errors occur. The only unit excluded is the matrix reverb, because it does not meet my 2 channel input minimum requirement. In this case, my code skips it and moves to the next. Note also that AULabs shows other (non-apple) aufx components I have installed on my system, running under the same user, etc.
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
desc.componentType = kAudioUnitType_Effect;
desc.componentSubType = 0;
desc.componentManufacturer = 0;
comp = NULL;
while(comp = FindNextComponent(comp, &desc)){
if(OpenAComponent(comp, &instance))
continue;
// check supported channels
bytes = sizeof(chanInfo);
err = AudioUnitGetProperty(instance, kAudioUnitProperty_SupportedNumChannels, kAudioUnitScope_Global, 0, &chanInfo, &bytes);
.... Do Useful stuff related to building a list of available processing units and close the component when done ...
}
I also checked the desc variable each time through to make sure it wasn't being modified. What could cause this?
Thanks,
Ethan...