Skip to content

CoreAudio macOS xcode13.0 beta1

TJ Lambert edited this page Aug 17, 2021 · 3 revisions

#CoreAudio.framework https://github.com/xamarin/xamarin-macios/pull/12463

diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioDriverPlugIn.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioDriverPlugIn.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioDriverPlugIn.h	2021-03-16 04:44:10.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioDriverPlugIn.h	2021-06-01 21:22:17.000000000 -0400
@@ -155,7 +155,7 @@
     @param          inDevice
                         The AudioDevice to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to query.
     @param          inPropertyID
@@ -187,7 +187,7 @@
     @param          inDevice
                         The AudioDevice to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to query.
     @param          inPropertyID
@@ -224,7 +224,7 @@
                         relative to the device's time base. NULL means execute the change
                         immediately.
     @param          inChannel
-                        The channel of the property to change where 0 is the master channel.
+                        The channel of the property to change where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to change.
     @param          inPropertyID
@@ -255,7 +255,7 @@
     @param          inIOAudioStream
                         The IOAudioStream to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to query.
     @param          outSize
@@ -287,7 +287,7 @@
     @param          inIOAudioStream
                         The IOAudioStream to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to query.
     @param          ioPropertyDataSize
@@ -324,7 +324,7 @@
                         relative to the device's time base. NULL means execute the change
                         immediately.
     @param          inChannel
-                        The channel of the property to change where 0 is the master channel.
+                        The channel of the property to change where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to change.
     @param          inPropertyDataSize
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h	2021-03-16 09:54:39.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardware.h	2021-06-02 11:07:10.000000000 -0400
@@ -467,7 +467,7 @@
     @enum           AudioSystemObject Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioSystemObject class.
     @discussion     The AudioSystemObject class is a subclass of the AudioObject class. the class
-                    has just the global scope, kAudioObjectPropertyScopeGlobal, and only a master element.
+                    has just the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioHardwarePropertyDevices
                         An array of the AudioObjectIDs that represent all the devices currently
                         available to the system.
@@ -530,9 +530,9 @@
                         as the property's data. Note that an error is not returned if the UID doesn't
                         refer to any AudioClockDevice. Rather, this property will return 
                         kAudioObjectUnknown as the value of the property.
-    @constant       kAudioHardwarePropertyProcessIsMaster
-                        A UInt32 where 1 means that the current process contains the master instance
-                        of the HAL. The master instance of the HAL is the only instance in which
+    @constant       kAudioHardwarePropertyProcessIsMain
+                        A UInt32 where 1 means that the current process contains the main instance
+                        of the HAL. The main instance of the HAL is the only instance in which
                         plug-ins should save/restore their devices' settings.
     @constant       kAudioHardwarePropertyIsInitingOrExiting
                         A UInt32 whose value will be non-zero if the HAL is either in the midst of
@@ -596,7 +596,7 @@
     kAudioHardwarePropertyTranslateUIDToBox                     = 'uidb',
     kAudioHardwarePropertyClockDeviceList                       = 'clk#',
     kAudioHardwarePropertyTranslateUIDToClockDevice             = 'uidc',
-    kAudioHardwarePropertyProcessIsMaster                       = 'mast',
+    kAudioHardwarePropertyProcessIsMain							= 'main',
     kAudioHardwarePropertyIsInitingOrExiting                    = 'inot',
     kAudioHardwarePropertyUserIDChanged                         = 'euid',
     kAudioHardwarePropertyProcessIsAudible                      = 'pmut',
@@ -659,7 +659,7 @@
     @enum           AudioPlugIn Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioPlugIn class.
     @discussion     The AudioPlugIn class is a subclass of the AudioObject class. the class has just
-                    the global scope, kAudioObjectPropertyScopeGlobal, and only a master element.
+                    the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioPlugInCreateAggregateDevice
                         This property is used to tell a plug-in to create a new
                         AudioAggregateDevice. Its value is only read. The qualifier data for this
