1// Copyright © 2018 650 Industries. All rights reserved.
2
3#import "EXSensorsManagerBinding.h"
4
5@interface EXSensorsManagerBinding ()
6
7@property (nonatomic, strong) NSString *experienceId;
8@property (nonatomic, weak) id<EXSensorsManagerBindingDelegate> kernelService;
9
10@end
11
12@implementation EXSensorsManagerBinding
13
14- (instancetype)initWithExperienceId:(NSString *)experienceId andKernelService:(id<EXSensorsManagerBindingDelegate>)kernelService
15{
16  if (self = [super init]) {
17    _experienceId = experienceId;
18    _kernelService = kernelService;
19  }
20  return self;
21}
22
23- (void)sensorModuleDidSubscribeForAccelerometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock {
24  [_kernelService sensorModuleDidSubscribeForAccelerometerUpdatesOfExperience:_experienceId withHandler:handlerBlock];
25}
26
27- (void)sensorModuleDidSubscribeForDeviceMotionUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock {
28  [_kernelService sensorModuleDidSubscribeForDeviceMotionUpdatesOfExperience:_experienceId withHandler:handlerBlock];
29}
30
31- (void)sensorModuleDidSubscribeForGyroscopeUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock {
32  [_kernelService sensorModuleDidSubscribeForGyroscopeUpdatesOfExperience:_experienceId withHandler:handlerBlock];
33}
34
35- (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock {
36  [_kernelService sensorModuleDidSubscribeForMagnetometerUncalibratedUpdatesOfExperience:_experienceId withHandler:handlerBlock];
37}
38
39- (void)sensorModuleDidSubscribeForMagnetometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock {
40  [_kernelService sensorModuleDidSubscribeForMagnetometerUpdatesOfExperience:_experienceId withHandler:handlerBlock];
41}
42
43- (void)sensorModuleDidUnsubscribeForAccelerometerUpdates:(id)scopedSensorModule {
44  [_kernelService sensorModuleDidUnsubscribeForAccelerometerUpdatesOfExperience:_experienceId];
45}
46
47- (void)sensorModuleDidUnsubscribeForDeviceMotionUpdates:(id)scopedSensorModule {
48  [_kernelService sensorModuleDidUnsubscribeForDeviceMotionUpdatesOfExperience:_experienceId];
49}
50
51- (void)sensorModuleDidUnsubscribeForGyroscopeUpdates:(id)scopedSensorModule {
52  [_kernelService sensorModuleDidUnsubscribeForGyroscopeUpdatesOfExperience:_experienceId];
53}
54
55- (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule {
56  [_kernelService sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdatesOfExperience:_experienceId];
57}
58
59- (void)sensorModuleDidUnsubscribeForMagnetometerUpdates:(id)scopedSensorModule {
60  [_kernelService sensorModuleDidUnsubscribeForMagnetometerUpdatesOfExperience:_experienceId];
61}
62
63- (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs {
64  [_kernelService setAccelerometerUpdateInterval:intervalMs];
65}
66
67- (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs {
68  [_kernelService setDeviceMotionUpdateInterval:intervalMs];
69}
70
71- (float)getGravity {
72  return [_kernelService getGravity];
73}
74
75
76- (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs {
77  [_kernelService setGyroscopeUpdateInterval:intervalMs];
78}
79
80- (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs {
81  [_kernelService setMagnetometerUncalibratedUpdateInterval:intervalMs];
82}
83
84- (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs {
85  [_kernelService setMagnetometerUpdateInterval:intervalMs];
86}
87
88+ (const NSArray<Protocol *> *)exportedInterfaces {
89  return @[@protocol(EXAccelerometerInterface), @protocol(EXDeviceMotionInterface), @protocol(EXGyroscopeInterface), @protocol(EXMagnetometerInterface), @protocol(EXMagnetometerUncalibratedInterface)];
90}
91
92@end
93