+ cb_offsets = (framecnt_t*) calloc (input_elements, sizeof(uint32_t));
+ bus_inputs = (uint32_t*) calloc (input_elements, sizeof(uint32_t));
+ bus_outputs = (uint32_t*) calloc (output_elements, sizeof(uint32_t));
+
+ for (size_t i = 0; i < output_elements; ++i) {
+ AudioUnitReset (unit->AU(), kAudioUnitScope_Output, i);
+ AudioStreamBasicDescription fmt;
+ UInt32 sz = sizeof(AudioStreamBasicDescription);
+ err = AudioUnitGetProperty(unit->AU(), kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, i, &fmt, &sz);
+ if (err == noErr) {
+ bus_outputs[i] = fmt.mChannelsPerFrame;
+ }
+ CFStringRef name;
+ 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));
+ }
+ }