@osobh/reactar
Version:
AR Library for React Native and Expo
73 lines • 2.57 kB
JavaScript
"use strict";
// src/sensors/DeviceTracking.ts
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeviceTracking = void 0;
const expo_sensors_1 = require("expo-sensors");
class DeviceTracking {
constructor() {
this.accelerometerSubscription = null;
this.gyroscopeSubscription = null;
this.deviceMotionSubscription = null;
this.magnetometerSubscription = null;
this.accelerometerData = null;
this.gyroscopeData = null;
this.deviceMotionData = null;
this.magnetometerData = null;
}
startAccelerometer(interval = 100) {
expo_sensors_1.Accelerometer.setUpdateInterval(interval);
this.accelerometerSubscription = expo_sensors_1.Accelerometer.addListener(data => {
this.accelerometerData = data;
});
}
stopAccelerometer() {
if (this.accelerometerSubscription) {
this.accelerometerSubscription.remove();
this.accelerometerSubscription = null;
}
}
startGyroscope(interval = 100) {
expo_sensors_1.Gyroscope.setUpdateInterval(interval);
this.gyroscopeSubscription = expo_sensors_1.Gyroscope.addListener(data => {
this.gyroscopeData = data;
});
}
stopGyroscope() {
if (this.gyroscopeSubscription) {
this.gyroscopeSubscription.remove();
this.gyroscopeSubscription = null;
}
}
startDeviceMotion(interval = 100) {
expo_sensors_1.DeviceMotion.setUpdateInterval(interval);
this.deviceMotionSubscription = expo_sensors_1.DeviceMotion.addListener(data => {
this.deviceMotionData = data;
});
}
stopDeviceMotion() {
if (this.deviceMotionSubscription) {
this.deviceMotionSubscription.remove();
this.deviceMotionSubscription = null;
}
}
startMagnetometer(interval = 100) {
expo_sensors_1.Magnetometer.setUpdateInterval(interval);
this.magnetometerSubscription = expo_sensors_1.Magnetometer.addListener(data => {
this.magnetometerData = data;
});
}
stopMagnetometer() {
if (this.magnetometerSubscription) {
this.magnetometerSubscription.remove();
this.magnetometerSubscription = null;
}
}
stopAllSensors() {
this.stopAccelerometer();
this.stopGyroscope();
this.stopDeviceMotion();
this.stopMagnetometer();
}
}
exports.DeviceTracking = DeviceTracking;
//# sourceMappingURL=DeviceTracking.js.map