@@ -688,7 +688,7 @@
     @abstract       AudioObjectPropertySelector values provided by the AudioTransportManager class.
     @discussion     The AudioTransportManager class is a subclass of the AudioPlugIn class. The
                     class has just the global scope, kAudioObjectPropertyScopeGlobal, and only a
-                    master element.
+                    main element.
     @constant       kAudioTransportManagerCreateEndPointDevice
                         This property is used to tell a transport manager to create a new
                         AudioDevice. Its value is only read. The qualifier data for this
@@ -873,7 +873,7 @@
     @discussion     The AudioDevice class is a subclass of the AudioObjectClass. The class has four
                     scopes, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyScopeInput,
                     kAudioObjectPropertyScopeOutput, and kAudioObjectPropertyScopePlayThrough. The
-                    class has a master element and an element for each channel in each stream
+                    class has a main element and an element for each channel in each stream
                     numbered according to the starting channel number of each stream.
     @constant       kAudioDevicePropertyPlugIn
                         An OSStatus that contains any error codes generated by loading the IOAudio
@@ -954,12 +954,16 @@
                         as measured by its time stamps.
     @constant       kAudioDevicePropertyClockDevice
                         A CFString that contains the UID for the AudioClockDevice that is currently
-                        serving as the master time base of the device. The caller is responsible
+                        serving as the main time base of the device. The caller is responsible
                         for releasing the returned CFObject.
-	@constant		kAudioDevicePropertyIOThreadOSWorkgroup
-						An os_workgroup_t that represents the thread workgroup the AudioDevice's
-						IO thread belongs to. The caller is responsible for releasing the returned
-						object.
+    @constant       kAudioDevicePropertyIOThreadOSWorkgroup
+                        An os_workgroup_t that represents the thread workgroup the AudioDevice's
+                        IO thread belongs to. The caller is responsible for releasing the returned
+                        object.
+	@constant		kAudioDevicePropertyProcessMute
+						A UInt32 where a non-zero value indicates that the current process's audio
+						will be zeroed out by the system. Note that this property does not apply to
+						aggregate devices, just real, physical devices.
 */
 CF_ENUM(AudioObjectPropertySelector)
 {
@@ -977,7 +981,8 @@
     kAudioDevicePropertyIOProcStreamUsage               = 'suse',
     kAudioDevicePropertyActualSampleRate                = 'asrt',
     kAudioDevicePropertyClockDevice                     = 'apcd',
-    kAudioDevicePropertyIOThreadOSWorkgroup				= 'oswg'
+    kAudioDevicePropertyIOThreadOSWorkgroup             = 'oswg',
+    kAudioDevicePropertyProcessMute						= 'appm'
 };
 
 /*!
@@ -1527,21 +1532,21 @@
 #define kAudioAggregateDeviceSubDeviceListKey   "subdevices"
 
 /*!
-    @defined        kAudioAggregateDeviceMasterSubDeviceKey
+    @defined        kAudioAggregateDeviceMainSubDeviceKey
     @discussion     The key used in a CFDictionary that describes the composition of an
                     AudioAggregateDevice. The value for this key is a CFString that contains the
-                    UID for the sub-device that is the master time source for the
+                    UID for the sub-device that is the time source for the
                     AudioAggregateDevice.
 */
-#define kAudioAggregateDeviceMasterSubDeviceKey "master"
+#define kAudioAggregateDeviceMainSubDeviceKey "master"
 
 /*!
     @defined        kAudioAggregateDeviceClockDeviceKey
     @discussion     The key used in a CFDictionary that describes the composition of an
                     AudioAggregateDevice. The value for this key is a CFString that contains the
-                    UID for the clock device that is the master time source for the
-                    AudioAggregateDevice. If the aggregate device includes both a master audio
-                    device and a clock device, the clock device will control the master time base.
+                    UID for the clock device that is the time source for the
+                    AudioAggregateDevice. If the aggregate device includes both a main audio
+                    device and a clock device, the clock device will control the time base.
 */
 #define kAudioAggregateDeviceClockDeviceKey     "clock"
 
