Skip to content

AVFAudio iOS xcode16.0 b1

Rolf Bjarne Kvinge edited this page Jul 10, 2024 · 3 revisions

#AVFAudio.framework https://github.com/xamarin/xamarin-macios/pull/20851

diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioApplication.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioApplication.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioApplication.h	2024-04-13 13:16:52
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioApplication.h	2024-05-30 05:03:18
@@ -48,6 +48,7 @@
 
 
 /// Class containing methods that relate to an application bundle's audio (i.e. a collection of one or more AVAudioSession instances)
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(17.0), watchos(10.0), tvos(17.0), macos(14.0)) 
 @interface AVAudioApplication : NSObject
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioChannelLayout.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioChannelLayout.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioChannelLayout.h	2024-04-13 15:12:30
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioChannelLayout.h	2024-05-30 10:26:06
@@ -16,7 +16,7 @@
 		This object is a thin wrapper for the AudioChannelLayout structure, described
 		in <CoreAudio/CoreAudioTypes.h>.
 */
-API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
+NS_SWIFT_SENDABLE API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
 @interface AVAudioChannelLayout : NSObject <NSSecureCoding> {
 @private
 	AudioChannelLayoutTag _layoutTag;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioConverter.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioConverter.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioConverter.h	2024-04-13 13:42:50
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioConverter.h	2024-05-30 10:33:21
@@ -78,6 +78,7 @@
         (because, for example, the desired end frame is at the end of an audio file), then zero
         (silent) trailing frames will be synthesized for the client.
 */
+NS_SWIFT_SENDABLE
 typedef struct AVAudioConverterPrimeInfo {
     AVAudioFrameCount      leadingFrames;
     AVAudioFrameCount      trailingFrames;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEnvironmentNode.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEnvironmentNode.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEnvironmentNode.h	2024-04-13 13:06:07
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioEnvironmentNode.h	2024-05-30 02:20:48
@@ -301,6 +301,11 @@
 */
 @property (nonatomic, readonly) NSArray<NSNumber *> *applicableRenderingAlgorithms;
 
+/*! @property listenerHeadTrackingEnabled
+    @abstract On capable devices, listener orientation will be automatically rotated based on user's head-orientation if enabled.
+*/
+@property (nonatomic, getter=isListenerHeadTrackingEnabled) BOOL listenerHeadTrackingEnabled API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE( watchos, visionos);
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioFile.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioFile.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioFile.h	2024-04-13 13:16:52
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioFile.h	2024-05-30 04:26:28
@@ -26,10 +26,8 @@
 		framePosition property.
 */
 API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
-@interface AVAudioFile : NSObject {
-@private
-	void *_impl;
-}
+@interface AVAudioFile : NSObject
+
 /*! @method initForReading:error:
 	@abstract Open a file for reading.
 	@param fileURL
@@ -92,6 +90,20 @@
 */
 - (nullable instancetype)initForWriting:(NSURL *)fileURL settings:(NSDictionary<NSString *, id> *)settings commonFormat:(AVAudioCommonFormat)format interleaved:(BOOL)interleaved error:(NSError **)outError;
 
+/*! @method close
+	@abstract Close the audio file.
+	@discussion
+		The underlying file will be closed if open.
+
+		- It is normally unnecessary to close a file opened for reading (it will be automatically closed
+		when the object is released)
+		- It is only necessary to close a file opened for writing in order to achieve specific control over
+		when the file's header is updated.
+
+		Note: Once closed, further file read or write operations will fail with kAudio_FileNotFoundError.
+*/
+- (void)close API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), macCatalyst(18.0));
+
 /*! @method readIntoBuffer:error:
 	@abstract Read an entire buffer.
 	@param buffer
@@ -136,6 +148,11 @@
 		Writes sequentially. The buffer's frameLength signifies how much of the buffer is to be written.
 */
 - (BOOL)writeFromBuffer:(const AVAudioPCMBuffer *)buffer error:(NSError **)outError;
+
+/*! @property isOpen
+	@abstract Whether the file is open or not.
+ */
+@property (nonatomic, readonly) BOOL isOpen API_AVAILABLE(macos(15.0), ios(18.0), watchos(11.0), tvos(18.0), macCatalyst(18.0));
 
 /*!	@property url
 	@abstract The URL the file is reading or writing.
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioIONode.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioIONode.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioIONode.h	2024-04-13 13:42:50
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioIONode.h	2024-05-30 10:26:07
@@ -79,6 +79,7 @@
 	@var             duckingLevel
 						 Ducking level of other audio
 */
