43 #define QGEOPOSITIONINFOSOURCEMAEMO_H |
43 #define QGEOPOSITIONINFOSOURCEMAEMO_H |
44 |
44 |
45 #include "qgeopositioninfosource.h" |
45 #include "qgeopositioninfosource.h" |
46 #include "dbuscomm_maemo_p.h" |
46 #include "dbuscomm_maemo_p.h" |
47 |
47 |
|
48 #ifdef Q_WS_MAEMO_5 |
|
49 #include "qgeocoordinate.h" |
|
50 |
|
51 extern "C" { |
|
52 #include <glib.h> |
|
53 #include <location/location-gpsd-control.h> |
|
54 #include <location/location-gps-device.h> |
|
55 #include <location/location-misc.h> |
|
56 #include <location/location-distance-utils.h> |
|
57 } |
|
58 #endif |
|
59 |
48 QTM_BEGIN_NAMESPACE |
60 QTM_BEGIN_NAMESPACE |
49 |
61 |
50 class DBusComm; |
62 class DBusComm; |
51 class QGeoPositionInfoSourceMaemo : public QGeoPositionInfoSource |
63 class QGeoPositionInfoSourceMaemo : public QGeoPositionInfoSource |
52 { |
64 { |
53 Q_OBJECT |
65 Q_OBJECT |
|
66 |
54 public: |
67 public: |
55 |
68 |
56 QGeoPositionInfoSourceMaemo(QObject *parent = 0); |
69 QGeoPositionInfoSourceMaemo(QObject *parent = 0); |
57 int init(); |
70 int init(); |
58 |
71 |
59 virtual void setUpdateInterval(int interval); |
72 virtual void setUpdateInterval(int interval); |
60 virtual void setPreferredPositioningMethods(PositioningMethods sources); |
73 virtual void setPreferredPositioningMethods(PositioningMethods sources); |
61 //virtual QPositioninfo QGeoPositionInfoSource::lastUpdate(QFlags<QGeoPositionInfoSource::PositionSourceType>) const; |
|
62 virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const; |
74 virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const; |
63 virtual PositioningMethods supportedPositioningMethods() const; |
75 virtual PositioningMethods supportedPositioningMethods() const; |
64 virtual int minimumUpdateInterval() const; |
76 virtual int minimumUpdateInterval() const; |
65 |
77 |
66 private: |
78 public Q_SLOTS: |
67 void dumpNMEA(const char *msg); |
|
68 DBusComm* dbusComm; |
|
69 QGeoPositionInfo lastUpdate; |
|
70 QGeoPositionInfo lastSatUpdate; |
|
71 bool validLastUpdate; |
|
72 bool validLastSatUpdate; |
|
73 static const int MinimumUpdateInterval = 1000; |
|
74 int time_interval_; |
|
75 int distance_interval_; |
|
76 bool registered_; |
|
77 PositioningMethods availableMethods; |
|
78 |
|
79 public slots: |
|
80 void startUpdates(); |
79 void startUpdates(); |
81 void stopUpdates(); |
80 void stopUpdates(); |
82 void requestUpdate(int timeout = 5000); |
81 void requestUpdate(int timeout = 5000); |
83 void dbusMessages(const QByteArray &msg); |
82 |
|
83 private: |
|
84 static const int MinimumUpdateInterval = 1000; |
|
85 static const int DefaultUpdateInterval = 5000; |
|
86 |
|
87 DBusComm* dbusComm; |
|
88 |
|
89 int time_interval_; |
|
90 PositioningMethods availableMethods; |
|
91 |
|
92 private Q_SLOTS: |
84 void newPositionUpdate(const QGeoPositionInfo &update); |
93 void newPositionUpdate(const QGeoPositionInfo &update); |
85 }; |
94 }; |
86 |
95 |
87 QTM_END_NAMESPACE |
96 QTM_END_NAMESPACE |
88 |
97 |