Wer von euch Programmierern weiß, mit wie viel Coding, Debugging und Tests so ein Menü in einer Audio Unit entsteht, der weiß auch Freude darüber zu teilen, die dieses kleine Menü zu so später Stunde hervorruft! :-)
Und hier mal ein leckeres Code-Schnipsel als Appetitanreger dazu:
.
.
.
outParameterInfo.flags += SetAudioUnitParameterDisplayType(0,
kAudioUnitParameterFlag_DisplaySquareRoot);
outParameterInfo.flags += kAudioUnitParameterFlag_IsReadable | kAudioUnitParameterFlag_IsWritable;
if (inScope == kAudioUnitScope_Global)
switch (inParameterID) {
case kGlobalParameter_Volume:
AUBase::FillInParameterName(outParameterInfo, kGlobalVolumeName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
outParameterInfo.minValue = kGlobalVolume_Min;
outParameterInfo.maxValue = kGlobalVolume_Max;
outParameterInfo.defaultValue = kDefault_WaveGen_Volume;
break;
case kGlobalParamater_WaveGen:
AUBase::FillInParameterName(outParameterInfo, kGlobalWaveformName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
outParameterInfo.minValue = kSinWave_Waveform;
outParameterInfo.maxValue = kTriangleWave_Waveform;
outParameterInfo.defaultValue = kDefault_WaveGen_Waveform;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
else
result = kAudioUnitErr_InvalidScope;
.
.
.
Hmmm... lecker!!!
Keine Kommentare:
Kommentar veröffentlichen