Merge branch 'master' into indicator
[situare] / src / engine / engine.h
index 4914942..5fe1293 100644 (file)
 
 #include <QObject>
 #include <QTime>
-#include <QPointF>
 
-class QMainWindow;
+#include "coordinates/geocoordinate.h"
 
+#ifdef Q_WS_MAEMO_5
+class Application;
+#endif
 class FacebookAuthentication;
 class FacebookCredentials;
 class GPSPosition;
 class MainWindow;
 class MapEngine;
 class NetworkAccessManager;
+class RoutingService;
 class SituareService;
 class User;
 class MCE;
@@ -57,9 +60,8 @@ public:
     /**
     * @brief Constructor
     *
-    * @param parent
     */
-    SituareEngine(QMainWindow *parent = 0);
+    SituareEngine();
 
     /**
     * @brief Destructor
@@ -193,13 +195,6 @@ 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
@@ -224,22 +219,33 @@ private slots:
     void enableAutomaticLocationUpdate(bool enabled, int updateIntervalMsecs = 0);
 
     /**
+    * @brief Slot for enabling power saving.
+    *
+    * @param enabled true if enabled, false otherwise
+    */
+    void enablePowerSave(bool enabled);
+
+    /**
+    * @brief Slot to intercept signal when user's/friend's image is downloaded
+    *
+    * @param user Instance of user/friend
+    */
+    void imageReady(User *user);
+
+    /**
     * @brief Requests automatic update.
     *
     * Makes automatic location update request if user has moved enough.
     *
     * @param position geo coordinates
     */
-    void requestAutomaticUpdateIfMoved(QPointF position);
+    void requestAutomaticUpdateIfMoved(GeoCoordinate position);
 
     /**
      * @brief Sets zoom level to default when first GPS location is received if autocentering
      * is enabled.
-     *
-     * @param latLonCoordinate own location
-     * @param accuracy accuracy of GPS location
      */
-    void setFirstStartZoomLevel(QPointF latLonCoordinate, qreal accuracy);
+    void setFirstStartZoomLevel();
 
     /**
     * @brief Automatic update interval timer timeout.
@@ -273,6 +279,13 @@ signals:
     void friendsLocationsReady(QList<User *> &friendList);
 
     /**
+    * @brief Signals when friend's image is ready
+    *
+    * @param user Instance of friend
+    */
+    void friendImageReady(User *user);
+
+    /**
     * @brief Signals when new user data is ready
     *
     * @param user Instance of User
@@ -288,17 +301,21 @@ private:
     bool m_automaticUpdateRequest;      ///< Flag for automatic update request
     bool m_userMoved;                   ///< Flag for user move
 
-
+#ifdef Q_WS_MAEMO_5
+    Application *m_app;                              ///< Pointer to Application
+#endif
     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
     NetworkAccessManager *m_networkAccessManager;    ///< NetworkAccessManager
+    RoutingService *m_routingService;  ///< Instance of the routing service
     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
+    GeoCoordinate m_lastUpdatedGPSPosition; ///< Last updated GPS position
+
 };
 
 #endif // ENGINE_H