-
Notifications
You must be signed in to change notification settings - Fork 514
AudioToolbox iOS xcode16.0 b1
Rolf Bjarne Kvinge edited this page Jul 10, 2024
·
3 revisions
#AudioToolbox.framework https://github.com/xamarin/xamarin-macios/pull/20856
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h 2024-04-16 05:17:31
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h 2024-05-30 04:18:14
@@ -1077,6 +1077,19 @@
*/
@property (NS_NONATOMIC_IOSONLY, copy, nullable) NSString *contextName;
+/*! @property migrateFromPlugin
+ @brief Information for migrating data from other audio plug-ins to the v3 Audio Unit architecture.
+ @discussion
+ This can be used to migrate settings from an older Audio Unit; this allows manufacturers
+ to deprecate older Audio Units and replace them with new ones. The data for the older Audio Unit is
+ an array of NSData representing byte encoded AudioUnitOtherPluginDescs to migrate from.
+ Can also be used to migrate from a v2 to a v3 Audio Unit.
+
+ Bridged to the v2 property kAudioUnitMigrateProperty_FromPlugin.
+*/
+@property (NS_NONATOMIC_IOSONLY, readonly) NSArray* migrateFromPlugin API_AVAILABLE(macos(13.0), ios(16.0), watchos(9.0), tvos(16.0));
+
+
/*! @property supportsMPE
@brief Specifies whether an audio unit supports Multi-dimensional Polyphonic Expression.
@discussion
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h 2024-04-16 05:17:31
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h 2024-05-30 03:13:57
@@ -240,7 +240,7 @@
*/
typedef CF_OPTIONS(UInt32, AudioComponentInstantiationOptions) {
kAudioComponentInstantiation_LoadOutOfProcess CF_ENUM_AVAILABLE(10_11, 9_0) = 1,
- kAudioComponentInstantiation_LoadInProcess CF_ENUM_AVAILABLE(10_11, NA) = 2,
+ kAudioComponentInstantiation_LoadInProcess API_AVAILABLE(macos(10.11)) API_UNAVAILABLE(ios) = 2,
kAudioComponentInstantiation_LoadedRemotely API_UNAVAILABLE(macos) = 1u << 31,
};
@@ -306,7 +306,7 @@
ComponentInstanceRecord *, you should not assume that this will always be
compatible and usable with Component Manager calls.
*/
-#if TARGET_OS_IPHONE || (0 && 0) || (defined(AUDIOCOMPONENT_NOCARBONINSTANCES) && AUDIOCOMPONENT_NOCARBONINSTANCES)
+#if TARGET_OS_IPHONE || (0 && 0) || TARGET_OS_LINUX || (defined(AUDIOCOMPONENT_NOCARBONINSTANCES) && AUDIOCOMPONENT_NOCARBONINSTANCES)
typedef struct OpaqueAudioComponentInstance * AudioComponentInstance;
#else
typedef struct ComponentInstanceRecord * AudioComponentInstance;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h 2024-04-25 05:29:48
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h 2024-05-30 05:20:05
@@ -402,6 +402,21 @@
};
typedef struct AudioConverterPrimeInfo AudioConverterPrimeInfo;
+/*! @enum AudioConverterOptions
+ @constant kAudioConverterOption_Unbuffered
+ This is an option for AudioConverterNewWithOptions which removes unnecessary
+ buffering, both for input and internally to the converter, saving memory
+ at the cost of reduced format support and usage restrictions:
+
+ - Input and output formats must be constant bit-rate, non-zero bytes per packet
+ (e.g. linear PCM, a-law, etc.) with the same sample rate and frames per packet.
+ - AudioConverterFillBuffer cannot be used.
+ - AudioConverterFillComplexBuffer cannot be used.
+*/
+typedef CF_OPTIONS(UInt32, AudioConverterOptions) {
+ kAudioConverterOption_Unbuffered = (1 << 16)
+};
+
//=============================================================================
// Errors
//=============================================================================
@@ -453,6 +468,28 @@
//-----------------------------------------------------------------------------
/*!
+ @function AudioConverterPrepare
+ @abstract Optimizes the subsequent creation of audio converters by the current process.
+ @discussion This function performs its work asynchronously. The optional completion block,
+ if provided, is executed once preparation is complete.
+ Although a best effort is made to ensure future audio converters will be created quickly,
+ there are no guarantees.
+
+ @param inFlags
+ Reserved for future use. Pass 0.
+ @param ioReserved
+ Reserved for future use. Pass NULL.
+ @param inCompletionBlock
+ Optional block to execute once preparation is complete. May be NULL.
+ The block is given the OSStatus result of the preparation.
+ */
+extern void
+AudioConverterPrepare( UInt32 inFlags,
+ void * __nullable ioReserved,
+ void (^__nullable inCompletionBlock)(OSStatus)) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
+
+//-----------------------------------------------------------------------------
+/*!
@function AudioConverterNew
@abstract Create a new AudioConverter.
@@ -488,6 +525,12 @@
supported formats. When using a codec, you can use any supported PCM format (as
above); the converter will perform any necessary additional conversion between
your PCM format and the one created or consumed by the codec.
+
+ Note that AudioConverter may change the formats to correct any
+ inconsistent or erroneous values. The actual formats expected and used
+ by the newly created AudioConverter can be obtained by getting the
+ properties `kAudioConverterCurrentInputStreamDescription` and
+ `kAudioConverterCurrentOutputStreamDescription` from it.
*/
extern OSStatus
AudioConverterNew( const AudioStreamBasicDescription * inSourceFormat,
@@ -525,6 +568,30 @@
//-----------------------------------------------------------------------------
/*!
+ @function AudioConverterNewWithOptions
+ @abstract Create a new AudioConverter with one or more options enabled.
+
+ @param inSourceFormat
+ The format of the source audio to be converted.
+ @param inDestinationFormat
+ The destination format to which the audio is to be converted.
+ @param inOptions
+ Flags selecting one or more optional configurations for the AudioConverter.
+ @param outAudioConverter
+ On successful return, points to a new AudioConverter instance.
+ @result An OSStatus result code.
+
+ This is an alternative to AudioConverterNew which supports enabling
+ one or more optional configurations for the new AudioConverter.
+*/
+extern OSStatus
+AudioConverterNewWithOptions(const AudioStreamBasicDescription * inSourceFormat,
+ const AudioStreamBasicDescription * inDestinationFormat,
+ AudioConverterOptions inOptions,
+ AudioConverterRef __nullable * __nonnull outAudioConverter) API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0), visionos(2.0));
+
+//-----------------------------------------------------------------------------
+/*!
@function AudioConverterDispose
@abstract Destroy an AudioConverter.
@@ -679,6 +746,7 @@
The callback may return one or more packets. If this is less than the minimum,
the callback will simply be called again in the near future. Note that ioNumberDataPackets counts
packets in terms of the converter's input format (not its output format).
+ Also note that the callback must provide a whole number of packets.
The callback may be asked to provide multiple input packets in a single call, even for compressed
formats. The callback must update the number of packets pointed to by ioNumberDataPackets
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h 2024-04-05 22:59:46
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h 2024-05-30 04:02:57
@@ -715,10 +715,17 @@
@enum AUSoundIsolation sound types
@brief Constants available as values for parameter kAUSoundIsolation_SoundToIsolate.
+ @constant kAUSoundIsolationSoundType_HighQualityVoice
+ Isolate voice signal from the input signal using high quality voice isolation model
+
@constant kAUSoundIsolationSoundType_Voice
- Isolate voice signal from the input signal.
+ Isolate voice signal from the input signal using standard voice isolation model (default)
+
+ @constant kAUSoundIsolationSoundType_Music
+ Adjust vocal level in the input signal/music using vocal attenuation model
*/
CF_ENUM(long) {
+ kAUSoundIsolationSoundType_HighQualityVoice API_AVAILABLE(macos(15.0), ios(18.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 0,
kAUSoundIsolationSoundType_Voice API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 1
};
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h 2024-04-16 04:36:17
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h 2024-05-30 03:13:57
@@ -2070,9 +2070,11 @@
@abstract The collection of Instrument Unit Property IDs
@constant kMusicDeviceProperty_MIDIXMLNames
- @discussion Scope:
- Value Type:
- Access:
+ @discussion Scope: Global
+ Value Type: CFURLRef
+ Access: read
+
+ This property's value specifies a URL to a local file containg the XML Instrument description.
@constant kMusicDeviceProperty_PartGroup
@discussion Scope: Part
@@ -3002,9 +3004,9 @@
kAudioUnitProperty_SpatialMixerAttenuationCurve = 3013,
kAudioUnitProperty_SpatialMixerOutputType = 3100,
kAudioUnitProperty_SpatialMixerPointSourceInHeadMode = 3103,
- kAudioUnitProperty_SpatialMixerEnableHeadTracking API_AVAILABLE(macos(12.3)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3111,
- kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3113,
- kAudioUnitProperty_SpatialMixerAnyInputIsUsingPersonalizedHRTF API_AVAILABLE(macos(14.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3116
+ kAudioUnitProperty_SpatialMixerEnableHeadTracking API_AVAILABLE(macos(12.3), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos, visionos) = 3111,
+ kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode API_AVAILABLE(macos(13.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos) = 3113,
+ kAudioUnitProperty_SpatialMixerAnyInputIsUsingPersonalizedHRTF API_AVAILABLE(macos(14.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos) = 3116
};
/*!
@@ -3120,9 +3122,9 @@
head-related transfer function (HRTF).
*/
typedef CF_ENUM(UInt32, AUSpatialMixerPersonalizedHRTFMode) {
- kSpatialMixerPersonalizedHRTFMode_Off CF_SWIFT_NAME(off) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 0,
- kSpatialMixerPersonalizedHRTFMode_On CF_SWIFT_NAME(on) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 1,
- kSpatialMixerPersonalizedHRTFMode_Auto CF_SWIFT_NAME(auto) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 2
+ kSpatialMixerPersonalizedHRTFMode_Off CF_SWIFT_NAME(off) API_AVAILABLE(macos(13.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos) = 0,
+ kSpatialMixerPersonalizedHRTFMode_On CF_SWIFT_NAME(on) API_AVAILABLE(macos(13.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos) = 1,
+ kSpatialMixerPersonalizedHRTFMode_Auto CF_SWIFT_NAME(auto) API_AVAILABLE(macos(13.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos) = 2
};
/*!
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status