Changed GPSPositionPrivateStub to fake location updates instead of error
authorSami Rämö <sami.ramo@ixonos.com>
Fri, 5 Nov 2010 11:19:24 +0000 (13:19 +0200)
committerSami Rämö <sami.ramo@ixonos.com>
Fri, 5 Nov 2010 11:19:24 +0000 (13:19 +0200)
src/gps/gpspositionprivatestub.cpp
src/gps/gpspositionprivatestub.h

index 1f98ec6..20016ac 100644 (file)
 */
 
 #include <QDebug>
+#include <QTimer>
 
 #include "error.h"
 #include "gpsposition.h"
 #include "gpspositionprivatestub.h"
 
+const GeoCoordinate COORDINATE(65.0105, 25.5091);
+
 GPSPositionPrivate::GPSPositionPrivate(QObject *parent)
-    : QObject(parent)
+    : QObject(parent),
+      m_running(false)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
     m_parent = static_cast<GPSPosition*>(parent);
+    m_timer = new QTimer(this);
+    connect(m_timer, SIGNAL(timeout()), this, SLOT(timeout()));
+    m_timer->setInterval(5000);
 }
 
 bool GPSPositionPrivate::isInitialized() const
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    return false;
+    return true;
 }
 
 bool GPSPositionPrivate::isRunning() const
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    return false;
+    return m_running;
 }
 
 void GPSPositionPrivate::setUpdateInterval(int interval)
@@ -52,6 +59,7 @@ void GPSPositionPrivate::setUpdateInterval(int interval)
     qDebug() << __PRETTY_FUNCTION__;
 
     Q_UNUSED(interval);
+    m_timer->setInterval(interval);
 }
 
 void GPSPositionPrivate::setMode(GPSPosition::Mode mode, const QString &filePath)
@@ -66,34 +74,50 @@ void GPSPositionPrivate::setPowerSave(bool enabled)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    Q_UNUSED(enabled);
+    if (enabled)
+        stop();
+    else
+        start();
 }
 
 void GPSPositionPrivate::start()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    emit m_parent->error(ErrorContext::SITUARE, SituareError::GPS_INITIALIZATION_FAILED);
+    m_running = true;
+    m_timer->start();
 }
 
 void GPSPositionPrivate::stop()
 {
     qDebug() << __PRETTY_FUNCTION__;
+
+    m_running = false;
+    m_timer->stop();
+}
+
+void GPSPositionPrivate::timeout()
+{
+    emit m_parent->position(COORDINATE, 100.0);
 }
 
 GeoCoordinate GPSPositionPrivate::lastPosition() const
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    return GeoCoordinate(0, 0);
+    return COORDINATE;
 }
 
 void GPSPositionPrivate::requestLastPosition()
 {
     qDebug() << __PRETTY_FUNCTION__;
+
+    emit m_parent->position(COORDINATE, 100.0);
 }
 
 void GPSPositionPrivate::requestUpdate()
 {
     qDebug() << __PRETTY_FUNCTION__;
+
+    start();
 }
index 60cf2ef..f235e04 100644 (file)
@@ -27,6 +27,7 @@
 #include "gpsposition.h"
 
 class QString;
+class QTimer;
 
 class GeoCoordinate;
 
@@ -122,11 +123,19 @@ public:
     */
     void stop();
 
+private slots:
+    /**
+    * @brief Timer timeout which emits fake location updates
+    */
+    void timeout();
+
 /*******************************************************************************
  * DATA MEMBERS
  ******************************************************************************/
 private:
     GPSPosition *m_parent;                      ///< Parent object
+    QTimer *m_timer;                            ///< Timer for sending fake location updates
+    bool m_running;                             ///< Internal status, is the GPS on?
 };
 
 #endif // GPSPOSITIONMOCKUP_H