Skip to content

CoreMotion watchOS xcode14.1 b1

Israel Soto edited this page Sep 23, 2022 · 3 revisions

#CoreMotion.framework https://github.com/xamarin/xamarin-macios/pull/16118

diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionData.h /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionData.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionData.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionData.h	2022-09-09 11:35:56.000000000 -0400
@@ -0,0 +1,71 @@
+/*
+*  CMWaterSubmersionData.h
+*  CoreMotion
+*
+*  Copyright (c) 2021 Apple Inc. All rights reserved.
+*/
+#import <Foundation/Foundation.h>
+#import <CoreMotion/CMAvailability.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef NS_ENUM(NSInteger, CMWaterSubmersionState) {
+	CMWaterSubmersionStateUnknown = 0,
+	CMWaterSubmersionStateNotSubmerged,
+	CMWaterSubmersionStateSubmerged
+} NS_SWIFT_NAME(CMWaterSubmersionEvent.State);
+
+typedef NS_ENUM(NSInteger, CMWaterSubmersionDepthState) {
+	CMWaterSubmersionDepthStateUnknown = 0,
+	CMWaterSubmersionDepthStateNotSubmerged = 100,
+	CMWaterSubmersionDepthStateSubmergedShallow = 200,
+	CMWaterSubmersionDepthStateSubmergedDeep = 300,
+	CMWaterSubmersionDepthStateApproachingMaxDepth = 400,
+	CMWaterSubmersionDepthStatePastMaxDepth = 500,
+	CMWaterSubmersionDepthStateSensorDepthError = 600
+} NS_SWIFT_NAME(CMWaterSubmersionMeasurement.DepthState);
+
+/*
+ * CMWaterSubmersionEvent
+ *
+ * Discussion:
+ * 	   Datum representating a new state change of type CMWaterSubmersionState.
+ */
+COREMOTION_EXPORT API_AVAILABLE(watchos(9.0))
+@interface CMWaterSubmersionEvent : NSObject <NSSecureCoding, NSCopying>
+@property (readonly, nonatomic) NSDate* date;
+@property (readonly, nonatomic) CMWaterSubmersionState state;
+@end
+
+/*
+ * CMWaterSubmersionMeasurement
+ *
+ * Discussion:
+ * 	   Datum representing a measurement update comprising of pressure, pressure uncertainty,
+ *     depth, surface pressure, and submersion state. Depth value is positive when underwater.
+ *     Depth, pressure, and pressureUncertainty are null when not submerged or when the state
+ *     is CMWaterSubmersionDepthStateSensorDepthError.
+ */
+COREMOTION_EXPORT API_AVAILABLE(watchos(9.0))
+@interface CMWaterSubmersionMeasurement : NSObject <NSSecureCoding, NSCopying>
+@property (readonly, nonatomic) NSDate* date;
+@property (readonly, nonatomic, nullable) NSMeasurement<NSUnitLength*>* depth;
+@property (readonly, nonatomic, nullable) NSMeasurement<NSUnitPressure*>* pressure;
+@property (readonly, nonatomic) NSMeasurement<NSUnitPressure*>* surfacePressure;
+@property (readonly, nonatomic) CMWaterSubmersionDepthState submersionState;
+@end
+
+/*
+ * CMWaterTemperature
+ *
+ * Discussion:
+ * 	   Datum representing an update comprising of temperature, and temperature uncertainty
+ */
+COREMOTION_EXPORT API_AVAILABLE(watchos(9.0))
+@interface CMWaterTemperature : NSObject <NSSecureCoding, NSCopying>
+@property (readonly, nonatomic) NSDate* date;
+@property (readonly, nonatomic) NSMeasurement<NSUnitTemperature*>* temperature;
+@property (readonly, nonatomic) NSMeasurement<NSUnitTemperature*>* temperatureUncertainty;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionManager.h /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionManager.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionManager.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CMWaterSubmersionManager.h	2022-09-09 11:35:56.000000000 -0400
@@ -0,0 +1,104 @@
+/*
+*  CMWaterSubmersionManager.h
+*  CoreMotion
+*
+*  Copyright (c) 2021 Apple Inc. All rights reserved.
+*/
+#import <Foundation/Foundation.h>
+#import <CoreMotion/CMAvailability.h>
+#import <CoreMotion/CMAuthorization.h>
+#import <CoreMotion/CMWaterSubmersionData.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class CMWaterSubmersionManager;
+
+COREMOTION_EXPORT API_AVAILABLE(watchos(9.0))
+/*
+ * CMWaterSubmersionManagerDelegate
+ *
+ * Discussion:
+ *   	Delegate protocol to receive updates from the CMWaterSubmersionManager API.  Methods will be invoked
+ *      on the main queue.
+ */
+@protocol CMWaterSubmersionManagerDelegate<NSObject>
+
+/*
+ * manager:didUpdateEvent
+ *
+ * Discussion:
+ *     Delegate method is called when there is a new event available.
+ *     When the delegate is first set, this method will invoked immediately so
+ *     that the client always has the current state.
+ */
+- (void)manager:(CMWaterSubmersionManager*)manager didUpdateEvent:(CMWaterSubmersionEvent*)event;
+
+/*
+ * manager:didUpdateMeasurement:
+ *
+ * Discussion:
+ * 	   Delegate method is called when there is a new depth/pressure measurement available. When
+ *     the device is not in the Submerged state, the measurement will only include the surface
+ *     pressure and submersion state.
+ *
+ *
+ */
+- (void)manager:(CMWaterSubmersionManager*)manager didUpdateMeasurement:(CMWaterSubmersionMeasurement*)measurement;
+
+/*
+ * manager:didUpdateTemperature:
+ *
+ * Discussion:
+ * 	   Delegate method is called when there is a new temperature measurement available.
+ *     New measurements will only be available while device is in the WaterSubmerged state.
+ */
+- (void)manager:(CMWaterSubmersionManager*)manager didUpdateTemperature:(CMWaterTemperature*)measurement;
+
+/*
+ * manager:errorOccurred:
+ * Discussion:
+ * 	   Delegate method is called when an error has occurred.
+ */
+- (void)manager:(CMWaterSubmersionManager*)manager errorOccurred:(NSError*)error;
+@end
+
+COREMOTION_EXPORT API_AVAILABLE(watchos(9.0))
+/*
+ *  CMWaterSubmersionManager
+ *
+ *  Discussion:
+ *  	API to retrieve values related to device state with respect to water
+ * 		submersion and measurements updates when device is submerged.
+ */
+@interface CMWaterSubmersionManager : NSObject
+/*
+ *  delegate
+ *
+ *  Discussion:
+ *      The delegate object to receive event and measurements updates.
+ *      Setting of the delegate will invoke TCC, and updates are subject
+ *      to client being authorized.  By setting the delegate to a non-nil value,
+ *      start event and measurement updates.  Setting the delegate to nil will
+ *      stop all updates.
+ */
+@property (weak, nonatomic, nullable) id <CMWaterSubmersionManagerDelegate> delegate;
+
+/*
+ *  waterSubmersionAvailable
+ *
+ *  Discussion:
+ *   	Determines whether this feature is available on the current platform.
+ */
+@property (class, nonatomic, readonly) BOOL waterSubmersionAvailable;
+
+/*
+ *  authorizationStatus
+ *
+ *  Discussion:
+ *      Checks to see if the client is authorized to use this API via TCC
+ *      under Motion & Fitness.
+ */
+@property (class, nonatomic, readonly) CMAuthorizationStatus authorizationStatus;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CoreMotion.h /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CoreMotion.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CoreMotion.h	2022-08-04 23:38:49.000000000 -0400
+++ /Applications/Xcode_14.1.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/CoreMotion.framework/Headers/CoreMotion.h	2022-09-08 00:32:54.000000000 -0400
@@ -34,5 +34,6 @@
 #import <CoreMotion/CMStepCounter.h>
 #import <CoreMotion/CMSensorRecorder.h>
 #import <CoreMotion/CMRecordedPressureData.h>
+#import <CoreMotion/CMWaterSubmersionManager.h>
 
 #endif /* __COREMOTION__ */
Clone this wiki locally