3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-12 02:05:54 +00:00
2022-03-05 22:41:29 +05:00

53 lines
893 B
C++

/*
SPDX-FileCopyrightText: 2009 Petri Damstén <damu@iki.fi>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <QMutex>
#include <QThread>
#include <QWaitCondition>
#include <gps.h>
#include "geolocationprovider.h"
class Gpsd : public QThread
{
Q_OBJECT
public:
explicit Gpsd(gps_data_t *gpsdata);
~Gpsd() override;
void update();
Q_SIGNALS:
void dataReady(const Plasma::DataEngine::Data &data);
protected:
void run() override;
private:
gps_data_t *m_gpsdata;
QMutex m_mutex;
QWaitCondition m_condition;
bool m_abort;
};
class Gps : public GeolocationProvider
{
Q_OBJECT
public:
explicit Gps(QObject *parent = nullptr, const QVariantList &args = QVariantList());
~Gps() override;
void update() override;
private:
Gpsd *m_gpsd;
#if GPSD_API_MAJOR_VERSION >= 5
gps_data_t *m_gpsdata;
#endif
};