This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
YASMIN/sensors/android/CompassSensorAndroid.h
kazu b0712ec005 added gps support
added compass support
added ui elements for gps and compass
added support for writing sensor data
2017-03-21 16:27:14 +01:00

64 lines
946 B
C++

#ifndef COMPASSSENSORANDROID_H
#define COMPASSSENSORANDROID_H
#ifdef ANDROID
#include <sstream>
#include "../CompassSensor.h"
#include <QtSensors/QCompass>
class CompassSensorAndroid : public CompassSensor {
private:
QCompass compass;
/** hidden ctor. use singleton */
CompassSensorAndroid() {
;
}
bool started = false;
public:
/** singleton access */
static CompassSensorAndroid& get() {
static CompassSensorAndroid compass;
return compass;
}
void start() override {
if (started) {return;}
started = true;
auto onSensorData = [&] () {
CompassData data(
compass.reading()->azimuth(),
compass.reading()->calibrationLevel()
);
informListeners(data);
};
compass.connect(&compass, &QCompass::readingChanged, onSensorData);
compass.start();
}
bool isRunning() const override {
return started;
}
void stop() override {
throw "TODO";
}
};
#endif
#endif // COMPASSSENSORANDROID_H