diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-11-18 18:30:55 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-11-18 18:34:49 -0800 |
commit | 456cc3955a3e343ea1d2303484d5c79b44635155 (patch) | |
tree | 4a48b0d244be602d1043c3e86b89d0b700f9afc2 /subsurface-core/gpslocation.h | |
parent | 0b804e5b215f94a924f0d516da25dc46a81e710d (diff) | |
download | subsurface-456cc3955a3e343ea1d2303484d5c79b44635155.tar.gz |
Location service: move into subsurface-core
While this is primarily something targeted at a mobile device, with many
of the 2 in 1 devices it is possible that the user might be running the
desktop version of Subsurface on a mobile device.
As a first step to make it possible to collect GPS fixes on such a device
we need to make the infrastructure to do so available in the desktop
application as well.
This still needs to be hooked up in the desktop UI.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'subsurface-core/gpslocation.h')
-rw-r--r-- | subsurface-core/gpslocation.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/subsurface-core/gpslocation.h b/subsurface-core/gpslocation.h new file mode 100644 index 000000000..55b47f07e --- /dev/null +++ b/subsurface-core/gpslocation.h @@ -0,0 +1,43 @@ +#ifndef GPSLOCATION_H +#define GPSLOCATION_H + +#include "units.h" +#include <QObject> +#include <QGeoCoordinate> +#include <QGeoPositionInfoSource> +#include <QGeoPositionInfo> +#include <QSettings> +#include <QNetworkReply> + +class GpsLocation : QObject +{ + Q_OBJECT +public: + GpsLocation(void (*showMsgCB)(const char *msg), QObject *parent); + bool applyLocations(); + int getGpsNum() const; + QString getUserid(QString user, QString passwd); + +private: + QGeoPositionInfo lastPos; + QGeoPositionInfoSource *gpsSource; + void status(QString msg); + QSettings *geoSettings; + QNetworkReply *reply; + QString userAgent; + void (*showMessageCB)(const char *msg); + +signals: + +public slots: + void serviceEnable(bool toggle); + void newPosition(QGeoPositionInfo pos); + void updateTimeout(); + void uploadToServer(); + void postError(QNetworkReply::NetworkError error); + void getUseridError(QNetworkReply::NetworkError error); + void clearGpsData(); + +}; + +#endif // GPSLOCATION_H |