bool SFB::Audio::LibsndfileDecoder::HandlesFilesWithExtension(CFStringRef extension) { if(nullptr == extension) return false; SFB::CFArray supportedExtensions(CreateSupportedFileExtensions()); if(!supportedExtensions) return false; CFIndex numberOfSupportedExtensions = CFArrayGetCount(supportedExtensions); for(CFIndex currentIndex = 0; currentIndex < numberOfSupportedExtensions; ++currentIndex) { CFStringRef currentExtension = (CFStringRef)CFArrayGetValueAtIndex(supportedExtensions, currentIndex); if(kCFCompareEqualTo == CFStringCompare(extension, currentExtension, kCFCompareCaseInsensitive)) return true; } return false; }
bool AudioDecoder::HandlesFilesWithExtension(CFStringRef extension) { if(NULL == extension) return false; CFArrayRef supportedExtensions = CreateSupportedFileExtensions(); if(NULL == supportedExtensions) return false; bool extensionIsSupported = false; CFIndex numberOfSupportedExtensions = CFArrayGetCount(supportedExtensions); for(CFIndex currentIndex = 0; currentIndex < numberOfSupportedExtensions; ++currentIndex) { CFStringRef currentExtension = static_cast<CFStringRef>(CFArrayGetValueAtIndex(supportedExtensions, currentIndex)); if(kCFCompareEqualTo == CFStringCompare(extension, currentExtension, kCFCompareCaseInsensitive)) { extensionIsSupported = true; break; } } CFRelease(supportedExtensions), supportedExtensions = NULL; return extensionIsSupported; }