diff options
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/gpslocation.cpp | 32 | ||||
-rw-r--r-- | qt-mobile/gpslocation.h | 25 |
2 files changed, 57 insertions, 0 deletions
diff --git a/qt-mobile/gpslocation.cpp b/qt-mobile/gpslocation.cpp new file mode 100644 index 000000000..3f47396c1 --- /dev/null +++ b/qt-mobile/gpslocation.cpp @@ -0,0 +1,32 @@ +#include "qt-mobile/gpslocation.h" +#include <QDebug> + + +GpsLocation::GpsLocation(QObject *parent) +{ + QGeoPositionInfoSource *gpsSource = QGeoPositionInfoSource::createDefaultSource(parent); + if (gpsSource != 0) { + qDebug() << "have position source" << gpsSource->sourceName(); + connect(gpsSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(newPosition(QGeoPositionInfo))); + connect(gpsSource, SIGNAL(updateTimeout()), this, SLOT(updateTimeout())); + lastPos = gpsSource->lastKnownPosition(); + gpsSource->requestUpdate(1000); + QGeoCoordinate lastCoord = lastPos.coordinate(); + if (lastCoord.isValid()) { + qDebug() << lastCoord.toString(); + } else { + qDebug() << "invalid last position"; + } + } else { + qDebug() << "don't have GPS source"; + } +} +void GpsLocation::newPosition(QGeoPositionInfo pos) +{ + qDebug() << "received new position" << pos.coordinate().toString(); +} + +void GpsLocation::updateTimeout() +{ + qDebug() << "request to get new position timed out"; +} diff --git a/qt-mobile/gpslocation.h b/qt-mobile/gpslocation.h new file mode 100644 index 000000000..8e26fd25e --- /dev/null +++ b/qt-mobile/gpslocation.h @@ -0,0 +1,25 @@ +#ifndef GPSLOCATION_H +#define GPSLOCATION_H + +#include <QObject> +#include <QGeoCoordinate> +#include <QGeoPositionInfoSource> +#include <QGeoPositionInfo> + +class GpsLocation : QObject +{ + Q_OBJECT +public: + GpsLocation(QObject *parent); + +private: + QGeoPositionInfo lastPos; + +signals: + +public slots: + void newPosition(QGeoPositionInfo pos); + void updateTimeout(); +}; + +#endif // GPSLOCATION_H |