1// Copyright © 2018 650 Industries. All rights reserved. 2 3#import "EXSensorsManagerBinding.h" 4 5@interface EXSensorsManagerBinding () 6 7@property (nonatomic, strong) NSString *scopeKey; 8@property (nonatomic, weak) id<EXSensorsManagerBindingDelegate> kernelService; 9 10@end 11 12@implementation EXSensorsManagerBinding 13 14- (instancetype)initWithScopeKey:(NSString *)scopeKey andKernelService:(id<EXSensorsManagerBindingDelegate>)kernelService 15{ 16 if (self = [super init]) { 17 _scopeKey = scopeKey; 18 _kernelService = kernelService; 19 } 20 return self; 21} 22 23- (void)sensorModuleDidSubscribeForAccelerometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 24 [_kernelService sensorModuleDidSubscribeForAccelerometerUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 25} 26 27- (void)sensorModuleDidSubscribeForDeviceMotionUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 28 [_kernelService sensorModuleDidSubscribeForDeviceMotionUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 29} 30 31- (void)sensorModuleDidSubscribeForGyroscopeUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 32 [_kernelService sensorModuleDidSubscribeForGyroscopeUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 33} 34 35- (void)sensorModuleDidSubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 36 [_kernelService sensorModuleDidSubscribeForMagnetometerUncalibratedUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 37} 38 39- (void)sensorModuleDidSubscribeForMagnetometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 40 [_kernelService sensorModuleDidSubscribeForMagnetometerUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 41} 42 43- (void)sensorModuleDidSubscribeForBarometerUpdates:(id)scopedSensorModule withHandler:(void (^)(NSDictionary *))handlerBlock { 44 [_kernelService sensorModuleDidSubscribeForBarometerUpdatesOfExperience:_scopeKey withHandler:handlerBlock]; 45} 46 47- (void)sensorModuleDidUnsubscribeForAccelerometerUpdates:(id)scopedSensorModule { 48 [_kernelService sensorModuleDidUnsubscribeForAccelerometerUpdatesOfExperience:_scopeKey]; 49} 50 51- (void)sensorModuleDidUnsubscribeForDeviceMotionUpdates:(id)scopedSensorModule { 52 [_kernelService sensorModuleDidUnsubscribeForDeviceMotionUpdatesOfExperience:_scopeKey]; 53} 54 55- (void)sensorModuleDidUnsubscribeForGyroscopeUpdates:(id)scopedSensorModule { 56 [_kernelService sensorModuleDidUnsubscribeForGyroscopeUpdatesOfExperience:_scopeKey]; 57} 58 59- (void)sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdates:(id)scopedSensorModule { 60 [_kernelService sensorModuleDidUnsubscribeForMagnetometerUncalibratedUpdatesOfExperience:_scopeKey]; 61} 62 63- (void)sensorModuleDidUnsubscribeForMagnetometerUpdates:(id)scopedSensorModule { 64 [_kernelService sensorModuleDidUnsubscribeForMagnetometerUpdatesOfExperience:_scopeKey]; 65} 66 67- (void)sensorModuleDidUnsubscribeForBarometerUpdates:(id)scopedSensorModule { 68 [_kernelService sensorModuleDidUnsubscribeForBarometerUpdatesOfExperience:_scopeKey]; 69} 70 71- (void)setAccelerometerUpdateInterval:(NSTimeInterval)intervalMs { 72 [_kernelService setAccelerometerUpdateInterval:intervalMs]; 73} 74 75- (BOOL)isAccelerometerAvailable { 76 return [_kernelService isAccelerometerAvailable]; 77} 78 79- (void)setDeviceMotionUpdateInterval:(NSTimeInterval)intervalMs { 80 [_kernelService setDeviceMotionUpdateInterval:intervalMs]; 81} 82 83- (float)getGravity { 84 return [_kernelService getGravity]; 85} 86 87- (BOOL)isDeviceMotionAvailable { 88 return [_kernelService isDeviceMotionAvailable]; 89} 90 91- (void)setGyroscopeUpdateInterval:(NSTimeInterval)intervalMs { 92 [_kernelService setGyroscopeUpdateInterval:intervalMs]; 93} 94 95- (BOOL)isGyroAvailable { 96 return [_kernelService isGyroAvailable]; 97} 98 99- (void)setMagnetometerUncalibratedUpdateInterval:(NSTimeInterval)intervalMs { 100 [_kernelService setMagnetometerUncalibratedUpdateInterval:intervalMs]; 101} 102 103- (BOOL)isMagnetometerUncalibratedAvailable { 104 return [_kernelService isMagnetometerUncalibratedAvailable]; 105} 106 107- (void)setMagnetometerUpdateInterval:(NSTimeInterval)intervalMs { 108 [_kernelService setMagnetometerUpdateInterval:intervalMs]; 109} 110 111- (BOOL)isMagnetometerAvailable { 112 return [_kernelService isMagnetometerAvailable]; 113} 114 115- (void)setBarometerUpdateInterval:(NSTimeInterval)intervalMs { 116 [_kernelService setBarometerUpdateInterval:intervalMs]; 117} 118 119- (BOOL)isBarometerAvailable { 120 return [_kernelService isBarometerAvailable]; 121} 122 123 124+ (const NSArray<Protocol *> *)exportedInterfaces { 125 return @[@protocol(EXAccelerometerInterface), @protocol(EXBarometerInterface), @protocol(EXDeviceMotionInterface), @protocol(EXGyroscopeInterface), @protocol(EXMagnetometerInterface), @protocol(EXMagnetometerUncalibratedInterface)]; 126} 127 128@end 129