1 // Copyright © 2018 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <EXCore/EXInternalModule.h>
5 #import <EXSensorsInterface/EXAccelerometerInterface.h>
6 #import <EXSensorsInterface/EXBarometerInterface.h>
7 #import <EXSensorsInterface/EXDeviceMotionInterface.h>
8 #import <EXSensorsInterface/EXGyroscopeInterface.h>
9 #import <EXSensorsInterface/EXMagnetometerInterface.h>
10 #import <EXSensorsInterface/EXMagnetometerUncalibratedInterface.h>
11 
12 @protocol EXSensorsManagerBindingDelegate
13 
14 - (void)sensorModuleDidSubscribeForAccelerometerUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
15 - (void)sensorModuleDidUnsubscribeForAccelerometerUpdatesOfExperience:(NSString *)experienceId;
16 - (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs;
17 
18 - (float)getGravity;
19 - (void)sensorModuleDidSubscribeForDeviceMotionUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
20 - (void)sensorModuleDidUnsubscribeForDeviceMotionUpdatesOfExperience:(NSString *)experienceId;
21 - (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs;
22 
23 - (void)sensorModuleDidSubscribeForGyroscopeUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
24 - (void)sensorModuleDidUnsubscribeForGyroscopeUpdatesOfExperience:(NSString *)experienceId;
25 - (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs;
26 
27 - (void)sensorModuleDidSubscribeForMagnetometerUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
28 - (void)sensorModuleDidUnsubscribeForMagnetometerUpdatesOfExperience:(NSString *)experienceId;
29 - (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs;
30 
31 - (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)experienceId
32                                                        withHandler:(void (^)(NSDictionary *event))handlerBlock;
33 - (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)experienceId;
34 - (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs;
35 
36 - (void)sensorModuleDidSubscribeForBarometerUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
37 - (void)sensorModuleDidUnsubscribeForBarometerUpdatesOfExperience:(NSString *)experienceId;
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)initWithExperienceId:(NSString *)experienceId 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