@@ -1588,15 +1593,15 @@
                         The keys for this CFDicitionary are defined in the AudioAggregateDevice
                         Constants section. The caller is responsible for releasing the returned
                         CFObject.
-    @constant       kAudioAggregateDevicePropertyMasterSubDevice
+    @constant       kAudioAggregateDevicePropertyMainSubDevice
                         A CFString that contains the UID for the AudioDevice that is currently
-                        serving as the master time base of the aggregate device. The caller is
+                        serving as the time base of the aggregate device. The caller is
                         responsible for releasing the returned CFObject.
     @constant       kAudioAggregateDevicePropertyClockDevice
                         A CFString that contains the UID for the AudioClockDevice that is currently
-                        serving as the master time base of the aggregate device. If the aggregate
-                        device includes both a master audio device and a clock device, the clock
-                        device will control the master time base. Setting this property will enable
+                        serving as the time base of the aggregate device. If the aggregate
+                        device includes both a main audio device and a clock device, the clock
+                        device will control the time base. Setting this property will enable
                         drift correction for all subdevices in the aggregate device. The caller is
                         responsible for releasing the returned CFObject.
 */
@@ -1605,7 +1610,7 @@
     kAudioAggregateDevicePropertyFullSubDeviceList      = 'grup',
     kAudioAggregateDevicePropertyActiveSubDeviceList    = 'agrp',
     kAudioAggregateDevicePropertyComposition            = 'acom',
-    kAudioAggregateDevicePropertyMasterSubDevice        = 'amst',
+    kAudioAggregateDevicePropertyMainSubDevice          = 'amst',
     kAudioAggregateDevicePropertyClockDevice            = 'apcd'
 };
 
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h	2021-03-16 04:44:10.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareBase.h	2021-06-02 11:07:10.000000000 -0400
@@ -82,7 +82,7 @@
                     information about an AudioObject.
     @discussion     The element selects one of possibly many items in the section of the object in
                     which to look for the property. Elements are number sequentially where 0
-                    represents the master element. Elements are particular to an instance of a
+                    represents the main element. Elements are particular to an instance of a
                     class, meaning that two instances can have different numbers of elements in the
                     same scope. There is no inheritance of elements.
 */
@@ -189,9 +189,11 @@
     @constant       kAudioObjectPropertyScopePlayThrough
                         The AudioObjectPropertyScope for properties that apply to the play through
                         side of an object.
-    @constant       kAudioObjectPropertyElementMaster
-                        The AudioObjectPropertyElement value for properties that apply to the master
+    @constant       kAudioObjectPropertyElementMain
+                        The AudioObjectPropertyElement value for properties that apply to the main
                         element or to the entire scope.
