--- src/plugins/macosx/ao_macosx.c.orig 2017-10-08 11:11:26.000000000 -0700 +++ src/plugins/macosx/ao_macosx.c 2017-10-08 11:12:01.000000000 -0700 @@ -258,10 +258,6 @@ { OSStatus err; AudioDeviceID aid; - AudioObjectPropertyAddress propertyAddress; - propertyAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice; - propertyAddress.mScope = kAudioObjectPropertyScopeGlobal; - propertyAddress.mElement = kAudioObjectPropertyElementMaster; /* First see if it's a valid device UID */ { @@ -273,7 +269,7 @@ kCFAllocatorNull); if (!namestr) return kAudioObjectUnknown; - err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &propertyAddress, 0, NULL, &size, &avt); + err = AudioHardwareGetProperty(kAudioHardwarePropertyDeviceForUID, &size, &avt); CFRelease(namestr); if (!err && aid != kAudioObjectUnknown) return isAudioOutputDevice(aid) ? aid : kAudioObjectUnknown; @@ -289,7 +285,7 @@ if (!lcname) return kAudioObjectUnknown; /* no memory */ lowercasestr(lcname); - err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &propertyAddress, 0, NULL, &size, devices); + err = AudioHardwareGetPropertyInfo(kAudioHardwarePropertyDevices, &size, NULL); if (err) { free(lcname); return kAudioObjectUnknown; @@ -299,7 +295,7 @@ free(lcname); return kAudioObjectUnknown; /* no memory */ } - err = AudioObjectGetPropertyData(kAudioObjectSystemObject, &propertyAddress, 0, NULL, &size, devices); + err = AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &size, devices); if (err) { free(lcname); free(devices); @@ -339,13 +335,15 @@ } /* Check the source name too */ size = sizeof(srcnum); - AudioObjectPropertyAddress address = { kAudioDevicePropertyVolumeScalar, kAudioDevicePropertyScopeInput, 0 }; - err = AudioObjectGetPropertyData(devices[i], &address, 0, NULL, &size, &srcnum); + err = AudioDeviceGetProperty(devices[i], 0, FALSE, kAudioDevicePropertyDataSource, + &size, &srcnum); if (!err) { CFStringRef srcstr; AudioValueTranslation avt = {&srcnum, sizeof(srcnum), &srcstr, sizeof(srcstr)}; size = sizeof(avt); - err = AudioObjectGetPropertyData(devices[i], &address, 0, NULL, &size, &avt); + err = AudioDeviceGetProperty(devices[i], 0, FALSE, + kAudioDevicePropertyDataSourceNameForIDCFString, + &size, &avt); if (!err && srcstr) { srcname = cfstringdupe(srcstr); CFRelease(srcstr); @@ -410,8 +408,8 @@ { ao_macosx_internal *internal = (ao_macosx_internal *) device->internal; OSStatus result = noErr; - AudioComponent comp; - AudioComponentDescription desc; + Component comp; + ComponentDescription desc; AudioStreamBasicDescription requestedDesc; AURenderCallbackStruct input; UInt32 i_param_size, requestedEndian; @@ -423,14 +421,14 @@ desc.componentFlags = 0; desc.componentFlagsMask = 0; - comp = AudioComponentFindNext (NULL, &desc); + comp = FindNextComponent (NULL, &desc); if (comp == NULL) { aerror("Failed to start CoreAudio: AudioComponentFindNext returned NULL"); return 0; } /* Open & initialize the default output audio unit */ - result = AudioComponentInstanceNew (comp, &internal->outputAudioUnit); + result = OpenAComponent (comp, &internal->outputAudioUnit); if (result) { aerror("AudioComponentInstanceNew() error => %d\n",(int)result); return 0; @@ -445,7 +443,7 @@ sizeof(internal->outputDevice)); if (result) { aerror("AudioComponentSetDevice() error => %d\n",(int)result); - AudioComponentInstanceDispose(internal->outputAudioUnit); + CloseComponent(internal->outputAudioUnit); return 0; } } @@ -725,9 +723,9 @@ return 0; } - status = AudioComponentInstanceDispose(internal->outputAudioUnit); + status = CloseComponent(internal->outputAudioUnit); if (status) { - awarn("AudioComponentInstanceDispose returned %d\n", (int)status); + awarn("CloseComponent returned %d\n", (int)status); return 0; } }else