Merge branch 'power_save'
[situare] / src / engine / engine.h
index 85e31ae..42d40c6 100644 (file)
@@ -39,6 +39,7 @@ class MainWindow;
 class MapEngine;
 class SituareService;
 class User;
+class MCE;
 
 class QTimer;
 
@@ -142,13 +143,6 @@ public slots:
 
 private:
     /**
-    * @brief Checks if user is moved enough for position auto update.
-    *
-    * @return true if moved engouh, false otherwise
-    */
-    bool isUserMoved();
-
-    /**
     * @brief Read settings and determine whether to use GPS and autocentering.
     * When values does not found on the settings, GPS and autocentering are enabled as a default.
     */
@@ -186,13 +180,6 @@ private:
 
 private slots:
     /**
-    * @brief Automatic update interval timer timeout.
-    *
-    * Requests update location if user has moved.
-    */
-    void automaticUpdateIntervalTimerTimeout();
-
-    /**
     * @brief Set auto centering feature enabled / disabled
     *
     * @param enabled true if enabled, false otherwise
@@ -205,6 +192,13 @@ private slots:
     void disableAutoCentering();
 
     /**
+    * @brief Slot for display state changed.
+    *
+    * @param enabled true if enabled, false otherwise
+    */
+    void displayStateChanged(bool enabled);
+
+    /**
     * @brief Slot for auto centering enabling.
     *
     * Calls gps to send last known position
@@ -229,6 +223,15 @@ private slots:
     void enableAutomaticLocationUpdate(bool enabled, int updateIntervalMsecs = 0);
 
     /**
+    * @brief Requests automatic update.
+    *
+    * Makes automatic location update request if user has moved enough.
+    *
+    * @param position geo coordinates
+    */
+    void requestAutomaticUpdateIfMoved(QPointF position);
+
+    /**
      * @brief Sets zoom level to default when first GPS location is received if autocentering
      * is enabled.
      *
@@ -238,13 +241,11 @@ private slots:
     void setFirstStartZoomLevel(QPointF latLonCoordinate, qreal accuracy);
 
     /**
-    * @brief Saves GPS position.
-    *
-    * Saves GPS position if it has changed enough and sets m_userMoved flag.
+    * @brief Automatic update interval timer timeout.
     *
-    * @param position geo coordinates
+    * Requests update location if user has moved.
     */
-    void saveGPSPosition(QPointF position);
+    void startAutomaticUpdate();
 
 /*******************************************************************************
  * SIGNALS
@@ -283,13 +284,16 @@ signals:
 private:
     bool m_autoCenteringEnabled;        ///< Auto centering flag
     bool m_automaticUpdateFirstStart;   ///< Automatic location update first start flag
-    bool m_userMoved;                   ///< Flag for user moving
+    bool m_automaticUpdateRequest;      ///< Flag for automatic update request
+    bool m_userMoved;                   ///< Flag for user move
+
 
     FacebookAuthentication *m_facebookAuthenticator; ///< Instance for facebook authenticator
     GPSPosition *m_gps;                              ///< Instance of the gps position
     MainWindow *m_ui;                                ///< Instance of the MainWindow UI
     MapEngine *m_mapEngine;                          ///< MapEngine
     SituareService *m_situareService;  ///< Instance of the situare server communication service
+    MCE *m_mce;                        ///< Instance of the MCE
 
     QTimer *m_automaticUpdateIntervalTimer; ///< Automatic update interval timer
     QPointF m_lastUpdatedGPSPosition;       ///< Last updated GPS position