Skip to content

AudioToolbox iOS xcode13.0 beta3

Rachel Kang edited this page Aug 24, 2021 · 3 revisions

#AudioToolbox.framework https://github.com/xamarin/xamarin-macios/pull/12491

diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h	2021-06-17 03:44:53.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h	2021-07-13 00:39:39.000000000 -0400
@@ -163,6 +163,7 @@
 	AUEventSampleTime		eventSampleTime;	//!< The sample time at which the event is scheduled to occur.
 	AURenderEventType		eventType;			//!< AURenderEventMIDI or AURenderEventMIDISysEx.
 	uint8_t					reserved;			//!< Must be 0.
+	uint8_t					cable;				//!< The virtual cable number.
 	MIDIEventList			eventList;			//!< A structure containing UMP packets.
 } AUMIDIEventList;
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2021-06-22 17:35:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2021-07-13 00:39:40.000000000 -0400
@@ -1102,23 +1102,43 @@
 
 /*!
 	@constant kAudioComponentInstanceInvalidationNotification
-	@abstract Notification generated when an audio unit extension process exits abnormally.
+	@abstract Notification generated when the connection to an audio unit extension process
+			  is invalidated.
 	@discussion
 		Register for this notification name with `[NSNotificationCenter defaultCenter]` or
-		`CFNotificationCenterGetLocalCenter()`. The "object" refers to an AUAudioUnit instance to
-		be observed, or can be nil to observe all instances. The notification's userInfo
-		dictionary contains a key, "audioUnit", an NSValue whose pointerValue is the
-		AudioUnit or AudioComponentInstance which is wrapping the AUAudioUnit communicating with the
-		extension process. (This may be null if there is no such component instance.) For example:
+		`CFNotificationCenterGetLocalCenter()`. The "object" refers to an AUAudioUnit instance
+		to be observed, or can be nil to observe all instances.
+
+		This notification can happen for several reasons, for instance the connection being
+		invalidated or the process abnormally ending. There can be multiple notifications for
+		the same event (i.e. a terminated process will also invalidate the connection).
+
+		The notification's userInfo dictionary may contain the following keys, depending on
+		the reason for the invalidation and the platform in which it's running:
+
+		@"audioUnit", a NSValue whose pointerValue is the AudioUnit or
+		AudioComponentInstance which is wrapping the AUAudioUnit communicating with
+		the extension process. (This may be null if there is no such component instance.).
+		For example:
 
 	```
-	[[NSNotificationCenter defaultCenter] addObserverForName:(NSString *)kAudioComponentInstanceInvalidationNotification object:nil queue:nil usingBlock:^(NSNotification *note) {
+	[[NSNotificationCenter defaultCenter]
+			addObserverForName:(NSString *)kAudioComponentInstanceInvalidationNotification
+				 	    object:nil queue:nil usingBlock:^(NSNotification *note) {
 		AUAudioUnit *auAudioUnit = (AUAudioUnit *)note.object;
 		NSValue *val = note.userInfo[@"audioUnit"];
 		AudioUnit audioUnit = (AudioUnit)val.pointerValue;
-		NSLog(@"Received kAudioComponentInstanceInvalidationNotification: auAudioUnit %@, audioUnit %p", auAudioUnit, audioUnit);
+		NSLog(@"Received kAudioComponentInstanceInvalidationNotification: auAudioUnit %@, audioUnit %p",
+			auAudioUnit, audioUnit);
 	}];
 	```
+
+		@"Service PID", a NSNumber with the process ID for the service.
+		@"Host PID", a NSNumber with the process ID for the host.
+		@"Executable Path", a NSString with the path for the executable that may be responsible
+		for the abnormal exit.
+		@"Descriptions" a NSArray of NSValues representing byte encoded
+		AudioComponentDescriptions that may be responsible for the abnormal exit.
 */
 extern const CFStringRef kAudioComponentInstanceInvalidationNotification
 												API_AVAILABLE(macos(10.11), ios(9.0), watchos(2.0), tvos(9.0));
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2021-06-22 17:32:30.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2021-07-13 00:39:39.000000000 -0400
@@ -406,7 +406,6 @@
 	
 	@constant		kAudioUnitProperty_ParameterIDName
 						Scope:				any
-						Element:			AudioUnitParameterID of the parameter being queried
 						Value Type:			AudioUnitParameterIDName
 						Access:				read
 
@@ -1403,11 +1402,14 @@
 	@abstract		A block used by an audio unit to send or receive MIDIEventList data.
 	@param eventSampleTime
 					The time in samples at which the MIDI events are to occur.
+	@param cable
+					The virtual cable number associated with this MIDI data.
 	@param eventList
 					One full MIDI, partial MIDI SysEx, or a full SysEx UMP message.
 */
-typedef OSStatus (^ AUMIDIEventListBlock)(AUEventSampleTime					 eventSampleTime,
-										const struct MIDIEventList *		  eventList);
+typedef OSStatus (^ AUMIDIEventListBlock)(AUEventSampleTime					eventSampleTime,
+										  uint8_t 							cable,
+										const struct MIDIEventList *		eventList);
 
 //=====================================================================================================================
 #pragma mark - Parameter Definitions
@@ -2566,7 +2568,8 @@
 						Value Type: UInt32
 						Access: read/write
 							Bypass all processing done by the voice processing unit. When set to 0 
-							(default), the processing is activated otherwise it is disabled.
+							(default), the processing is activated otherwise it is disabled. Voice Isolation
+                            and Wide Spectrum take priority over Bypass.
 
 	@constant		kAUVoiceIOProperty_VoiceProcessingEnableAGC
 	@discussion			Scope: Global
Clone this wiki locally