Skip to content

AVFAudio macOS xcode15.1 b2

Alex Soto edited this page Jan 3, 2024 · 2 revisions

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

diff -ruN /Applications/Xcode_15.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h /Applications/Xcode_15.1.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h
--- /Applications/Xcode_15.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h	2023-08-16 00:21:05
+++ /Applications/Xcode_15.1.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSession.h	2023-10-13 12:47:57
@@ -19,8 +19,8 @@
 
 // Forward declarations
 @class NSError, NSString, NSNumber;
+@class AVAudioChannelLayout;
 
-
 // =================================================================================================
 #pragma mark-- iOS/tvOS/watchOS AVAudioSession interface --
 
@@ -172,6 +172,10 @@
 - (BOOL)setPrefersNoInterruptionsFromSystemAlerts:(BOOL)inValue error:(NSError**)outError API_AVAILABLE(ios(14.5), watchos(7.3), tvos(14.5)) API_UNAVAILABLE(macos);
 @property (readonly, nonatomic) BOOL prefersNoInterruptionsFromSystemAlerts API_AVAILABLE(ios(14.5), watchos(7.3), tvos(14.5)) API_UNAVAILABLE(macos);
 
+/// Get the currently resolved rendering mode to badge content appropriately.
+/// Clients should use this property to determine what to badge content as.
+@property(readonly) AVAudioSessionRenderingMode renderingMode API_AVAILABLE(ios(17.2), tvos(17.2)) API_UNAVAILABLE(watchos, macos, visionos);
+
 @end
 
 // -------------------------------------------------------------------------------------------------
@@ -341,6 +345,12 @@
 /// The current hardware IO buffer duration in seconds.
 @property (readonly) NSTimeInterval IOBufferDuration API_AVAILABLE(ios(6.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
 
+/// Get an array of channel layouts that the current route supports.
+/// This property is only supported when the output is routed to ports of type AVAudioSessionPortCarAudio or AVAudioSessionPortAirPlay
+/// Otherwise, an empty array will be returned. Note that this will return an empty array if session is inactive.
+/// Clients should listen to AVAudioSessionRenderingCapabilitiesChangeNotification to be notified when this changes.
+@property(readonly) NSArray<AVAudioChannelLayout*>* supportedOutputChannelLayouts API_AVAILABLE(ios(17.2), tvos(17.2)) API_UNAVAILABLE(watchos, macos, visionos);
+
 @end
 
 
@@ -604,6 +614,14 @@
 */
 OS_EXPORT NSNotificationName const  AVAudioSessionSpatialPlaybackCapabilitiesChangedNotification API_AVAILABLE(ios(15.0), watchos(8.0), tvos(15.0)) API_UNAVAILABLE(macos) NS_SWIFT_NAME(AVAudioSession.spatialPlaybackCapabilitiesChangedNotification);
 
+/// Notification sent to registered listeners when the resolved rendering mode changes.
+OS_EXPORT NSNotificationName const  AVAudioSessionRenderingModeChangeNotification API_AVAILABLE(ios(17.2), tvos(17.2)) API_UNAVAILABLE(watchos, macos, visionos) NS_SWIFT_NAME(AVAudioSession.renderingModeChangeNotification);
+
+/*!
+	 @brief Notification sent to registered listeners when the rendering capabilities change.
+ */
+OS_EXPORT NSNotificationName const AVAudioSessionRenderingCapabilitiesChangeNotification API_AVAILABLE(ios(17.2), tvos(17.2)) API_UNAVAILABLE(watchos, macos, visionos) NS_SWIFT_NAME(AVAudioSession.renderingCapabilitiesChangeNotification);
+
 #pragma mark-- Keys for NSNotification userInfo dictionaries --
 
 /// keys for AVAudioSessionSpatialPlaybackCapabilitiesChangedNotification
@@ -644,6 +662,10 @@
 /// keys for AVAudioSessionSilenceSecondaryAudioHintNotification
 /// value is an NSNumber representing an AVAudioSessionSilenceSecondaryAudioHintType
 OS_EXPORT NSString *const AVAudioSessionSilenceSecondaryAudioHintTypeKey API_AVAILABLE(ios(8.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos);
+
+/// keys for AVAudioSessionRenderingModeChangeNotification
+/// Contains a payload of NSInteger representing the new resolved rendering mode
+OS_EXPORT NSString *const AVAudioSessionRenderingModeNewRenderingModeKey API_AVAILABLE(ios(17.2), tvos(17.2)) API_UNAVAILABLE(watchos, macos, visionos);
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_15.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h /Applications/Xcode_15.1.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h
--- /Applications/Xcode_15.0.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h	2023-08-11 00:12:07
+++ /Applications/Xcode_15.1.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AVFAudio.framework/Headers/AVAudioSessionTypes.h	2023-10-13 12:47:56
@@ -606,6 +606,35 @@
 	AVAudioSessionRecordPermissionGranted API_DEPRECATED_WITH_REPLACEMENT("AVAudioApplicationRecordPermissionGranted", ios(8.0, 17.0), watchos(4.0, 10.0)) API_UNAVAILABLE(macos, tvos) = 'grnt'
 };
 
+/*!
+	@enum AVAudioSessionRenderingMode
+	@var  AVAudioSessionRenderingModeNotApplicable
+	@var  AVAudioSessionRenderingModeMonoStereo
+	@var  AVAudioSessionRenderingModeSurround
+	@var  AVAudioSessionRenderingModeSpatialAudio
+	@var  AVAudioSessionRenderingModeDolbyAudio
+	@var  AVAudioSessionRenderingModeDolbyAtmos
+*/
+typedef NS_ENUM(NSInteger, AVAudioSessionRenderingMode) {
+	/// Default Mode when no asset is loaded or playing
+	AVAudioSessionRenderingModeNotApplicable           = 0,
+ 
+	/// Default mode for non multi-channel cases
+	AVAudioSessionRenderingModeMonoStereo              = 1,
+ 
+	/// Default mode for multi-channel cases that do not fall into the modes below
+	AVAudioSessionRenderingModeSurround                = 2,
+
+	/// Fallback mode if provided content is Dolby variant but hardware capabilities don't support it
+	AVAudioSessionRenderingModeSpatialAudio            = 3,
+	
+	/// Dolby Audio mode
+	AVAudioSessionRenderingModeDolbyAudio              = 4,
+	
+	/// Dolby Atmos mode
+	AVAudioSessionRenderingModeDolbyAtmos              = 5,
+} NS_SWIFT_NAME(AVAudioSession.RenderingMode);
+
 #endif // AudioSession_AVAudioSessionTypes_h
 #else
 #include <AudioSession/AVAudioSessionTypes.h>
Clone this wiki locally