1 // Copyright © 2018 650 Industries. All rights reserved. 2 3 #import <Foundation/Foundation.h> 4 #import <ExpoModulesCore/EXInternalModule.h> 5 #import <ExpoModulesCore/EXAccelerometerInterface.h> 6 #import <ExpoModulesCore/EXBarometerInterface.h> 7 #import <ExpoModulesCore/EXDeviceMotionInterface.h> 8 #import <ExpoModulesCore/EXGyroscopeInterface.h> 9 #import <ExpoModulesCore/EXMagnetometerInterface.h> 10 #import <ExpoModulesCore/EXMagnetometerUncalibratedInterface.h> 11 12 @protocol EXSensorsManagerBindingDelegate 13 14 - (void)sensorModuleDidSubscribeForAccelerometerUpdatesOfExperience:(NSString *)scopeKey withHandler:(void (^)(NSDictionary *event))handlerBlock; 15 - (void)sensorModuleDidUnsubscribeForAccelerometerUpdatesOfExperience:(NSString *)scopeKey; 16 - (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs; 17 18 - (float)getGravity; 19 - (void)sensorModuleDidSubscribeForDeviceMotionUpdatesOfExperience:(NSString *)scopeKey withHandler:(void (^)(NSDictionary *event))handlerBlock; 20 - (void)sensorModuleDidUnsubscribeForDeviceMotionUpdatesOfExperience:(NSString *)scopeKey; 21 - (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs; 22 23 - (void)sensorModuleDidSubscribeForGyroscopeUpdatesOfExperience:(NSString *)scopeKey withHandler:(void (^)(NSDictionary *event))handlerBlock; 24 - (void)sensorModuleDidUnsubscribeForGyroscopeUpdatesOfExperience:(NSString *)scopeKey; 25 - (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs; 26 27 - (void)sensorModuleDidSubscribeForMagnetometerUpdatesOfExperience:(NSString *)scopeKey withHandler:(void (^)(NSDictionary *event))handlerBlock; 28 - (void)sensorModuleDidUnsubscribeForMagnetometerUpdatesOfExperience:(NSString *)scopeKey; 29 - (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs; 30 31 - (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)scopeKey 32 withHandler:(void (^)(NSDictionary *event))handlerBlock; 33 - (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)scopeKey; 34 - (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs; 35 36 - (void)sensorModuleDidSubscribeForBarometerUpdatesOfExperience:(NSString *)scopeKey withHandler:(void (^)(NSDictionary *event))handlerBlock; 37 - (void)sensorModuleDidUnsubscribeForBarometerUpdatesOfExperience:(NSString *)scopeKey; 38 - (void)setBarometerUpdateInterval:(NSTimeInterval)intervalMs; 39 40 - (BOOL)isBarometerAvailable; 41 - (BOOL)isAccelerometerAvailable; 42 - (BOOL)isDeviceMotionAvailable; 43 - (BOOL)isGyroAvailable; 44 - (BOOL)isMagnetometerAvailable; 45 - (BOOL)isMagnetometerUncalibratedAvailable; 46 47 @end 48 49 @interface EXSensorsManagerBinding : NSObject <EXInternalModule, EXAccelerometerInterface, EXBarometerInterface, EXDeviceMotionInterface, EXGyroscopeInterface, EXMagnetometerInterface, EXMagnetometerUncalibratedInterface> 50 51 - (instancetype)initWithScopeKey:(NSString *)scopeKey andKernelService:(id<EXSensorsManagerBindingDelegate>)kernelService; 52 53 - (void)sensorModuleDidSubscribeForAccelerometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 54 - (void)sensorModuleDidSubscribeForDeviceMotionUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 55 - (void)sensorModuleDidSubscribeForGyroscopeUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 56 - (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 57 - (void)sensorModuleDidSubscribeForMagnetometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 58 - (void)sensorModuleDidSubscribeForBarometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock; 59 - (void)sensorModuleDidUnsubscribeForAccelerometerUpdates:(id)scopedSensorModule; 60 - (void)sensorModuleDidUnsubscribeForDeviceMotionUpdates:(id)scopedSensorModule; 61 - (void)sensorModuleDidUnsubscribeForGyroscopeUpdates:(id)scopedSensorModule; 62 - (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule; 63 - (void)sensorModuleDidUnsubscribeForMagnetometerUpdates:(id)scopedSensorModule; 64 - (void)sensorModuleDidUnsubscribeForBarometerUpdates:(id)scopedSensorModule; 65 - (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs; 66 - (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs; 67 - (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs; 68 - (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs; 69 - (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs; 70 - (void)setBarometerUpdateInterval:(NSTimeInterval)intervalMs; 71 72 - (BOOL)isBarometerAvailable; 73 74 - (BOOL)isAccelerometerAvailable; 75 - (BOOL)isDeviceMotionAvailable; 76 - (BOOL)isGyroAvailable; 77 - (BOOL)isMagnetometerAvailable; 78 - (BOOL)isMagnetometerUncalibratedAvailable; 79 80 @end 81