+    @constant       kAudioObjectPropertyElementMaster
+						The deprecated synonym for kAudioObjectPropertyElementMain
 */
 CF_ENUM(AudioObjectPropertyScope)
 {
@@ -199,7 +201,8 @@
     kAudioObjectPropertyScopeInput          = 'inpt',
     kAudioObjectPropertyScopeOutput         = 'outp',
     kAudioObjectPropertyScopePlayThrough    = 'ptru',
-    kAudioObjectPropertyElementMaster       = 0
+    kAudioObjectPropertyElementMain			= 0,
+    kAudioObjectPropertyElementMaster API_DEPRECATED_WITH_REPLACEMENT("kAudioObjectPropertyElementMain", macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0))	= kAudioObjectPropertyElementMain
 };
 
 /*!
@@ -359,7 +362,7 @@
     @enum           AudioPlugIn Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioPlugIn class.
     @discussion     The AudioPlugIn class is a subclass of the AudioObject class. The class has just
-                    the global scope, kAudioObjectPropertyScopeGlobal, and only a master element.
+                    the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioPlugInPropertyBundleID
                         A CFString that contains the bundle identifier for the AudioPlugIn. The
                         caller is responsible for releasing the returned CFObject.
@@ -434,7 +437,7 @@
     @abstract       AudioObjectPropertySelector values provided by the AudioTransportManager class.
     @discussion     The AudioTransportManager class is a subclass of the AudioPlugIn class. The
                     class has just the global scope, kAudioObjectPropertyScopeGlobal, and only a
-                    master element.
+                    main element.
     @constant       kAudioTransportManagerPropertyEndPointList
                         An array of AudioObjectIDs for all the AudioEndPoint objects the transport
                         manager is tracking.
@@ -480,7 +483,7 @@
     @enum           AudioBox Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioBox class.
     @discussion     The AudioBox class is a subclass of the AudioObject class. The class has just
-                    the global scope, kAudioObjectPropertyScopeGlobal, and only a master element.
+                    the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
                     An AudioBox is a container for other objects (typically AudioDevice objects). An
                     AudioBox publishes identifying information about itself and can be enabled or
                     disabled. A box's contents are only available to the system when the box is
@@ -613,7 +616,7 @@
     @discussion     The AudioDevice class is a subclass of the AudioObjectClass. The class has four
                     scopes, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyScopeInput,
                     kAudioObjectPropertyScopeOutput, and kAudioObjectPropertyScopePlayThrough. The
-                    class has a master element and an element for each channel in each stream
+                    class has a main element and an element for each channel in each stream
                     numbered according to the starting channel number of each stream.
     @constant       kAudioDevicePropertyConfigurationApplication
                         A CFString that contains the bundle ID for an application that provides a
@@ -753,7 +756,7 @@
     @enum           AudioClockDevice Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioClockDevice class.
     @discussion     The AudioClockDevice class is a subclass of the AudioObject class. The class has just
-                    the global scope, kAudioObjectPropertyScopeGlobal, and only a master element.
+                    the global scope, kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioClockDevicePropertyDeviceUID
                         A CFString that contains a persistent identifier for the AudioClockDevice.
                         An AudioClockDevice's UID is persistent across boots. The content of the UID
@@ -847,12 +850,18 @@
 #define kAudioEndPointDeviceEndPointListKey "endpoints"
 
 /*!
-    @defined        kAudioEndPointDeviceMasterEndPointKey
+    @defined        kAudioEndPointDeviceMainEndPointKey
     @discussion     The key used in a CFDictionary that describes the composition of an
                     AudioEndPointDevice. The value for this key is a CFString that contains the UID
-                    for the AudioEndPoint that is the master time source for the
+                    for the AudioEndPoint that is the time source for the
                     AudioEndPointDevice.
 */
