blob: 592d641c6d9463ac52f86d9638d153d24ea1057f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// Copyright (C) 2019 BogDan Vatra <bogdan@kde.org>
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef ANDROIDCOMPASS_H
#define ANDROIDCOMPASS_H
#include <QMutex>
#include <qcompass.h>
#include "sensoreventqueue.h"
class AndroidCompass : public ThreadSafeSensorBackend
{
Q_OBJECT
public:
AndroidCompass(QSensor *sensor, QObject *parent = nullptr);
~AndroidCompass() override;
void start() override;
void stop() override;
private:
void readAllEvents();
static int looperCallback(int /*fd*/, int /*events*/, void* data);
private:
QCompassReading m_reading;
const ASensor *m_accelerometer = nullptr;
const ASensor *m_magnetometer = nullptr;
ASensorEventQueue* m_sensorEventQueue = nullptr;
ASensorVector m_accelerometerEvent;
ASensorVector m_magneticEvent;
QMutex m_sensorsMutex;
};
#endif // ANDROIDCOMPASS_H
|