summaryrefslogtreecommitdiff
path: root/src/location
diff options
context:
space:
mode:
Diffstat (limited to 'src/location')
-rw-r--r--src/location/location.pro9
-rw-r--r--src/location/qgeopositioninfosource_npe_backend.cpp71
-rw-r--r--src/location/qgeopositioninfosource_npe_backend_p.h9
-rw-r--r--src/location/qgeosatelliteinfosource_npe_backend.cpp50
-rw-r--r--src/location/qgeosatelliteinfosource_npe_backend_p.h8
5 files changed, 80 insertions, 67 deletions
diff --git a/src/location/location.pro b/src/location/location.pro
index 33673aad..b35b07a8 100644
--- a/src/location/location.pro
+++ b/src/location/location.pro
@@ -87,18 +87,13 @@ meego {
}
}
-contains(config_test_jsondb, yes):contains(config_test_mtclient, yes):!simulator {
+!isEmpty(QT.jsondb.name):!isEmpty(QT.jsonstream.name):!simulator {
DEFINES += NPE_BACKEND
- QT += jsondb-private
+ QT += jsondb-private jsonstream
SOURCES += qgeopositioninfosource_npe_backend.cpp\
qgeosatelliteinfosource_npe_backend.cpp
PRIVATE_HEADERS += qgeopositioninfosource_npe_backend_p.h\
qgeosatelliteinfosource_npe_backend_p.h
-
- unix{
- CONFIG += link_pkgconfig
- PKGCONFIG += mt-client
- }
}
HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
diff --git a/src/location/qgeopositioninfosource_npe_backend.cpp b/src/location/qgeopositioninfosource_npe_backend.cpp
index 8c8d972d..782f2d39 100644
--- a/src/location/qgeopositioninfosource_npe_backend.cpp
+++ b/src/location/qgeopositioninfosource_npe_backend.cpp
@@ -42,6 +42,9 @@
#include "qgeopositioninfosource_npe_backend_p.h"
#include <sys/stat.h>
+#include <QtAddOnJsonStream/jsonstream.h>
+
+QT_USE_NAMESPACE_JSONSTREAM
// API for socket communication towards locationd
const QString kstartUpdates = QLatin1String("startUpdates");
@@ -92,9 +95,9 @@ bool QGeoPositionInfoSourceNpeBackend::init()
if (mSocket) {
connect(mSocket, SIGNAL(connected()), this, SLOT(onSocketConnected()));
connect(mSocket, SIGNAL(disconnected()), this, SLOT(onSocketDisconnected()));
- mStream = new VariantStream(mSocket);
+ mStream = new JsonStream(mSocket);
if (mStream) {
- connect(mStream, SIGNAL(receive(const QVariantMap&)), this, SLOT(onStreamReceived(const QVariantMap&)), Qt::QueuedConnection);
+ connect(mStream, SIGNAL(messageReceived(const QVariantMap&)), this, SLOT(onStreamReceived(const QVariantMap&)), Qt::QueuedConnection);
}
mSocket->connectToServer((QLatin1String)klocationdSocketName);
return(mSocket->waitForConnected(500)); // wait up to 0.5 seconds to get connected, otherwise return false
@@ -108,11 +111,11 @@ QGeoPositionInfo QGeoPositionInfoSourceNpeBackend::lastKnownPosition(bool fromSa
{
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(lastKnownPositionReceived()), &loop, SLOT(quit()));
- QVariantMap action;
- QVariantMap object;
- action.insert(JsonDbString::kActionStr, kgetLastKnownPosition);
- object.insert(ksatelliteOnly, fromSatellitePositioningMethodsOnly);
- action.insert(JsonDbString::kDataStr, object);
+ QJsonObject action;
+ QJsonObject object;
+ action[JsonDbString::kActionStr] = kgetLastKnownPosition;
+ object[ksatelliteOnly] = fromSatellitePositioningMethodsOnly;
+ action[JsonDbString::kDataStr] = object;
mStream->send(action);
loop.exec(); // wait for signal lastKnownPositionReceived()sent by slot onStreamReceived
return(lastPosition);
@@ -123,8 +126,8 @@ QGeoPositionInfoSource::PositioningMethods QGeoPositionInfoSourceNpeBackend::sup
{
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(supportedPositioningMethodsReceived()), &loop, SLOT(quit()));
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, kgetSupportedMethods);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kgetSupportedMethods;
mStream->send(action);
loop.exec(); // wait for supportedPositioningMethodsReceived() signal sent by slot onStreamReceived
switch (supportedMethods){
@@ -140,21 +143,21 @@ QGeoPositionInfoSource::PositioningMethods QGeoPositionInfoSourceNpeBackend::sup
void QGeoPositionInfoSourceNpeBackend::setUpdateInterval(int msec)
{
- QVariantMap action;
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(minimumUpdateIntervalReceived()), &loop, SLOT(quit()));
- action.insert(JsonDbString::kActionStr, kgetMinimumUpdateInterval);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kgetMinimumUpdateInterval;
mStream->send(action);
loop.exec(); // wait for minimumUpdateIntervalReceived() signal sent by slot onStreamReceived
if (msec < minInterval && msec != 0)
msec = minInterval;
QGeoPositionInfoSource::setUpdateInterval(msec);
if (!requestTimer->isActive()) {
- QVariantMap actionUpdate;
- QVariantMap object;
- actionUpdate.insert(JsonDbString::kActionStr, ksetUpdateInterval);
- object.insert(kinterval, msec);
- actionUpdate.insert(JsonDbString::kDataStr, object);
+ QJsonObject actionUpdate;
+ QJsonObject object;
+ actionUpdate[JsonDbString::kActionStr] = ksetUpdateInterval;
+ object[kinterval] = msec;
+ actionUpdate[JsonDbString::kDataStr] = object;
mStream->send(actionUpdate);
}
}
@@ -163,21 +166,21 @@ void QGeoPositionInfoSourceNpeBackend::setUpdateInterval(int msec)
void QGeoPositionInfoSourceNpeBackend::setPreferredPositioningMethods(PositioningMethods sources)
{
QGeoPositionInfoSource::setPreferredPositioningMethods(sources);
- QVariantMap action;
- QVariantMap object;
- action.insert(JsonDbString::kActionStr, ksetPreferredMethod);
- object.insert(kmethod, (uint)sources);
- action.insert(JsonDbString::kDataStr, object);
+ QJsonObject action;
+ QJsonObject object;
+ action[JsonDbString::kActionStr] = ksetPreferredMethod;
+ object[kmethod] = int(sources);
+ action[JsonDbString::kDataStr] = object;
mStream->send(action);
}
int QGeoPositionInfoSourceNpeBackend::minimumUpdateInterval() const
{
- QVariantMap action;
+ QJsonObject action;
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(minimumUpdateIntervalReceived()), &loop, SLOT(quit()));
- action.insert(JsonDbString::kActionStr, kgetMinimumUpdateInterval);
+ action[JsonDbString::kActionStr] = kgetMinimumUpdateInterval;
mStream->send(action);
loop.exec(); // wait for minimumUpdateIntervalReceived() signal sent by slot onStreamReceived
return(minInterval);
@@ -188,8 +191,8 @@ void QGeoPositionInfoSourceNpeBackend::startUpdates()
{
if (!locationOngoing) {
locationOngoing = true;
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, kstartUpdates);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kstartUpdates;
mStream->send(action);
}
}
@@ -199,8 +202,8 @@ void QGeoPositionInfoSourceNpeBackend::stopUpdates()
{
if ( locationOngoing && !requestTimer->isActive() ) {
locationOngoing = false;
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, kstopUpdates);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kstopUpdates;
mStream->send(action);
}
}
@@ -222,18 +225,18 @@ void QGeoPositionInfoSourceNpeBackend::requestUpdate(int timeout)
// get position as fast as possible in case of ongoing satellite based session
if ( locationOngoing ) {
if ( QGeoPositionInfoSource::updateInterval() != minimumInterval) {
- QVariantMap actionUpdate;
- QVariantMap object;
- actionUpdate.insert(JsonDbString::kActionStr, ksetUpdateInterval);
- object.insert(kinterval, minimumInterval);
- actionUpdate.insert(JsonDbString::kDataStr, object);
+ QJsonObject actionUpdate;
+ QJsonObject object;
+ actionUpdate[JsonDbString::kActionStr] = ksetUpdateInterval;
+ object[kinterval] = minimumInterval;
+ actionUpdate[JsonDbString::kDataStr] = object;
mStream->send(actionUpdate);
}
}
// request the update only if no tracking session is active
if ( !locationOngoing) {
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, krequestUpdate);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = krequestUpdate;
mStream->send(action);
}
requestTimer->start(timeout);
diff --git a/src/location/qgeopositioninfosource_npe_backend_p.h b/src/location/qgeopositioninfosource_npe_backend_p.h
index 55f2967f..62d5b89f 100644
--- a/src/location/qgeopositioninfosource_npe_backend_p.h
+++ b/src/location/qgeopositioninfosource_npe_backend_p.h
@@ -54,12 +54,17 @@
//
#include <qgeopositioninfosource.h>
-#include <mt-client/variantstream.h>
#include <private/jsondb-strings_p.h>
#include <qlocalsocket.h>
#include <qeventloop.h>
#include <qtimer.h>
+#include <QtAddOnJsonStream/jsonstream-global.h>
+
+QT_BEGIN_NAMESPACE_JSONSTREAM
+class JsonStream;
+QT_END_NAMESPACE_JSONSTREAM
+
Q_USE_JSONDB_NAMESPACE
class QGeoPositionInfoSourceNpeBackend : public QGeoPositionInfoSource
@@ -82,7 +87,7 @@ public Q_SLOTS:
private:
QLocalSocket* mSocket;
- VariantStream* mStream;
+ QtAddOn::JsonStream::JsonStream* mStream;
int minInterval;
uint supportedMethods;
QGeoPositionInfo lastPosition;
diff --git a/src/location/qgeosatelliteinfosource_npe_backend.cpp b/src/location/qgeosatelliteinfosource_npe_backend.cpp
index 1d989bcc..8e343315 100644
--- a/src/location/qgeosatelliteinfosource_npe_backend.cpp
+++ b/src/location/qgeosatelliteinfosource_npe_backend.cpp
@@ -41,6 +41,12 @@
#include "qgeosatelliteinfosource_npe_backend_p.h"
#include <sys/stat.h>
+
+#include <QtCore/QJsonObject>
+#include <QtAddOnJsonStream/jsonstream.h>
+
+QT_USE_NAMESPACE_JSONSTREAM
+
// #include <mtlocationd/locationd-strings.h>
// API for socket communication towards locationd
@@ -87,9 +93,9 @@ bool QGeoSatelliteInfoSourceNpeBackend::init()
if (mSocket) {
connect(mSocket, SIGNAL(connected()), this, SLOT(onSocketConnected()));
connect(mSocket, SIGNAL(disconnected()), this, SLOT(onSocketDisconnected()));
- mStream = new VariantStream(mSocket);
+ mStream = new JsonStream(mSocket);
if (mStream) {
- connect(mStream, SIGNAL(receive(const QVariantMap&)), this, SLOT(onStreamReceived(const QVariantMap&)), Qt::QueuedConnection);
+ connect(mStream, SIGNAL(messageReceived(const QVariantMap&)), this, SLOT(onStreamReceived(const QVariantMap&)), Qt::QueuedConnection);
}
mSocket->connectToServer((QLatin1String)"/var/run/locationd/locationd.socket");
return(mSocket->waitForConnected(500)); // wait up to 0.5 seconds to get connected, otherwise return false
@@ -101,21 +107,21 @@ bool QGeoSatelliteInfoSourceNpeBackend::init()
void QGeoSatelliteInfoSourceNpeBackend::setUpdateInterval(int msec)
{
- QVariantMap action;
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(minimumUpdateIntervalReceived()), &loop, SLOT(quit()));
- action.insert(JsonDbString::kActionStr, kgetMinimumUpdateInterval);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kgetMinimumUpdateInterval;
mStream->send(action);
loop.exec(); // wait for minimumUpdateIntervalReceived() signal sent by slot onStreamReceived
if (msec < minInterval && msec != 0)
msec = minInterval;
QGeoSatelliteInfoSource::setUpdateInterval(msec);
if (!requestTimer->isActive()) {
- QVariantMap actionUpdate;
- QVariantMap object;
- actionUpdate.insert(JsonDbString::kActionStr, ksetUpdateInterval);
- object.insert(kinterval, msec);
- actionUpdate.insert(JsonDbString::kDataStr, object);
+ QJsonObject actionUpdate;
+ QJsonObject object;
+ actionUpdate[JsonDbString::kActionStr] = ksetUpdateInterval;
+ object[kinterval] = msec;
+ actionUpdate[JsonDbString::kDataStr] = object;
mStream->send(actionUpdate);
}
}
@@ -123,10 +129,10 @@ void QGeoSatelliteInfoSourceNpeBackend::setUpdateInterval(int msec)
int QGeoSatelliteInfoSourceNpeBackend::minimumUpdateInterval() const
{
- QVariantMap action;
QEventLoop loop; // loop to wait for response from locationd (asynchronous socket connection)
connect( this, SIGNAL(minimumUpdateIntervalReceived()), &loop, SLOT(quit()));
- action.insert(JsonDbString::kActionStr, kgetMinimumUpdateInterval);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = kgetMinimumUpdateInterval;
mStream->send(action);
loop.exec(); // wait for minimumUpdateIntervalReceived() signal sent by slot onStreamReceived
return(minInterval);
@@ -137,8 +143,8 @@ void QGeoSatelliteInfoSourceNpeBackend::startUpdates()
{
if (!satOngoing) {
satOngoing = true;
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, ksatelliteStartUpdates);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = ksatelliteStartUpdates;
mStream->send(action);
}
}
@@ -148,8 +154,8 @@ void QGeoSatelliteInfoSourceNpeBackend::stopUpdates()
{
if (satOngoing && !requestTimer->isActive()) {
satOngoing = false;
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, ksatelliteStopUpdates);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = ksatelliteStopUpdates;
mStream->send(action);
}
}
@@ -170,18 +176,18 @@ void QGeoSatelliteInfoSourceNpeBackend::requestUpdate(int timeout)
// get satellite update as fast as possible in case of ongoing tracking session
if ( satOngoing ) {
if ( QGeoSatelliteInfoSource::updateInterval() != minimumInterval) {
- QVariantMap actionUpdate;
- QVariantMap object;
- actionUpdate.insert(JsonDbString::kActionStr, ksetUpdateInterval);
- object.insert(kinterval, minimumInterval);
- actionUpdate.insert(JsonDbString::kDataStr, object);
+ QJsonObject actionUpdate;
+ QJsonObject object;
+ actionUpdate[JsonDbString::kActionStr] = ksetUpdateInterval;
+ object[kinterval] = minimumInterval;
+ actionUpdate[JsonDbString::kDataStr] = object;
mStream->send(actionUpdate);
}
}
// request the update only if no tracking session is active
if ( !satOngoing) {
- QVariantMap action;
- action.insert(JsonDbString::kActionStr, ksatelliteRequestUpdate);
+ QJsonObject action;
+ action[JsonDbString::kActionStr] = ksatelliteRequestUpdate;
mStream->send(action);
}
requestTimer->start(timeout);
diff --git a/src/location/qgeosatelliteinfosource_npe_backend_p.h b/src/location/qgeosatelliteinfosource_npe_backend_p.h
index 9b9f8b51..fc2f6012 100644
--- a/src/location/qgeosatelliteinfosource_npe_backend_p.h
+++ b/src/location/qgeosatelliteinfosource_npe_backend_p.h
@@ -55,12 +55,16 @@
#include "qgeosatelliteinfosource.h"
#include "qgeosatelliteinfo.h"
-#include <mt-client/variantstream.h>
#include <private/jsondb-strings_p.h>
#include <qlocalsocket.h>
#include <qeventloop.h>
#include <qtimer.h>
+#include <QtAddOnJsonStream/jsonstream-global.h>
+
+QT_BEGIN_NAMESPACE_JSONSTREAM
+class JsonStream;
+QT_END_NAMESPACE_JSONSTREAM
Q_USE_JSONDB_NAMESPACE
@@ -92,7 +96,7 @@ private Q_SLOTS:
private:
QLocalSocket* mSocket;
- VariantStream* mStream;
+ QtAddOn::JsonStream::JsonStream* mStream;
bool satOngoing;
QTimer* requestTimer;
int minInterval;