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/EXDeviceMotionInterface.h>
7 #import <EXSensorsInterface/EXGyroscopeInterface.h>
8 #import <EXSensorsInterface/EXMagnetometerInterface.h>
9 #import <EXSensorsInterface/EXMagnetometerUncalibratedInterface.h>
10 
11 @protocol EXSensorsManagerBindingDelegate
12 
13 - (void)sensorModuleDidSubscribeForAccelerometerUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
14 - (void)sensorModuleDidUnsubscribeForAccelerometerUpdatesOfExperience:(NSString *)experienceId;
15 - (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs;
16 
17 - (float)getGravity;
18 - (void)sensorModuleDidSubscribeForDeviceMotionUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
19 - (void)sensorModuleDidUnsubscribeForDeviceMotionUpdatesOfExperience:(NSString *)experienceId;
20 - (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs;
21 
22 - (void)sensorModuleDidSubscribeForGyroscopeUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
23 - (void)sensorModuleDidUnsubscribeForGyroscopeUpdatesOfExperience:(NSString *)experienceId;
24 - (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs;
25 
26 - (void)sensorModuleDidSubscribeForMagnetometerUpdatesOfExperience:(NSString *)experienceId withHandler:(void (^)(NSDictionary *event))handlerBlock;
27 - (void)sensorModuleDidUnsubscribeForMagnetometerUpdatesOfExperience:(NSString *)experienceId;
28 - (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs;
29 
30 - (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)experienceId
31                                                        withHandler:(void (^)(NSDictionary *event))handlerBlock;
32 - (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdatesOfExperience:(NSString *)experienceId;
33 - (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs;
34 
35 @end
36 
37 @interface EXSensorsManagerBinding : NSObject <EXInternalModule, EXAccelerometerInterface, EXDeviceMotionInterface, EXGyroscopeInterface, EXMagnetometerInterface, EXMagnetometerUncalibratedInterface>
38 
39 - (instancetype)initWithExperienceId:(NSString *)experienceId andKernelService:(id<EXSensorsManagerBindingDelegate>)kernelService;
40 
41 - (void)sensorModuleDidSubscribeForAccelerometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock;
42 - (void)sensorModuleDidSubscribeForDeviceMotionUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock;
43 - (void)sensorModuleDidSubscribeForGyroscopeUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock;
44 - (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock;
45 - (void)sensorModuleDidSubscribeForMagnetometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock;
46 - (void)sensorModuleDidUnsubscribeForAccelerometerUpdates:(id)scopedSensorModule;
47 - (void)sensorModuleDidUnsubscribeForDeviceMotionUpdates:(id)scopedSensorModule;
48 - (void)sensorModuleDidUnsubscribeForGyroscopeUpdates:(id)scopedSensorModule;
49 - (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule;
50 - (void)sensorModuleDidUnsubscribeForMagnetometerUpdates:(id)scopedSensorModule;
51 - (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs;
52 - (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs;
53 - (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs;
54 - (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs;
55 - (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs;
56 
57 @end
58