-
Notifications
You must be signed in to change notification settings - Fork 516
PHASE iOS xcode13.0 beta3
Manuel de la Pena edited this page Jul 29, 2021
·
2 revisions
#PHASE.framework https://github.com/xamarin/xamarin-macios/pull/12098
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEAssetRegistry.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEAssetRegistry.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEAssetRegistry.h 2021-06-17 14:34:30.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEAssetRegistry.h 2021-07-13 00:42:35.000000000 -0400
@@ -117,6 +117,9 @@
/*!
@method registerGlobalMetaParameter:error
@abstract Register a global metaparameter with the asset registry.
+ @note
+ This function is synchronous and thread-safe.
+ Clients can safely run this function to register multiple global metaparameters from multiple threads, if required.
@param metaParameterDefinition
The metaparameter object to register.
@param error
@@ -132,10 +135,13 @@
/*!
@method registerSoundEventAssetWithRootNode:identifier:error
@abstract Register a sound event asset with the asset registry.
+ @note
+ This function is synchronous and thread-safe.
+ Clients can safely run this function to register multiple sound event assets from multiple threads, if required.
@param rootNode
The root node of the sound event asset to register.
@param identifier
- The identifier to assign to this object. Nil generates an automatic identifier.
+ An identifier that uniquely represents this sound event asset. Nil generates an automatic identifier.
@param error
The error object in case of an error
@return
@@ -151,12 +157,11 @@
@abstract Register an audio file as a sound asset in the system.
@note
This function is synchronous and thread-safe.
- While it could potentially take some time to preprocess the asset into the runtime format,
- you can run this function for multiple assets in multiple threads to speed up the loading process.
+ Clients can safely run this function to register multiple sound assets from multiple threads, if required.
@param url
The URL of the audio file.
@param identifier
- The identifier to assign to this sound asset. Nil generates an automatic identifier.
+ An identifier that uniquely represents this sound event asset. Nil generates an automatic identifier.
@param assetType
The asset type for this sound asset.
@param channelLayout
@@ -184,11 +189,10 @@
@abstract Register audio data as a sound asset in the system.
@note
This function is synchronous and thread-safe.
- While it could potentially take some time to preprocess the asset into the runtime format,
- you can run this function for multiple assets in multiple threads to speed up the loading process.
+ Clients can safely run this function to register multiple sound assets from multiple threads, if required.
@param data
A buffer containing the audio data to register as a sound asset.
- Audio data must either be a single channel-interleaved PCM buffer or per-channel de-interleaved PCM buffers packed back to back.
+ Audio data must either be a single PCM buffer of interleaved channels or multiple deinterleaved PCM buffers per channel packed back to back.
@param identifier
The identifier to assign to this sound asset. Nil generates an automatic identifier.
@param format
@@ -209,16 +213,16 @@
/*!
- @method unregisterAssetWithIdentifier
+ @method unregisterAssetWithIdentifier:completion:
@abstract Unregister and unload an asset.
@param identifier
The identifier of the PHASEAsset object to unregister
- @param completionBlock
+ @param handler
An optional completion block that will be called when the asset has been unregistered.
Once you receive this callback, it's safe to deallocate external resources, if applicable.
*/
-- (void)unregisterAssetWithIdentifier:(NSString*)identifier completionBlock:(nullable void (^)(bool success))completionBlock
-NS_SWIFT_NAME(unregisterAsset(identifier:completionBlock:));
+- (void)unregisterAssetWithIdentifier:(NSString*)identifier completion:(void (^_Nullable)(bool success))handler
+NS_SWIFT_NAME(unregisterAsset(identifier:completion:));
/*!
@method assetForIdentifier
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDirectivityModel.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDirectivityModel.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDirectivityModel.h 2021-06-17 03:44:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDirectivityModel.h 2021-07-13 00:42:34.000000000 -0400
@@ -118,6 +118,9 @@
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEDirectivityModelParameters : NSObject
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
@end
#pragma mark - PHASECardioidDirectivityModelParameters
@@ -130,12 +133,6 @@
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASECardioidDirectivityModelParameters : PHASEDirectivityModelParameters
-- (instancetype)init
-API_DEPRECATED_WITH_REPLACEMENT("-initWithSubbandParameters:", macos(10.16, 11.0), ios(14.0, 14.0));
-
-@property(nonatomic, strong, readonly) NSMutableArray<PHASECardioidDirectivityModelSubbandParameters*>* subbands
-API_DEPRECATED_WITH_REPLACEMENT("-initWithSubbandParameters:", macos(10.16, 11.0), ios(14.0, 14.0));
-
- (instancetype)initWithSubbandParameters: (NSArray<PHASECardioidDirectivityModelSubbandParameters*>*) subbandParameters;
/*!
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDucker.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDucker.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDucker.h 2021-06-17 14:34:30.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEDucker.h 2021-07-13 00:34:47.000000000 -0400
@@ -16,7 +16,7 @@
/****************************************************************************************************/
/*!
@interface PHASEDucker
- @abstract A PHASEDucker is used to describe the ducking behavior across different groups.
+ @abstract A PHASEDucker is used to describe ducking behavior across different groups.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEDucker : NSObject
@@ -27,19 +27,21 @@
/*!
@method initWithSourceGroups:targetGroups:attenuation:attackTime:releaseTime:
@discussion
- Whenever a sound from any source group plays, all the sounds in the target groups will be
+ Whenever a generator node from any source group plays, all the generator nodes in the target groups will be
ducked by the given gain using the given attack and release times.
@note
- The ducker is initialially inactive. You must call activate() to make it active.
- The ducker must also be deactivated with a call to deactivate() before you can release it from memory.
+ The ducker is initialially inactive. The client must call activate() to make it active.
+ Once a ducker is active, it will listen for generator nodes to start playback in source groups. Once triggered, it will duck its target groups.
+ Deactivating a ducker will make it stop listening. Furthermore, it will enter the release phase if it has been previously triggered.
+ Dealloc'ing a ducker will force the ducker into its release phase if it is actively ducking and remove it from the system when it finishes.
@param engine
- The engine to register this ducker with.
+ The engine to register this ducker with.
@param sourceGroups
- Thesource groups that will trigger the ducker when a sound in one of the source groups starts playback.
+ The source groups that will trigger the ducker when a sound in one of the source groups starts playback.
@param targetGroups
The target groups that will be ducked when a sound in one of the source groups triggers the ducker.
@param gain
- The linear gain scalar amount to apply when the ducker is engaged. A value of 0 means full attenuation, and 1 is no attenuation. Values are clamped to the range [0, 1].
+ The linear gain scalar to apply when the ducker is engaged. 0 means full attenuation. 1 is no attenuation. Values are clamped to the range [0, 1].
@param attackTime
The time for the attenuation gain to ramp into effect.
This value is scaled by unitsPerSecond internally, so can be provided at the client's native time scale.
@@ -74,12 +76,6 @@
-(void)deactivate;
/*!
- @method isActive
- @abstract Returns YES if the ducker is active; otherwise, returns NO.
-*/
--(BOOL)isActive;
-
-/*!
@property sourceGroups
@abstract The source groups that will trigger the ducker when a sound in one of the source groups starts playback.
*/
@@ -92,6 +88,12 @@
@property(nonatomic, readonly, copy) NSSet<PHASEGroup*>* targetGroups;
/*!
+ @property active
+ @abstract YES if the ducker is active; otherwise, NO.
+*/
+@property(readonly, getter=isActive) BOOL active;
+
+/*!
@property gain
@abstract Linear gain scalar.
@note
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroup.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroup.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroup.h 2021-06-22 17:37:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroup.h 2021-07-13 00:42:35.000000000 -0400
@@ -18,8 +18,8 @@
/*!
@interface PHASEGroup
@discussion
- A PHASEGroup allows clients to group sounds into mixing and control hierarchies.
- Clients can set the gain, playback rate, mute and solo all the sounds in a group.
+ A PHASEGroup allows clients to group generator nodes for shared processing.
+ Clients can set the gain and playback rate, as well as mute and solo the generator nodes in a group.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEGroup : NSObject
@@ -29,9 +29,9 @@
/*!
@method initWithIdentifier:
- @abstract Initialize a new group.
+ @abstract Create a new group.
@param identifier
- An identifier to reference this group with.
+ The identifier that uniquely represents this group.
*/
- (instancetype)initWithIdentifier:(NSString*)identifier NS_DESIGNATED_INITIALIZER;
@@ -48,34 +48,38 @@
/*!
@method unregisterFromEngine
- @abstract Removes the group from a PHASEEngine
+ @abstract Unregister the group from a particular engine.
*/
- (void)unregisterFromEngine;
/*!
@method fadeGain:duration:curveType:
- @abstract Apply a gain scalar on the base gain over the specified duration.
+ @abstract Fade the gain of this group over a specified duration and curve.
+ @note
+ The fade gain is applied on top of the base gain of the group.
@param gain
- The gain scalar. Values are clamped to the range [0, 1].
+ A target linear gain scalar. Values are clamped to the range [0, 1].
@param duration
- The duration over which to ramp to the gain scalar. Values must be >= 0.
+ The duration over which to ramp to the target linear gain scalar. Values must be >= 0.
The duration is scaled by unitsPerSecond internally, so can be provided at the client's native time scale.
@param curveType
- The type of curve function that is applied during the fade period.
+ The type of curve function that is applied during the fade.
*/
- (void)fadeGain:(double)gain duration:(double)duration curveType:(PHASECurveType)curveType
NS_SWIFT_NAME(fadeGain(gain:duration:curveType:));
/*!
@method fadeRate:duration:curveType:
- @abstract Apply a rate scalar on the base rate over the specified duration.
+ @abstract Fade the playback rate of this group over a specified duration and curve.
+ @note
+ The fade gain is applied on top of the base gain of the group.
@param rate
- The rate scalar.
+ A target linear rate scalar. Values are clamped to the range [0.25, 4.0].
@param duration
- The duration (scaled by unitsPerSecond) over which to ramp to the rate scalar.
+ The duration over which to ramp to the target linear rate scalar. Values must be >= 0.
The duration is scaled by unitsPerSecond internally, so can be provided at the client's native time scale.
@param curveType
- The type of curve that is applied during the fade period.
+ The type of curve function that is applied during the fade.
*/
- (void)fadeRate:(double)rate duration:(double)duration curveType:(PHASECurveType)curveType
NS_SWIFT_NAME(fadeRate(rate:duration:curveType:));
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroupPreset.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroupPreset.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroupPreset.h 2021-06-17 03:44:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEGroupPreset.h 2021-07-10 09:48:13.000000000 -0400
@@ -19,8 +19,7 @@
@interface PHASEGroupPresetSetting
@abstract A PHASEGroupPresetSetting is an object that holds settings that can be applied to a PHASEGroup object.
@discussion
- These can be manually created and added to a PHASEGroupPreset object,
- or PHASEGroupPreset addGroup can be used to create these inline.
+ These can be either be manually created and added to a PHASEGroupPreset object, or created inline using PHASEGroupPreset addGroup.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEGroupPresetSetting : NSObject
@@ -56,19 +55,19 @@
/*!
@property rate
- @abstract The playback rate setting to apply to the group
+ @abstract Linear rate scalar.
*/
@property(nonatomic, readonly) double rate;
/*!
@property gainCurveType
- @abstract The type of curve to apply to the gain as the preset changes to this new setting..
+ @abstract The type of curve to apply to the gain as the preset changes to this new setting.
*/
@property(nonatomic, readonly) PHASECurveType gainCurveType;
/*!
@property rateCurveType
- @abstract The type of curve to apply to the rate as the preset changes to this new setting..
+ @abstract The type of curve to apply to the rate as the preset changes to this new setting.
*/
@property(nonatomic, readonly) PHASECurveType rateCurveType;
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMaterial.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMaterial.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMaterial.h 2021-06-22 17:37:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMaterial.h 2021-07-13 00:42:34.000000000 -0400
@@ -28,11 +28,7 @@
PHASEMaterialPresetConcrete = 'mCcr',
PHASEMaterialPresetGypsumBoard = 'mGyp',
PHASEMaterialPresetDrywall = 'mDrw',
- PHASEMaterialPresetDoorWoodLight = 'mDWL',
- PHASEMaterialPresetDoorWoodHeavy = 'mDWH',
- PHASEMaterialPresetDoorSoundproof = 'mDsp',
- PHASEMaterialPresetWindowSinglePane = 'mWsp',
- PHASEMaterialPresetWindowDoublePane = 'mWdp',
+ PHASEMaterialPresetWood = 'mWud',
};
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMetaParameter.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMetaParameter.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMetaParameter.h 2021-06-22 17:34:48.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMetaParameter.h 2021-07-13 00:34:47.000000000 -0400
@@ -185,6 +185,8 @@
Create a new mapped range metaparameter definition
@param inputMetaParameterDefinition
The metaparameter that will provide an input for this mapped metaparameter
+ @param envelope
+ The envelope to use.
@param identifier
An optional custom identifier to give to this object
@return
@@ -200,6 +202,8 @@
Create a new mapped range metaparameter definition
@param inputMetaParameterDefinition
The metaparameter that will provide an input for this mapped metaparameter
+ @param envelope
+ The envelope to use.
@return
The new PHASEMappedMetaParameterDefinition object
*/
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMixer.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMixer.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMixer.h 2021-06-17 14:34:30.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEMixer.h 2021-07-13 00:34:48.000000000 -0400
@@ -29,7 +29,9 @@
/****************************************************************************************************/
/*!
@interface PHASEMixerDefinition
- @abstract An base object that defines how audio is rendered to the output.
+ @abstract The base class for a mixer definition.
+ @discussion
+ Mixer definitions control how audio will be rendered to the output in PHASE.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEMixerDefinition : PHASEDefinition
@@ -124,6 +126,8 @@
@abstract Ambient mixer definition.
@discussion
Ambient mixers render audio with spatialization but without environmental effects.
+ Use ambient mixers for content that isn't being simulated in the environment,
+ but should still sound like it's coming from somewhere out in space.
@note
Ambient mixers do not support distance modeling or directivity modeling.
Clients can however set the orientation at initialization time.
@@ -184,6 +188,8 @@
@abstract Channel mixer definition.
@discussion
Channel mixers render audio without spatialization or environmental effects.
+ Use channel mixers for regular stem-based content that needs be rendered directly to the output device, such as stereo music
+ or center channel narrative dialogue.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEChannelMixerDefinition : PHASEMixerDefinition
@@ -192,10 +198,12 @@
+ (instancetype)new NS_UNAVAILABLE;
/*!
- @method initWithChannelLayout:mode:identifier
+ @method initWithChannelLayout:identifier
@abstract Create a new PHASEChannelMixerDefinition
+ @note
+ Any connected sampler must match this channel layout.
@param layout
- The input channel layout for this channel mixer node. Any connected sampler must match this channel layout.
+ The input channel layout.
@param identifier
An optional custom identifier to give to this object
@return
@@ -205,10 +213,12 @@
NS_SWIFT_NAME(init(channelLayout:identifier:));
/*!
- @method initWithChannelLayout:mode
+ @method initWithChannelLayout
@abstract Create a new PHASEChannelMixerDefinition
+ @note
+ Any connected sampler must match this channel layout.
@param layout
- The input channel layout for this channel mixer node. Any connected sampler must match this channel layout.
+ The input channel layout. Any connected sampler must match this channel layout.
@return
A new PHASEChannelMixerDefinition object
*/
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEObject.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEObject.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEObject.h 2021-06-22 17:37:46.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEObject.h 2021-07-13 00:42:34.000000000 -0400
@@ -44,8 +44,7 @@
@return
YES for success
*/
-- (BOOL)addChild:(PHASEObject*)child error:(NSError**)error
-NS_SWIFT_NAME(addChild(child:));
+- (BOOL)addChild:(PHASEObject*)child error:(NSError**)error;
/*!
@method removeChild:
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEOccluder.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEOccluder.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEOccluder.h 2021-06-22 17:37:46.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEOccluder.h 2021-07-13 00:42:34.000000000 -0400
@@ -19,7 +19,7 @@
/****************************************************************************************************/
/*!
@interface PHASEOccluder
- @abstract A PHASEOccluder represents a shape and associated material that can affect sound transmission within the simulated acoustic scene.
+ @abstract A PHASEOccluder represents a shape (with associated materials) that can affect sound transmission within the simulated acoustic scene.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEOccluder : PHASEObject
@@ -34,6 +34,9 @@
@abstract Initialize a new occluder with shapes.
@discussion
The shapes array cannot be empty, otherwise an exception is thrown.
+ @note
+ This function is thread-safe.
+ Clients can safely run this function to create multiple occluders from multiple threads, if required.
*/
- (instancetype)initWithEngine:(PHASEEngine*)engine shapes:(NSArray<PHASEShape*>*)shapes NS_DESIGNATED_INITIALIZER;
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEShape.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEShape.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEShape.h 2021-06-22 17:37:46.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASEShape.h 2021-07-13 00:42:34.000000000 -0400
@@ -39,7 +39,7 @@
/****************************************************************************************************/
/*!
@interface PHASEShape
- @abstract A three-dimensional shape that is used as the physical representation of a source or occluder in a scene.
+ @abstract The physical representation of an object within the simulated acoustic scene.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASEShape : NSObject<NSCopying>
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEvent.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEvent.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEvent.h 2021-06-22 17:37:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEvent.h 2021-07-10 09:48:13.000000000 -0400
@@ -68,62 +68,43 @@
error:(NSError**)error;
/*!
- @method prepareWithCompletionBlock
+ @method prepareWithCompletion
@abstract Prepare the sound event
- @param completionBlock
+ @param handler
The block that will be called when the PHASESoundEvent has finished preparing and is ready to start. Pass in nil for no handler.
@discussion
This function notifies the engine to begin preparing a sound event, then returns immediately.
- Once the sound event is prepared (or has failed to prepare), you will receive a callback via the completionBlock.
- If you call startWithCompletionBlock() before receiving the callback, the sound event will start as soon as it's prepared.
+ Once the sound event is prepared (or has failed to prepare), you will receive a callback via the completion.
+ If you call startWithCompletion() before receiving the callback, the sound event will start as soon as it's prepared.
*/
-- (void)prepareWithCompletionBlock:(void (^)(PHASESoundEventPrepareHandlerReason reason))completionBlock;
+- (void)prepareWithCompletion:(void (^_Nullable)(PHASESoundEventPrepareHandlerReason reason))handler;
/*!
- @method prepareAndReturnError
- @abstract Prepare the sound event
- @discussion
- This function notifies the engine to begin preparing a sound event, then returns immediately.
- If an error occurs while kicking off the work, the function will return false and optionally fill out error.
- */
-- (BOOL)prepareAndReturnError:(NSError* _Nullable *)error;
-
-/*!
- @method startWithCompletionBlock
+ @method startWithCompletion
@abstract Start the sound event
- @param completionBlock
+ @param handler
The block that will be called when the sound event has stopped.
@discussion
This function notifies the engine to start the sound event, then returns immediately.
- Once the sound event is playing (or has failed to start), you will receive a callback via the completionBlock.
+ Once the sound event is playing (or has failed to start), you will receive a callback via the completion.
Playback will begin immediately if the sound event has been prepared; otherwise, it will start as soon as it is finished preparing.
*/
-- (BOOL)startWithCompletionBlock:(void (^)(PHASESoundEventStartHandlerReason reason))completionBlock;
-
-/*!
- @method startAndReturnError
- @abstract Start the sound event
- @discussion
- This function notifies the engine to start the sound event, then returns immediately.
- If an error occurs while kicking off the work, the function will return false and optionally fill out error.
- Playback will begin immediately if the sound event has been prepared; otherwise, it will start as soon as it is finished preparing.
-*/
-- (BOOL)startAndReturnError:(NSError* _Nullable *)error;
+- (void)startWithCompletion:(void (^_Nullable)(PHASESoundEventStartHandlerReason reason))handler;
/*!
- @method seekToTime:completionBlock
+ @method seekToTime:completion
@abstract Seeks all leaf nodes in a PHASESoundEvent to a specified time relative to the start of the sound event.
@discussion
This function notifies the engine to seek the sound event, then returns immediately.
- Once the sound event has seeked to the new offset (or has failed to seek), you will receive a callback via the completionBlock.
+ Once the sound event has seeked to the new offset (or has failed to seek), you will receive a callback via the completion.
If any leaf nodes do not support seeking, those nodes will ignore this command.
Nodes that have finished playing or have stopped will not seek.
Nodes that are sleeping will seek, and will resume at the correct time when they wake up.
@note
The time is scaled by unitsPerSecond internally, so can be provided at the client's native time scale.
*/
-- (BOOL)seekToTime:(double)time completionBlock:(nullable void (^)(PHASESoundEventSeekHandlerReason reason))completionBlock
-NS_SWIFT_NAME(seek(time:completionBlock:));
+- (void)seekToTime:(double)time completion:(nullable void (^)(PHASESoundEventSeekHandlerReason reason))handler
+NS_SWIFT_NAME(seek(to:completion:));
/*!
@method pause
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEventNodes.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEventNodes.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEventNodes.h 2021-06-17 03:44:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESoundEventNodes.h 2021-07-13 00:38:56.000000000 -0400
@@ -43,16 +43,16 @@
PHASEPushStreamBufferInterruptsAtLoop = 1UL << 3 // 0x08
};
-#pragma mark - PHASEPushStreamCompletionCallbackType
+#pragma mark - PHASEPushStreamCompletionCallbackCondition
/*!
- @enum PHASEPushStreamCompletionCallbackType
+ @enum PHASEPushStreamCompletionCallbackCondition
@abstract Specifies when the completion handler must be invoked.
@constant PHASEPushStreamCompletionDataRendered
The buffer data has been rendered by the player.
This does not account for any signal processing latencies downstream of the player in the engine.
*/
-typedef NS_ENUM(NSInteger, PHASEPushStreamCompletionCallbackType) {
+typedef NS_ENUM(NSInteger, PHASEPushStreamCompletionCallbackCondition) {
PHASEPushStreamCompletionDataRendered = 0,
};
@@ -61,7 +61,12 @@
/****************************************************************************************************/
/*!
@interface PHASESoundEventNodeDefinition
- @abstract The base class for a sound event node definition
+ @abstract The base class for a sound event node definition.
+ @discussion
+ Sound event nodes are a hierarchical collection of objects that either generate or control playback of audio content in PHASE.
+ Generator nodes produce audio. They are always leaf nodes in a node hierarchy. These include samplers and push stream nodes.
+ Control nodes set the logic for how generator nodes are selected, mixed and parameterized before downstream mixer processing.
+ Control nodes are always parent nodes, and can be organized into hierarchies for complex sound design scenarios.
*/
OS_EXPORT API_AVAILABLE(macos(12.0), ios(15.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos)
@interface PHASESoundEventNodeDefinition : PHASEDefinition
@@ -71,7 +76,7 @@
/*!
@property children
- @abstract The sound event node definition children of this node definition.
+ @abstract The children of this node definition.
*/
@property(readonly, copy) NSArray<PHASESoundEventNodeDefinition*>* children;
@@ -156,7 +161,7 @@
/****************************************************************************************************/
/*!
@interface PHASESamplerNodeDefinition
- @abstract An object for defining a sampler sound event node when building a sound event.
+ @abstract Sampler node definition.
@discussion
Sampler nodes play back registered sound assets.
*/
@@ -192,7 +197,7 @@
mixerDefinition:(PHASEMixerDefinition*)mixerDefinition NS_DESIGNATED_INITIALIZER;
/*! @property assetIdentifier
- @abstract The identifier that uniquely references the registered sound asset this sampler will play.
+ @abstract The identifier that uniquely represents the registered sound asset this sampler will play.
*/
@property(nonatomic, strong, readonly) NSString* assetIdentifier;
@@ -260,8 +265,7 @@
@param subtree
Add a subtree of PHASESoundEventNodeDefinition nodes beneath this node.
*/
-- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree
-NS_SWIFT_NAME(addSubtree(subtree:));
+- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree;
@end
@@ -473,8 +477,7 @@
@param switchValue
A string value that the metaparameter will use to activate this subtree
*/
-- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree switchValue:(NSString*)switchValue
-NS_SWIFT_NAME(addSubtree(subtree:switchValue:));
+- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree switchValue:(NSString*)switchValue;
/*!
@property mixerDefinition
@@ -522,10 +525,9 @@
A PHASESoundEventNodeDefinition that will be a child node of this random node
@param weight
The probability weight of this subtree. Higher numbers compared to other subtree weights will increase the likelihood of being
- chosen.
+ chosen. This value must be greater than or equal to 1, and is clamped otherwise.
*/
-- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree weight:(NSNumber*)weight
-NS_SWIFT_NAME(addSubtree(subtree:weight:));
+- (void)addSubtree:(PHASESoundEventNodeDefinition*)subtree weight:(NSNumber*)weight;
/*! @property uniqueSelectionQueueLength
@abstract Subtrees will not be repeated until after this random node is activated uniqueSelectionQueueLength number of times.
@@ -654,8 +656,8 @@
or when the player is stopped, at which point the buffer can be recycled.
*/
- (void)scheduleBuffer:(AVAudioPCMBuffer*)buffer
- completionCallbackType:(PHASEPushStreamCompletionCallbackType)completionCallbackType
- completionHandler:(void (^)(PHASEPushStreamCompletionCallbackType callbackType))completionHandler
+ completionCallbackType:(PHASEPushStreamCompletionCallbackCondition)completionCallbackType
+ completionHandler:(void (^)(PHASEPushStreamCompletionCallbackCondition callbackType))completionHandler
NS_SWIFT_NAME(scheduleBuffer(buffer:completionCallbackType:completionHandler:));
/*! @method scheduleBuffer:atTime:options:
@@ -692,8 +694,8 @@
- (void)scheduleBuffer:(AVAudioPCMBuffer*)buffer
atTime:(nullable AVAudioTime*)when
options:(PHASEPushStreamBufferOptions)options
-completionCallbackType:(PHASEPushStreamCompletionCallbackType)completionCallbackType
- completionHandler:(void (^)(PHASEPushStreamCompletionCallbackType callbackType))completionHandler
+completionCallbackType:(PHASEPushStreamCompletionCallbackCondition)completionCallbackType
+ completionHandler:(void (^)(PHASEPushStreamCompletionCallbackCondition callbackType))completionHandler
NS_SWIFT_NAME(scheduleBuffer(buffer:time:options:completionCallbackType:completionHandler:));
@end
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESource.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESource.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESource.h 2021-06-22 17:37:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESource.h 2021-07-13 00:42:35.000000000 -0400
@@ -44,6 +44,9 @@
The shape(s) of the source within the world
@discussion
The shapes array cannot be empty, otherwise an exception is thrown.
+ @note
+ This function is thread-safe.
+ Clients can safely run this function to create multiple sources from multiple threads, if required.
*/
- (instancetype)initWithEngine:(PHASEEngine*)engine shapes:(NSArray<PHASEShape*>*)shapes NS_DESIGNATED_INITIALIZER;
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESpatialPipeline.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESpatialPipeline.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESpatialPipeline.h 2021-06-22 17:37:46.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASESpatialPipeline.h 2021-07-13 00:42:34.000000000 -0400
@@ -31,25 +31,25 @@
*/
OS_EXPORT PHASESpatialCategory const PHASESpatialCategoryLateReverb;
-#pragma mark - PHASESpatialPipelineOptions
+#pragma mark - PHASESpatialPipelineFlags
/****************************************************************************************************/
/*!
- @enum PHASESpatialPipelineOptions
- @abstract Spatial pipeline options.
- @constant PHASESpatialPipelineOptionDirectPathTransmission
+ @enum PHASESpatialPipelineFlags
+ @abstract Spatial pipeline flags.
+ @constant PHASESpatialPipelineFlagDirectPathTransmission
Direct Path Transmission.
- @constant PHASESpatialPipelineOptionEarlyReflections
+ @constant PHASESpatialPipelineFlagEarlyReflections
Early Reflections.
- @constant PHASESpatialPipelineOptionLateReverb
+ @constant PHASESpatialPipelineFlagLateReverb
Late Reverb.
*/
-typedef NS_OPTIONS(NSUInteger, PHASESpatialPipelineOptions) {
- PHASESpatialPipelineOptionDirectPathTransmission = 1UL << 0,
- PHASESpatialPipelineOptionEarlyReflections = 1UL << 1,
- PHASESpatialPipelineOptionLateReverb = 1UL << 2,
+typedef NS_OPTIONS(NSUInteger, PHASESpatialPipelineFlags) {
+ PHASESpatialPipelineFlagDirectPathTransmission = 1UL << 0,
+ PHASESpatialPipelineFlagEarlyReflections = 1UL << 1,
+ PHASESpatialPipelineFlagLateReverb = 1UL << 2,
}
-NS_SWIFT_NAME(PHASESpatialPipeline.Options);
+NS_SWIFT_NAME(PHASESpatialPipeline.Flags);
#pragma mark - PHASESpatialPipelineEntry
@@ -93,26 +93,26 @@
+ (instancetype)new NS_UNAVAILABLE;
/*!
- @method initWithOptions
- @abstract Initialize a Spatial Pipeline with the provided options.
+ @method initWithFlags
+ @abstract Initialize a Spatial Pipeline with the provided flags.
@discussion
- It's invalid to pass options == 0 to this function. Doing so will return nil.
- @param options
+ It's invalid to pass flags == 0 to this function. Doing so will return nil.
+ @param flags
Options for direct path transmission, early reflections, late reverb, etc.
*/
-- (nullable instancetype)initWithOptions:(PHASESpatialPipelineOptions)options NS_DESIGNATED_INITIALIZER;
+- (nullable instancetype)initWithFlags:(PHASESpatialPipelineFlags)flags NS_DESIGNATED_INITIALIZER;
/*!
- @property options
- @abstract Spatial Pipeline Options.
+ @property flags
+ @abstract Spatial Pipeline Flags.
*/
-@property(nonatomic, readonly) PHASESpatialPipelineOptions options;
+@property(nonatomic, readonly) PHASESpatialPipelineFlags flags;
/*!
@property entries
@abstract A dictionary of entries in the Spatial Pipeline.
@discussion
- Upon initialization, an entry will be created for every option in the PHASESpatialPipelineOptions options passed to PHASESpatialPipeline:initWithOptions.
+ Upon initialization, an entry will be created for every flag in the PHASESpatialPipelineFlags passed to PHASESpatialPipeline:initWithFlags.
*/
@property(readonly, copy) NSDictionary<PHASESpatialCategory, PHASESpatialPipelineEntry*>* entries;
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASETypes.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASETypes.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASETypes.h 2021-06-16 03:25:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/PHASE.framework/Headers/PHASETypes.h 2021-07-08 00:26:52.000000000 -0400
@@ -150,7 +150,7 @@
@abstract Sound event prepare handler reason
*/
typedef NS_ENUM(NSInteger, PHASESoundEventPrepareHandlerReason) {
- PHASESoundEventPrepareHandlerReasonError = 0,
+ PHASESoundEventPrepareHandlerReasonFailure = 0,
PHASESoundEventPrepareHandlerReasonPrepared = 1,
PHASESoundEventPrepareHandlerReasonTerminated = 2,
}
@@ -161,7 +161,7 @@
@abstract Sound event start handler reason
*/
typedef NS_ENUM(NSInteger, PHASESoundEventStartHandlerReason) {
- PHASESoundEventStartHandlerReasonError = 0,
+ PHASESoundEventStartHandlerReasonFailure = 0,
PHASESoundEventStartHandlerReasonFinishedPlaying = 1,
PHASESoundEventStartHandlerReasonTerminated = 2,
}
@@ -172,8 +172,8 @@
@abstract Sound event seek handler reason
*/
typedef NS_ENUM(NSInteger, PHASESoundEventSeekHandlerReason) {
- PHASESoundEventSeekHandlerReasonError = 0,
- PHASESoundEventSeekHandlerReasonErrorSeekAlreadyInProgress = 1,
+ PHASESoundEventSeekHandlerReasonFailure = 0,
+ PHASESoundEventSeekHandlerReasonFailureSeekAlreadyInProgress = 1,
PHASESoundEventSeekHandlerReasonSeekSuccessful = 2,
}
NS_SWIFT_NAME(PHASESoundEvent.SeekHandlerReason);
- 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