+#define kAudioEndPointDeviceMainEndPointKey   "main"
+
+/*!
+    @defined        kAudioEndPointDeviceMasterEndPointKey
+    @discussion     The deprecated synonym for kAudioEndPointDeviceMainEndPointKey
+*/
 #define kAudioEndPointDeviceMasterEndPointKey   "master"
 
 /*!
@@ -1047,7 +1056,7 @@
     @enum           AudioStream Properties
     @abstract       AudioObjectPropertySelector values provided by the AudioStream class.
     @discussion     AudioStream is a subclass of AudioObject and has only the single scope,
-                    kAudioObjectPropertyScopeGlobal. They have a master element and an element for
+                    kAudioObjectPropertyScopeGlobal. They have a main element and an element for
                     each channel in the stream numbered upward from 1.
     @constant       kAudioStreamPropertyIsActive
                         A UInt32 where a non-zero value indicates that the stream is enabled and
@@ -1116,7 +1125,7 @@
     @enum           AudioControl Property Selectors
     @abstract       AudioObjectPropertySelector values provided by the AudioControl class.
     @discussion     The AudioControl class is a subclass of the AudioObject class. The class has
-                    just the global scope, kAudioObjectPropertyScopeGlobal, and only a master
+                    just the global scope, kAudioObjectPropertyScopeGlobal, and only a main
                     element.
     @constant       kAudioControlPropertyScope
                         An AudioServerPlugIn_PropertyScope that indicates which part of a device the
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareDeprecated.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareDeprecated.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareDeprecated.h	2021-03-16 09:54:39.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioHardwareDeprecated.h	2021-06-02 11:07:11.000000000 -0400
@@ -105,7 +105,7 @@
     @enum           AudioLevelControl Properties
     @abstract       AudioObjectPropertySelector values that apply to all AudioLevelControls.
     @discussion     AudioLevelControl is a subclass of AudioControl and has only the single scope,
-                    kAudioObjectPropertyScopeGlobal, and only a master element.
+                    kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioLevelControlPropertyDecibelsToScalarTransferFunction
                         A UInt32 whose value indicates the transfer function the HAL uses to convert
                         between decibel values and scalar values.
@@ -189,7 +189,7 @@
     @enum           AudioSystemObject Properties
     @abstract       AudioObjectPropertySelector values that apply to the AudioSystemObject.
     @discussion     The AudioSystemObject has one scope, kAudioObjectPropertyScopeGlobal, and only a
-                    master element.
+                    main element.
     @constant       kAudioHardwarePropertyRunLoop
                         The CFRunLoopRef the HAL is currently attaching all of its system
                         notification handlers to. In 10.6 and later, the HAL will use the process's
@@ -210,12 +210,15 @@
                         CFString containing a bundle ID into the AudioObjectID of the AudioPlugIn
                         that corresponds to it. This property will return kAudioObjectUnkown if the
                         given bundle ID doesn't match any AudioPlugIns.
+    @constant       kAudioHardwarePropertyProcessIsMaster
+						The deprecated synonym for kAudioHardwarePropertyProcessIsMain
 */
 CF_ENUM(AudioObjectPropertySelector)
 {
     kAudioHardwarePropertyRunLoop                           = 'rnlp',
     kAudioHardwarePropertyDeviceForUID                      = 'duid',
-    kAudioHardwarePropertyPlugInForBundleID                 = 'pibi'
+    kAudioHardwarePropertyPlugInForBundleID                 = 'pibi',
+    kAudioHardwarePropertyProcessIsMaster API_DEPRECATED_WITH_REPLACEMENT("kAudioHardwarePropertyProcessIsMain", macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0)) = 'mast'
 };
 
 /*!
@@ -425,7 +428,7 @@
     @param          inDevice
                         The AudioDevice whose property has changed.
     @param          inChannel
-                        The channel of the property that changed where 0 is the master channel.
+                        The channel of the property that changed where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice changed.
     @param          inPropertyID
@@ -771,7 +774,7 @@
     @param          inDevice
                         The AudioDevice to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to query.
     @param          inPropertyID
@@ -802,7 +805,7 @@
     @param          inDevice
                         The AudioDevice to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to query.
     @param          inPropertyID
@@ -837,7 +840,7 @@
                         relative to the device's time base. NULL means execute the change
                         immediately.
     @param          inChannel
-                        The channel of the property to change where 0 is the master channel.
+                        The channel of the property to change where 0 is the main channel.
     @param          isInput
                         Which section of the AudioDevice to change.
     @param          inPropertyID
@@ -913,6 +916,31 @@
 
 //==================================================================================================
 #pragma mark -
+#pragma mark AudioAggregateDevice Constants
+/*!
+    @defined        kAudioAggregateDeviceMasterSubDeviceKey
+    @discussion     The deprecated synonym for kAudioAggregateDeviceMainSubDeviceKey
+*/
+#define kAudioAggregateDeviceMasterSubDeviceKey "master"
+
+//==================================================================================================
+#pragma mark AudioAggregateDevice Properties
+
+/*!
+    @enum           AudioAggregateDevice Properties
+    @abstract       AudioObjectPropertySelector values provided by the AudioAggregateDevice class.
+    @discussion     AudioAggregateDevice is a subclass of AudioDevice and has the same scope and
+                    element structure.
+    @constant       kAudioAggregateDevicePropertyMasterSubDevice
+                        The deprecated synonym for kAudioAggregateDevicePropertyMainSubDevice
+*/
+CF_ENUM(AudioObjectPropertySelector)
+{
+    kAudioAggregateDevicePropertyMasterSubDevice API_DEPRECATED_WITH_REPLACEMENT("kAudioAggregateDevicePropertyMainSubDevice", macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0))	= kAudioAggregateDevicePropertyMainSubDevice
+};
+
+//==================================================================================================
+#pragma mark -
 #pragma mark AudioStream Types
 
 /*!
@@ -931,7 +959,7 @@
     @param          inStream
                         The AudioStream whose property has changed.
     @param          inChannel
-                        The channel of the property that changed where 0 is the master channel.
+                        The channel of the property that changed where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property that changed.
     @param          inClientData
@@ -1022,7 +1050,7 @@
     @param          inStream
                         The AudioStream to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to query.
     @param          outSize
@@ -1050,7 +1078,7 @@
     @param          inStream
                         The AudioStream to query.
     @param          inChannel
-                        The channel of the property to query where 0 is the master channel.
+                        The channel of the property to query where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to query.
     @param          ioPropertyDataSize
@@ -1082,7 +1110,7 @@
                         relative to the device's time base. NULL means execute the change
                         immediately.
     @param          inChannel
-                        The channel of the property to change where 0 is the master channel.
+                        The channel of the property to change where 0 is the main channel.
     @param          inPropertyID
                         The AudioDevicePropertyID of the property to change.
     @param          inPropertyDataSize
@@ -1170,7 +1198,7 @@
     @enum           AudioControl Properties
     @abstract       AudioObjectPropertySelector values that apply to all AudioControls.
     @discussion     AudioControl is a subclass of AudioObject and has only the single scope,
-                    kAudioObjectPropertyScopeGlobal, and only a master element.
+                    kAudioObjectPropertyScopeGlobal, and only a main element.
     @constant       kAudioControlPropertyVariant
                         A UInt32 that identifies the specific variant of an AudioControl. This
                         allows the owning AudioObject to support controls that are of the same basic
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioServerPlugIn.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioServerPlugIn.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioServerPlugIn.h	2021-03-16 04:44:10.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreAudio.framework/Headers/AudioServerPlugIn.h	2021-06-02 11:07:11.000000000 -0400
@@ -221,13 +221,13 @@
     @field          mOutputTime
                         The time stamp that indicates from where in the device's time line the output
                         data for the new IO cycle will start at.
-    @field          mMasterHostTicksPerFrame
+    @field          mMainHostTicksPerFrame
                         The number of host ticks per frame that the Host's clock is measuring for
-                        the master device.
+                        the main device.
     @field          mDeviceHostTicksPerFrame
                         The number of host ticks per frame that the Host's clock is measuring for
-                        this device. Note that this value will be equal to the master value for
-                        clockless devices or when the device is the master device in an aggregate.
+                        this device. Note that this value will be equal to the main value for
+                        clockless devices or when the device is the main device in an aggregate.
 */
 struct AudioServerPlugInIOCycleInfo
 {
@@ -236,7 +236,11 @@
     AudioTimeStamp  mCurrentTime;
     AudioTimeStamp  mInputTime;
     AudioTimeStamp  mOutputTime;
-    Float64         mMasterHostTicksPerFrame;
+    union
+    {
+		Float64		mMainHostTicksPerFrame;
+		Float64		mMasterHostTicksPerFrame API_DEPRECATED_WITH_REPLACEMENT("mMainHostTicksPerFrame", macos(10.0, 12.0), ios(2.0, 15.0), watchos(1.0, 8.0), tvos(9.0, 15.0));
+	};
     Float64         mDeviceHostTicksPerFrame;
 };
 typedef struct AudioServerPlugInIOCycleInfo AudioServerPlugInIOCycleInfo;
@@ -423,7 +427,7 @@
     @discussion     The AudioDevice class is a subclass of the AudioObjectClass. The class has four
                     scopes, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyScopeInput,
                     kAudioObjectPropertyScopeOutput, and kAudioObjectPropertyScopePlayThrough. The
-                    class has a master element and an element for each channel in each stream
+                    class has a main element and an element for each channel in each stream
                     numbered according to the starting channel number of each stream.
     @constant       kAudioDevicePropertyZeroTimeStampPeriod
                         A UInt32 whose value indicates the number of sample frames the host can
Clone this wiki locally