41 #ifndef __CAComponent_h__
42 #define __CAComponent_h__
44 #if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
46 #include <ConditionalMacros.h>
49 #include "CAComponentDescription.h"
55 : mComp (0), mDesc(), mManuName(0), mAUName(0), mCompName(0) {}
58 CAComponent (
const AudioComponentDescription& inDesc, CAComponent* next = 0);
60 CAComponent (
const CAComponent& y)
61 : mComp (0), mDesc(), mManuName(0), mAUName(0), mCompName(0) { *
this = y; }
63 CAComponent (
const AudioComponent& comp);
65 CAComponent (
const AudioComponentInstance& compInst);
67 CAComponent (OSType inType, OSType inSubtype = 0, OSType inManu = 0);
71 CAComponent& operator= (
const CAComponent& y);
74 bool IsValid ()
const {
return Comp() != 0; }
76 bool HasAUStrings()
const { SetCompNames ();
return mManuName != 0; }
81 CFStringRef GetAUManu ()
const { SetCompNames ();
return mManuName; }
82 CFStringRef GetAUName ()
const { SetCompNames ();
return mAUName ? mAUName : mCompName; }
85 CFStringRef GetCompName ()
const { SetCompNames();
return mCompName; }
87 const CAComponentDescription& Desc ()
const {
return mDesc; }
89 OSStatus Open (AudioComponentInstance& outInst)
const
91 return AudioComponentInstanceNew (Comp(), &outInst);
94 OSStatus GetVersion (UInt32 &outVersion)
const;
96 const AudioComponent& Comp()
const {
return mComp; }
98 void Print(FILE* file = stdout)
const;
100 OSStatus Save (CFPropertyListRef *outData)
const;
102 OSStatus Restore (CFPropertyListRef &inData);
105 AudioComponent mComp;
106 CAComponentDescription mDesc;
108 CFStringRef mManuName, mAUName, mCompName;
110 void SetCompNames ()
const;
111 void SetCompInfo ()
const;