Open tomisacat opened 8 years ago
I check out the part for OS X and found maybe you want to make the internal devices enumeration methods implemented like NSArray:
+ (void)enumerateDevicesUsingBlock:(void(^)(EZAudioDevice *device, BOOL *stop))block { if (!block) { return; } // get the present system devices AudioObjectPropertyAddress address = [self addressForPropertySelector:kAudioHardwarePropertyDevices]; UInt32 devicesDataSize; [EZAudioUtilities checkResult:AudioObjectGetPropertyDataSize(kAudioObjectSystemObject, &address, 0, NULL, &devicesDataSize) operation:"Failed to get data size"]; // enumerate devices NSInteger count = devicesDataSize / sizeof(AudioDeviceID); AudioDeviceID *deviceIDs = (AudioDeviceID *)malloc(devicesDataSize); // fill in the devices [EZAudioUtilities checkResult:AudioObjectGetPropertyData(kAudioObjectSystemObject, &address, 0, NULL, &devicesDataSize, deviceIDs) operation:"Failed to get device IDs for available devices on OSX"]; BOOL stop = NO; for (UInt32 i = 0; i < count; i++) { AudioDeviceID deviceID = deviceIDs[i]; EZAudioDevice *device = [[EZAudioDevice alloc] init]; device.deviceID = deviceID; device.manufacturer = [self manufacturerForDeviceID:deviceID]; device.name = [self namePropertyForDeviceID:deviceID]; device.UID = [self UIDPropertyForDeviceID:deviceID]; device.inputChannelCount = [self channelCountForScope:kAudioObjectPropertyScopeInput forDeviceID:deviceID]; device.outputChannelCount = [self channelCountForScope:kAudioObjectPropertyScopeOutput forDeviceID:deviceID]; block(device, &stop); if (stop) { break; } } free(deviceIDs); }
but the part for iOS is not implemented like that.
I check out the part for OS X and found maybe you want to make the internal devices enumeration methods implemented like NSArray:
but the part for iOS is not implemented like that.