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));
}
示例#5
0
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;
}
示例#6
0
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;
}