+ for (size_t i = 0; i < output_elements; ++i) {
+ unit->Reset (kAudioUnitScope_Output, i);
+ AudioStreamBasicDescription fmt;
+ err = unit->GetFormat (kAudioUnitScope_Output, i, fmt);
+ if (err == noErr) {
+ bus_outputs[i] = fmt.mChannelsPerFrame;
+ }
+ CFStringRef name;
+ UInt32 sz = sizeof (CFStringRef);
+ if (AudioUnitGetProperty (unit->AU(), kAudioUnitProperty_ElementName, kAudioUnitScope_Output,
+ i, &name, &sz) == noErr
+ && sz > 0) {
+ _bus_name_out.push_back (CFStringRefToStdString (name));
+ CFRelease(name);
+ } else {
+ _bus_name_out.push_back (string_compose ("Audio-Bus %1", i));
+ }
+ }
+
+ for (size_t i = 0; i < input_elements; ++i) {
+ unit->Reset (kAudioUnitScope_Input, i);
+ AudioStreamBasicDescription fmt;
+ err = unit->GetFormat (kAudioUnitScope_Input, i, fmt);
+ if (err == noErr) {
+ bus_inputs[i] = fmt.mChannelsPerFrame;
+ }
+ CFStringRef name;
+ UInt32 sz = sizeof (CFStringRef);
+ if (AudioUnitGetProperty (unit->AU(), kAudioUnitProperty_ElementName, kAudioUnitScope_Input,
+ i, &name, &sz) == noErr
+ && sz > 0) {
+ _bus_name_in.push_back (CFStringRefToStdString (name));
+ CFRelease(name);
+ } else {
+ _bus_name_in.push_back (string_compose ("Audio-Bus %1", i));
+ }
+ }