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