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