diff options
author | Alex Wilson <alex.wilson@nokia.com> | 2012-03-07 16:38:50 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-12 03:25:51 +0100 |
commit | 369fa99b132f8c1425da8a41f1436b8d86aaa50e (patch) | |
tree | a13d675390d1590df27c70a4ee47b6490cc58800 /src/location/qgeopositioninfosource_simulator.cpp | |
parent | c435861528161ee931287034f41023c11dfb7ba3 (diff) | |
download | qtlocation-369fa99b132f8c1425da8a41f1436b8d86aaa50e.tar.gz |
Update positioning sources to use new plugin style
Notably, also splits the default sources that were previously compiled
into the library, out into their own plugins. This follows a similar
pattern to the geoservices change.
We also drop the "plugin whitelisting" feature in favour of a simple
Priority value in the plugin JSON -- the whitelist provides no
additional security over this solution on any of our platforms.
Task-number: QTBUG-24331
Change-Id: I62a9c940157ad2e33a9a575fa09633b98656b276
Reviewed-by: Alex <alex.blasche@nokia.com>
Diffstat (limited to 'src/location/qgeopositioninfosource_simulator.cpp')
-rw-r--r-- | src/location/qgeopositioninfosource_simulator.cpp | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/src/location/qgeopositioninfosource_simulator.cpp b/src/location/qgeopositioninfosource_simulator.cpp deleted file mode 100644 index f1b213d0..00000000 --- a/src/location/qgeopositioninfosource_simulator.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtLocation module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qgeopositioninfosource_simulator_p.h" -#include "qlocationdata_simulator_p.h" -#include "qlocationconnection_simulator_p.h" - -#include <QtCore/QDebug> -#include <QtCore/QTimer> -#include <QtCore/QDataStream> - -#include <QtNetwork/QLocalSocket> - -QT_BEGIN_NAMESPACE - -namespace Simulator -{ - QGeoPositionInfo toPositionInfo(const QGeoPositionInfoData &data) - { - QDateTime timestamp; - if (data.dateTime.isValid()) - timestamp = data.dateTime; - else - timestamp = QDateTime::currentDateTime(); - QGeoCoordinate coord(data.latitude, data.longitude, data.altitude); - QGeoPositionInfo info(coord, timestamp); - info.setAttribute(QGeoPositionInfo::Direction, data.direction); - info.setAttribute(QGeoPositionInfo::GroundSpeed, data.groundSpeed); - info.setAttribute(QGeoPositionInfo::VerticalSpeed, data.verticalSpeed); - info.setAttribute(QGeoPositionInfo::MagneticVariation, data.magneticVariation); - info.setAttribute(QGeoPositionInfo::HorizontalAccuracy, data.horizontalAccuracy); - info.setAttribute(QGeoPositionInfo::VerticalAccuracy, data.verticalAccuracy); - return info; - } -} //namespace - -// Location API - -QGeoPositionInfoSourceSimulator::QGeoPositionInfoSourceSimulator(QObject *parent) - : QGeoPositionInfoSource(parent) - , timer(new QTimer(this)) - , requestTimer(new QTimer(this)) - , m_positionError(QGeoPositionInfoSource::UnknownSourceError) -{ - Simulator::LocationConnection::ensureSimulatorConnection(); - - connect(timer, SIGNAL(timeout()), this, SLOT(updatePosition())); - requestTimer->setSingleShot(true); - connect(requestTimer, SIGNAL(timeout()), this, SLOT(updatePosition())); -} - -QGeoPositionInfoSourceSimulator::~QGeoPositionInfoSourceSimulator() -{ -} - -QGeoPositionInfo QGeoPositionInfoSourceSimulator::lastKnownPosition(bool /*fromSatellitePositioningMethodsOnly*/) const -{ - return lastPosition; -} - -QGeoPositionInfoSource::PositioningMethods QGeoPositionInfoSourceSimulator::supportedPositioningMethods() const -{ - // Is GPS now Satelite or not? Guessing so... - return QGeoPositionInfoSource::SatellitePositioningMethods; -} - -void QGeoPositionInfoSourceSimulator::setUpdateInterval(int msec) -{ - // If msec is 0 we send updates as data becomes available, otherwise we force msec to be equal - // to or larger than the minimum update interval. - if (msec != 0 && msec < minimumUpdateInterval()) - msec = minimumUpdateInterval(); - - QGeoPositionInfoSource::setUpdateInterval(msec); - if (timer->isActive()) { - timer->setInterval(msec); - timer->start(); - } -} - -int QGeoPositionInfoSourceSimulator::minimumUpdateInterval() const -{ - return qtPositionInfo()->minimumInterval; -} - -void QGeoPositionInfoSourceSimulator::startUpdates() -{ - int interval = updateInterval(); - if (interval < minimumUpdateInterval()) - interval = minimumUpdateInterval(); - timer->setInterval(interval); - timer->start(); -} - -void QGeoPositionInfoSourceSimulator::stopUpdates() -{ - timer->stop(); -} - -void QGeoPositionInfoSourceSimulator::requestUpdate(int timeout) -{ - if (!requestTimer->isActive()) { - // Get a single update within timeframe - if (timeout < minimumUpdateInterval() && timeout != 0) - emit updateTimeout(); - else { - requestTimer->start(timeout * qreal(0.75)); - } - } -} - -void QGeoPositionInfoSourceSimulator::updatePosition() -{ - if (qtPositionInfo()->enabled) { - lastPosition = Simulator::toPositionInfo(*qtPositionInfo()); - emit positionUpdated(lastPosition); - } else { - emit updateTimeout(); - } -} - -QGeoPositionInfoSource::Error QGeoPositionInfoSourceSimulator::error() const -{ - return m_positionError; -} - - -void QGeoPositionInfoSourceSimulator::setError(QGeoPositionInfoSource::Error positionError) -{ - m_positionError = positionError; - emit QGeoPositionInfoSource::error(positionError); -} - -#include "moc_qgeopositioninfosource_simulator_p.cpp" - -QT_END_NAMESPACE |