--- 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
