*/
/*=============================================================================
AUParamInfo.cpp
-
+
=============================================================================*/
#include "AUParamInfo.h"
#include "CAXException.h"
-AUParamInfo::AUParamInfo (AudioUnit inAU,
- bool inIncludeExpert,
+AUParamInfo::AUParamInfo (AudioUnit inAU,
+ bool inIncludeExpert,
bool inIncludeReadOnly,
AudioUnitScope inScope,
AudioUnitElement inElement)
UInt32 size;
OSStatus result = AudioUnitGetPropertyInfo(mAU, kAudioUnitProperty_ParameterList, inScope, mElement, &size, NULL);
if (size == 0 || result) return;
-
+
int nparams = size / sizeof(AudioUnitPropertyID);
mParamListID = new AudioUnitParameterID[nparams];
memset (mParamListID, 0xFF, size);
AudioUnitParameterID *paramList = new AudioUnitParameterID[nparams];
-
+
result = AudioUnitGetProperty(mAU, kAudioUnitProperty_ParameterList, mScope, mElement, paramList, &size);
if (result) {
delete [] mParamListID;
mParamListID = NULL;
return;
}
-
+
ParameterMap params;
- for (int i = 0; i < nparams; ++i)
+ for (int i = 0; i < nparams; ++i)
{
CAAUParameter auvp (mAU, paramList[i], mScope, mElement); // took out only using global scope in CAAUParameter creation
const AudioUnitParameterInfo ¶mInfo = auvp.ParamInfo();
-
+
// don't include if parameter can't be read or written
- if (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable)
+ if (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable)
&& !(paramInfo.flags & kAudioUnitParameterFlag_IsReadable))
continue;
// only include if expert params wanted
if (!inIncludeExpert && auvp.IsExpert())
continue;
-
+
// only include if read only params are wanted
- if (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable)
+ if (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable)
&& (paramInfo.flags & kAudioUnitParameterFlag_IsReadable))
- {
+ {
if (!inIncludeReadOnly)
continue;
}
-
+
mParamListID[mNumParams] = paramList[i];
mNumParams++;
-
+
// ok - if we're here, then we have a parameter we are going to display.
UInt32 clump = 0;
auvp.GetClumpID (clump);
}
UInt32 AUParamInfo::NumParamsForClump (UInt32 inClump) const
-{
+{
ParameterMap::const_iterator it = mParams.find(inClump);
- if (it != mParams.end())
+ if (it != mParams.end())
return (*it).second.size();
return 0;
}