+NS_SWIFT_SENDABLE
 typedef struct API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(tvos, watchos) AVAudioVoiceProcessingOtherAudioDuckingConfiguration {
 	BOOL enableAdvancedDucking;
 	AVAudioVoiceProcessingOtherAudioDuckingLevel duckingLevel;
@@ -245,7 +246,7 @@
 		In general, when other audio is played during voice chat, applying a higher level of ducking could increase the intelligibility of the voice chat.
 		If not set, the default ducking configuration is to disable advanced ducking, with a ducking level set to AVAudioVoiceProcessingOtherAudioDuckingLevelDefault.
 */
-@property (nonatomic) AVAudioVoiceProcessingOtherAudioDuckingConfiguration voiceProcessingOtherAudioDuckingConfiguration API_AVAILABLE(macos(10.14), ios(17.0)) API_UNAVAILABLE(watchos, tvos);
+@property (nonatomic) AVAudioVoiceProcessingOtherAudioDuckingConfiguration voiceProcessingOtherAudioDuckingConfiguration API_AVAILABLE(macos(14.0), ios(17.0)) API_UNAVAILABLE(watchos, tvos);
 
 @end
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRecorder.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRecorder.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRecorder.h	2024-04-13 20:25:36
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRecorder.h	2024-05-30 05:03:18
@@ -19,6 +19,7 @@
     @class AVAudioRecorder
     @abstract An object that records audio data to a file.
  */
+NS_SWIFT_SENDABLE 
 API_AVAILABLE(macos(10.7), ios(3.0), watchos(4.0), tvos(17.0))
 @interface AVAudioRecorder : NSObject {
 @private
@@ -185,6 +186,7 @@
     @protocol AVAudioRecorderDelegate
     @abstract A protocol for delegates of AVAudioRecorder.
  */
+NS_SWIFT_SENDABLE
 API_AVAILABLE(macos(10.7), ios(3.0), watchos(4.0), tvos(17.0))
 @protocol AVAudioRecorderDelegate <NSObject>
 @optional 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRoutingArbiter.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRoutingArbiter.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRoutingArbiter.h	2024-04-13 15:12:31
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioRoutingArbiter.h	2024-05-30 03:38:03
@@ -45,6 +45,7 @@
     @constant   AVAudioRoutingArbitrationCategoryPlayAndRecordVoice
         Appropriate for Voice over IP(VoIP) applications.
 */
+API_AVAILABLE(macos(11.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos)
 typedef NS_ENUM(NSInteger, AVAudioRoutingArbitrationCategory) {
     AVAudioRoutingArbitrationCategoryPlayback           = 0,
     AVAudioRoutingArbitrationCategoryPlayAndRecord      = 1,
@@ -55,7 +56,8 @@
     @class      AVAudioRoutingArbiter
     @brief      The interface to participate in audio routing arbitration.
 */
-API_AVAILABLE(macos(11.0)) API_UNAVAILABLE(ios, watchos, tvos)
+NS_SWIFT_SENDABLE
+API_AVAILABLE(macos(11.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos)
 @interface AVAudioRoutingArbiter : NSObject
 
 - (instancetype)init NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSequencer.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSequencer.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSequencer.h	2024-04-13 14:07:10
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSequencer.h	2024-05-30 05:03:18
@@ -44,6 +44,7 @@
 /*! @typedef AVBeatRange
 	@abstract Used to describe a specific time range within an AVMusicTrack.
 */
+NS_SWIFT_SENDABLE
 typedef struct _AVBeatRange {
 	AVMusicTimeStamp start;
 	AVMusicTimeStamp length;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h	2024-04-13 13:06:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h	2024-05-30 03:38:04
@@ -24,6 +24,7 @@
 // =================================================================================================
 #pragma mark-- iOS/tvOS/watchOS AVAudioSession interface --
 
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) 
 @interface AVAudioSession : NSObject {
 @private
@@ -327,7 +328,7 @@
 	an error.
 */
 
-/// The current hardware sample rate
+/// The current hardware sample rate. Is key-value observable (starting iOS 18.0).
 @property (readonly) double sampleRate API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
 
 /// The current number of hardware input channels. Is key-value observable.
@@ -446,7 +447,7 @@
 
 @end // interface for AVAudioSession (RoutingConfiguration)
 
-#if defined(TARGET_OS_VISION) && TARGET_OS_VISION
+#if TARGET_OS_VISION
 /*!
  The perceived "size" or "immersivity" of the sound. Use Small for least
  immersive and Large for most immersive.
@@ -548,7 +549,7 @@
 
 @end // AVAudioSession (NowPlayingCandidacy)
 
-#endif // TARGET_OS_XR
+#endif // TARGET_OS_VISION
 
 
 #pragma mark-- Names for NSNotifications --
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionRoute.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionRoute.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionRoute.h	2024-04-13 13:16:52
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionRoute.h	2024-05-30 04:26:28
@@ -47,6 +47,7 @@
 	AudioQueue, AURemoteIO and AUVoiceIO instances can be assigned to communicate with specific
 	hardware channels by setting an array of <port UID, channel index> pairs.
 */
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) 
 @interface AVAudioSessionChannelDescription : NSObject {
 @private
@@ -68,6 +69,7 @@
 @end
 
 /// Information about one of potentially multiple data sources associated with a port.
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) 
 @interface AVAudioSessionDataSourceDescription : NSObject {
 @private
@@ -124,6 +126,7 @@
 @end // AVAudioSessionDataSourceDescription
 
 /// Information about a port, a physical connector or audio device.
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) 
 @interface AVAudioSessionPortDescription : NSObject {
 @private
@@ -195,6 +198,7 @@
 @end // AVAudioSessionPortDescription
 
 /// A description of the input and output ports which comprise a route.
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) 
 @interface AVAudioSessionRouteDescription : NSObject {
 @private
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h	2024-04-13 20:25:36
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h	2024-05-30 04:26:27
@@ -177,6 +177,7 @@
  AVAudioSessionCategoryOptionDuckOthers and AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers */
 OS_EXPORT AVAudioSessionMode const AVAudioSessionModeVoicePrompt API_AVAILABLE(ios(12.0), watchos(5.0), tvos(12.0)) API_UNAVAILABLE(macos);
 
+
 #pragma mark-- enumerations --
 
 /*!
@@ -379,7 +380,7 @@
 typedef NS_OPTIONS(NSUInteger, AVAudioSessionCategoryOptions) {
     AVAudioSessionCategoryOptionMixWithOthers            = 0x1,
     AVAudioSessionCategoryOptionDuckOthers               = 0x2,
-    AVAudioSessionCategoryOptionAllowBluetooth API_AVAILABLE(tvos(17.0)) API_UNAVAILABLE(watchos, macos) = 0x4,
+    AVAudioSessionCategoryOptionAllowBluetooth API_AVAILABLE(tvos(17.0), watchos(11.0)) API_UNAVAILABLE(macos) = 0x4,
     AVAudioSessionCategoryOptionDefaultToSpeaker API_UNAVAILABLE(tvos, watchos, macos) = 0x8,
     AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers API_AVAILABLE(ios(9.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos) = 0x11,
     AVAudioSessionCategoryOptionAllowBluetoothA2DP API_AVAILABLE(ios(10.0), watchos(3.0), tvos(10.0)) API_UNAVAILABLE(macos) = 0x20,
@@ -417,17 +418,24 @@
  
     @var   AVAudioSessionInterruptionReasonRouteDisconnected
         The audio session was interrupted due to route getting disconnected.
+ 
+	@var   AVAudioSessionInterruptionReasonDeviceUnauthenticated
+		The audio session was interrupted due to device being doffed or locked.
+ 
  */
 typedef NS_ENUM(NSUInteger, AVAudioSessionInterruptionReason) {
     AVAudioSessionInterruptionReasonDefault         = 0,
     AVAudioSessionInterruptionReasonAppWasSuspended API_DEPRECATED("wasSuspended reason no longer present", ios(14.5, 16.0)) = 1,
     AVAudioSessionInterruptionReasonBuiltInMicMuted = 2,
-#if defined(TARGET_OS_VISION) && TARGET_OS_VISION
+#if TARGET_OS_VISION
     ///The audio session was interrupted because its UIScene was backgrounded
     AVAudioSessionInterruptionReasonSceneWasBackgrounded = 3,
-#endif // TARGET_OS_XR
+#endif // TARGET_OS_VISION
     ///The audio session was interrupted because route was disconnected.
-    AVAudioSessionInterruptionReasonRouteDisconnected API_AVAILABLE(ios(17.0), watchos(10.0), tvos(17.0)) API_UNAVAILABLE(macos) = 4
+    AVAudioSessionInterruptionReasonRouteDisconnected API_AVAILABLE(ios(17.0), watchos(10.0), tvos(17.0)) API_UNAVAILABLE(macos) = 4,
+#if TARGET_OS_VISION
+	AVAudioSessionInterruptionReasonDeviceUnauthenticated API_UNAVAILABLE(visionos) = 5,
+#endif // TARGET_OS_VISION
 } NS_SWIFT_NAME(AVAudioSession.InterruptionReason);
 
 ///  options for use when calling setActive:withOptions:error:
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTime.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTime.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTime.h	2024-04-13 13:16:53
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTime.h	2024-05-30 03:38:04
@@ -30,7 +30,7 @@
 	least not be cluttered by ugly multiplications and divisions by the host clock frequency.
 */
 
-API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
+NS_SWIFT_SENDABLE API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))
 @interface AVAudioTime : NSObject {
 @private
 	AudioTimeStamp _ats;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTypes.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTypes.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTypes.h	2024-04-05 22:21:54
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioTypes.h	2024-05-30 04:26:26
@@ -69,6 +69,7 @@
         This struct is used by classes dealing with 3D audio such as `AVAudioMixing`
         and `AVAudioEnvironmentNode` and represents a point in 3D space.
 */
+NS_SWIFT_SENDABLE
 struct AVAudio3DPoint {
     float x;
     float y;
@@ -92,6 +93,7 @@
         This struct is used by classes dealing with 3D audio such as `AVAudioMixing`
         and `AVAudioEnvironmentNode`.
 */
+NS_SWIFT_SENDABLE
 typedef struct AVAudio3DPoint AVAudio3DVector;
 
 /*! @abstract Creates and returns an AVAudio3DVector object
@@ -111,6 +113,7 @@
         vector points in the direction that the listener is facing. The up vector is orthogonal
         to the forward vector and points upwards from the listener's head.
 */
+NS_SWIFT_SENDABLE
 struct AVAudio3DVectorOrientation {
     AVAudio3DVector forward;
     AVAudio3DVector up;
@@ -148,6 +151,7 @@
         listener's head and is directed towards the listener's nose. A positive roll is to the right 
         going from 0 to 180 degrees. A negative roll is to the left going from 0 to -180 degrees.
 */
+NS_SWIFT_SENDABLE
 struct AVAudio3DAngularOrientation {
     float yaw;
     float pitch;
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVFAudio.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVFAudio.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVFAudio.h	2024-04-13 15:12:29
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVFAudio.h	2024-05-30 10:26:05
@@ -5,12 +5,16 @@
 
 #import <AVFAudio/AVAudioBuffer.h>
 #import <AVFAudio/AVAudioChannelLayout.h>
+#import <AVFAudio/AVAudioFormat.h>
+#import <AVFAudio/AVAudioSettings.h>
+#import <AVFAudio/AVAudioTime.h>
+#import <AVFAudio/AVAudioTypes.h>
+#if !0
 #import <AVFAudio/AVAudioConnectionPoint.h>
 #import <AVFAudio/AVAudioConverter.h>
 #import <AVFAudio/AVAudioEngine.h>
 #import <AVFAudio/AVAudioEnvironmentNode.h>
 #import <AVFAudio/AVAudioFile.h>
-#import <AVFAudio/AVAudioFormat.h>
 #import <AVFAudio/AVAudioIONode.h>
 #import <AVFAudio/AVAudioMixerNode.h>
 #import <AVFAudio/AVAudioMixing.h>
@@ -23,11 +27,8 @@
 #endif
 
 #import <AVFAudio/AVAudioSequencer.h>
-#import <AVFAudio/AVAudioSettings.h>
 #import <AVFAudio/AVAudioSinkNode.h>
 #import <AVFAudio/AVAudioSourceNode.h>
-#import <AVFAudio/AVAudioTime.h>
-#import <AVFAudio/AVAudioTypes.h>
 #import <AVFAudio/AVAudioUnit.h>
 #import <AVFAudio/AVAudioUnitComponent.h>
 #import <AVFAudio/AVAudioUnitDelay.h>
@@ -52,6 +53,7 @@
 #import <AVFAudio/AVAudioSessionRoute.h>
 #import <AVFAudio/AVAudioSessionTypes.h>
 #import <AVFAudio/AVAudioSessionDeprecated.h>
+#endif
 #endif
 
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVMusicEvents.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVMusicEvents.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVMusicEvents.h	2024-04-05 22:12:51
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVMusicEvents.h	2024-05-30 10:33:21
@@ -140,7 +140,7 @@
 	AVMIDIControlChangeMessageTypeOmniModeOn			= 125,
 	AVMIDIControlChangeMessageTypeMonoModeOn			= 126,
 	AVMIDIControlChangeMessageTypeMonoModeOff			= 127
-};
+} API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos);
 
 /*!	@class AVMIDIControlChangeEvent
 	@abstract
@@ -333,7 +333,7 @@
 	AVMIDIMetaEventTypeTimeSignature		= 0x58,
 	AVMIDIMetaEventTypeKeySignature			= 0x59,
 	AVMIDIMetaEventTypeProprietaryEvent		= 0x7f
-};
+} API_AVAILABLE(macos(13.0), ios(16.0), tvos(16.0)) API_UNAVAILABLE(watchos);
 
 /*!	@class AVMIDIMetaEvent
 	@abstract
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesis.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesis.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesis.h	2024-04-13 13:42:50
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesis.h	2024-05-30 10:26:07
@@ -107,6 +107,7 @@
  Retrieve a voice by specifying the language code your text should be spoken in, or by using voiceWithIdentifier
  for a known voice identifier.
  */
+NS_SWIFT_SENDABLE
 NS_CLASS_AVAILABLE(10_14, 7_0)
 @interface AVSpeechSynthesisVoice : NSObject<NSSecureCoding>
 
@@ -161,6 +162,7 @@
  @discussion
  To start speaking, specify the AVSpeechSynthesisVoice and the string to be spoken, then optionally change the rate, pitch or volume if desired.
  */
+NS_SWIFT_NONSENDABLE
 NS_CLASS_AVAILABLE(10_14, 7_0)
 @interface AVSpeechUtterance : NSObject<NSCopying, NSSecureCoding>
 
@@ -220,6 +222,7 @@
  @discussion
  Create an instance of AVSpeechSynthesizer to start generating synthesized speech by using AVSpeechUtterance objects.
  */
+NS_SWIFT_NONSENDABLE
 NS_CLASS_AVAILABLE(10_14, 7_0)
 @interface AVSpeechSynthesizer : NSObject
 
@@ -290,6 +293,7 @@
  @abstract
  Defines an interface for delegates of AVSpeechSynthesizer to receive notifications of important speech utterance events.
  */
+NS_SWIFT_SENDABLE
 @protocol AVSpeechSynthesizerDelegate <NSObject>
 
 @optional
@@ -306,6 +310,7 @@
 
 #pragma mark - AVSpeechSynthesisMarker
 
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(16.0), macos(13.0), watchos(9.0), tvos(16.0)) 
 @interface AVSpeechSynthesisMarker : NSObject <NSSecureCoding, NSCopying>
 
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesisProvider.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesisProvider.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesisProvider.h	2024-04-13 13:06:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVSpeechSynthesisProvider.h	2024-05-30 04:26:28
@@ -29,6 +29,7 @@
  
         An @c AVSpeechSynthesisProviderVoice will surface as an @c AVSpeechSynthesisVoice when using @c AVSpeechSynthesisVoice.speechVoices(). The quality will always be listed as @c .enhanced
  */
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(16.0), macos(13.0), watchos(9.0), tvos(16.0)) 
 @interface AVSpeechSynthesisProviderVoice : NSObject <NSSecureCoding, NSCopying>
 
@@ -98,6 +99,7 @@
     An @c AVSpeechSynthesisProviderRequest gets delivered to an @c AVSpeechSynthesisProviderAudioUnit in order to synthesize audio.
     This is distinct from an @c AVSpeechUtterance, which is a generic utterance to be spoken.
  */
+NS_SWIFT_SENDABLE
 API_AVAILABLE(ios(16.0), macos(13.0), watchos(9.0), tvos(16.0)) 
 @interface AVSpeechSynthesisProviderRequest : NSObject <NSSecureCoding, NSCopying>
 
@@ -126,6 +128,7 @@
  */
 
 #if __has_include(<AudioToolbox/AUAudioUnit.h>)
+NS_SWIFT_NONSENDABLE
 API_AVAILABLE(ios(16.0), macos(13.0), tvos(16.0)) API_UNAVAILABLE(watchos) 
 @interface AVSpeechSynthesisProviderAudioUnit : AUAudioUnit
 
Clone this wiki locally