in Source/AUMIDIBase.cpp [28:76]
OSStatus AUMIDIBase::DelegateGetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope,
AudioUnitElement inElement, UInt32& outDataSize, bool& outWritable)
{
OSStatus result = noErr;
(void)inScope;
(void)inElement;
(void)outDataSize;
(void)outWritable;
switch (inID) { // NOLINT if/else?!
#if AUSDK_HAVE_XML_NAMES
case kMusicDeviceProperty_MIDIXMLNames:
AUSDK_Require(inScope == kAudioUnitScope_Global, kAudioUnitErr_InvalidScope);
AUSDK_Require(inElement == 0, kAudioUnitErr_InvalidElement);
AUSDK_Require(GetXMLNames(nullptr) == noErr, kAudioUnitErr_InvalidProperty);
outDataSize = sizeof(CFURLRef);
outWritable = false;
break;
#endif
#if AUSDK_HAVE_MIDI_MAPPING
case kAudioUnitProperty_AllParameterMIDIMappings:
AUSDK_Require(mMIDIMapper, kAudioUnitErr_InvalidProperty);
AUSDK_Require(inScope == kAudioUnitScope_Global, kAudioUnitErr_InvalidScope);
AUSDK_Require(inElement == 0, kAudioUnitErr_InvalidElement);
outWritable = true;
outDataSize = sizeof(AUParameterMIDIMapping) * mMIDIMapper->GetNumberMaps();
result = noErr;
break;
case kAudioUnitProperty_HotMapParameterMIDIMapping:
case kAudioUnitProperty_AddParameterMIDIMapping:
case kAudioUnitProperty_RemoveParameterMIDIMapping:
AUSDK_Require(mMIDIMapper, kAudioUnitErr_InvalidProperty);
AUSDK_Require(inScope == kAudioUnitScope_Global, kAudioUnitErr_InvalidScope);
AUSDK_Require(inElement == 0, kAudioUnitErr_InvalidElement);
outWritable = true;
outDataSize = sizeof(AUParameterMIDIMapping);
result = noErr;
break;
#endif
default:
result = kAudioUnitErr_InvalidProperty;
break;
}
return result;
}