CAComponent::CAComponent (OSType inType, OSType inSubtype, OSType inManu) : mDesc (inType, inSubtype, inManu), mManuName(0), mAUName(0), mCompName(0) { mComp = AudioComponentFindNext (NULL, &mDesc); AudioComponentGetDescription (Comp(), &mDesc); }
CAComponent::CAComponent (const AudioComponent& comp) : mComp (comp), mManuName(0), mAUName(0), mCompName(0) { AudioComponentGetDescription (Comp(), &mDesc); }
CAComponent::CAComponent (const AudioComponentInstance& compInst) : mComp (NULL), mManuName(0), mAUName(0), mCompName(0) { mComp = AudioComponentInstanceGetComponent (compInst); AudioComponentGetDescription (Comp(), &mDesc); }
CAComponent::CAComponent (const AudioComponentDescription& inDesc, CAComponent* next) : mManuName(0), mAUName(0), mCompName(0) { mComp = AudioComponentFindNext ((next ? next->Comp() : NULL), &inDesc); if (mComp) AudioComponentGetDescription(Comp(), &mDesc); else memcpy (&mDesc, &inDesc, sizeof(AudioComponentDescription)); }
OSStatus CAComponent::Restore (CFPropertyListRef &inData) { if (mDesc.Restore (inData)) return paramErr; Clear(); mComp = AudioComponentFindNext (NULL, &mDesc); // this will restore the current flags... if (mComp) AudioComponentGetDescription (Comp(), &mDesc); return noErr; }
AudioComponentDescription ComponentBase::GetComponentDescription() const { AudioComponentDescription desc; OSStatus result; #if CA_DO_NOT_USE_AUDIO_COMPONENT ca_require_noerr (result = ComponentBase_GetComponentDescription (mComponentInstance, desc), home); #else AudioComponent comp = AudioComponentInstanceGetComponent(mComponentInstance); XAssert (comp); if (comp) { ca_require_noerr(result = AudioComponentGetDescription(comp, &desc), home); } else ca_require_noerr(result = -1, home); #endif home: if (result) memset (&desc, 0, sizeof(AudioComponentDescription)); return desc; }