diff options
Diffstat (limited to 'src/location/qgeosatelliteinfosource.cpp')
-rw-r--r-- | src/location/qgeosatelliteinfosource.cpp | 320 |
1 files changed, 0 insertions, 320 deletions
diff --git a/src/location/qgeosatelliteinfosource.cpp b/src/location/qgeosatelliteinfosource.cpp deleted file mode 100644 index 509d4781..00000000 --- a/src/location/qgeosatelliteinfosource.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtLocation module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, 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, Digia gives you certain additional -** rights. These rights are described in the Digia 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. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include <qgeosatelliteinfosource.h> -#include "qgeopositioninfosourcefactory.h" -#include "qgeopositioninfosource_p.h" -#include <QPluginLoader> -#include <QStringList> -#include <QCryptographicHash> -#include <QtCore/private/qfactoryloader_p.h> -#include <QFile> - -QT_BEGIN_NAMESPACE - -/*! - \class QGeoSatelliteInfoSource - \inmodule QtLocation - \ingroup QtLocation-positioning - \since Qt Location 5.0 - - \brief The QGeoSatelliteInfoSource class is an abstract base class for the distribution of satellite information updates. - - The static function QGeoSatelliteInfoSource::createDefaultSource() creates a default - satellite data source that is appropriate for the platform, if one is - available. Otherwise, available QGeoPositionInfoSourceFactory plugins will - be checked for one that has a satellite data source available. - - Call startUpdates() and stopUpdates() to start and stop regular updates, - or requestUpdate() to request a single update. - When an update is available, satellitesInViewUpdated() and/or - satellitesInUseUpdated() will be emitted. - - If regular satellite updates are required, setUpdateInterval() can be used - to specify how often these updates should be emitted. If no interval is - specified, updates are simply provided whenever they are available. - For example: - - \code - // Emit updates every 10 seconds if available - QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(0); - if (source) - source->setUpdateInterval(10000); - \endcode - - To remove an update interval that was previously set, call - setUpdateInterval() with a value of 0. - - Note that the satellite source may have a minimum value requirement for - update intervals, as returned by minimumUpdateInterval(). - - \warning On Windows CE it is not possible to detect if a device is GPS enabled. - The default satellite source on a Windows CE device without GPS support will never provide any satellite data. -*/ - -class QGeoSatelliteInfoSourcePrivate -{ -public: - int interval; -}; - -/*! - Creates a satellite source with the specified \a parent. -*/ -QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent) - : QObject(parent), - d(new QGeoSatelliteInfoSourcePrivate) -{ - d->interval = 0; -} - -/*! - Destroys the satellite source. -*/ -QGeoSatelliteInfoSource::~QGeoSatelliteInfoSource() -{ - delete d; -} - -/*! - \property QGeoSatelliteInfoSource::updateInterval - \brief This property holds the requested interval in milliseconds between each update. - - If the update interval is not set (or is set to 0) the - source will provide updates as often as necessary. - - If the update interval is set, the source will provide updates at an - interval as close to the requested interval as possible. If the requested - interval is less than the minimumUpdateInterval(), - the minimum interval is used instead. - - Changes to the update interval will happen as soon as is practical, however the - time the change takes may vary between implementations. Whether or not the elapsed - time from the previous interval is counted as part of the new interval is also - implementation dependent. - - The default value for this property is 0. - - Note: Subclass implementations must call the base implementation of - setUpdateInterval() so that updateInterval() returns the correct value. -*/ -void QGeoSatelliteInfoSource::setUpdateInterval(int msec) -{ - d->interval = msec; -} - -int QGeoSatelliteInfoSource::updateInterval() const -{ - return d->interval; -} - - - -/*! - Creates and returns a source with the specified \a parent that reads - from the system's default source of satellite update information, or the - highest priority available plugin. - - Returns 0 if the system has no default position source, no valid plugins - could be found or the user does not have the permission to access the satellite data. -*/ -QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent) -{ - QList<QJsonObject> plugins = QGeoPositionInfoSourcePrivate::pluginsSorted(); - foreach (const QJsonObject &obj, plugins) { - if (obj.value(QStringLiteral("Satellite")).isBool() - && obj.value(QStringLiteral("Satellite")).toBool()) - { - QGeoPositionInfoSourcePrivate d; - d.metaData = obj; - d.loadPlugin(); - QGeoSatelliteInfoSource *s = 0; - if (d.factory) - s = d.factory->satelliteInfoSource(parent); - return s; - } - } - - return 0; -} - -/*! - Creates and returns a source with the given \a parent, - by loading the plugin named \a sourceName. - - Returns 0 if the plugin cannot be found. -*/ -QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createSource(const QString &sourceName, QObject *parent) -{ - QHash<QString, QJsonObject> plugins = QGeoPositionInfoSourcePrivate::plugins(); - if (plugins.contains(sourceName)) { - QGeoPositionInfoSourcePrivate d; - d.metaData = plugins.value(sourceName); - d.loadPlugin(); - QGeoSatelliteInfoSource *src = 0; - if (d.factory) - src = d.factory->satelliteInfoSource(parent); - return src; - } - - return 0; -} - -/*! - Returns a list of available source plugins, including the default system - backend if one is available. -*/ -QStringList QGeoSatelliteInfoSource::availableSources() -{ - QStringList plugins; - QHash<QString, QJsonObject> meta = QGeoPositionInfoSourcePrivate::plugins(); - foreach (const QString &name, meta.keys()) { - if (meta.value(name).value(QStringLiteral("Satellite")).isBool() - && meta.value(name).value(QStringLiteral("Satellite")).toBool()) { - plugins << name; - } - } - - return plugins; -} - -/*! - \fn void QGeoSatelliteInfoSource::satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites); - - If startUpdates() or requestUpdate() is called, this signal is emitted - when an update is available on the satellites that are - currently in view. - - The \a satellites parameter holds the satellites currently in view. -*/ - -/*! - \fn void QGeoSatelliteInfoSource::satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites); - - If startUpdates() or requestUpdate() is called, this signal is emitted - when an update is available on the number of satellites that are - currently in use. - - These are the satellites that are used to get a "fix" - that - is, those used to determine the current position. - - The \a satellites parameter holds the satellites currently in use. -*/ - -/*! - \property QGeoSatelliteInfoSource::minimumUpdateInterval - \brief This property holds the minimum time (in milliseconds) required to retrieve a satellite update. - - This is the minimum value accepted by setUpdateInterval() and - requestUpdate(). -*/ - - -/*! - \fn virtual void QGeoSatelliteInfoSource::startUpdates() = 0; - - Starts emitting updates at regular intervals. The updates will be - provided whenever new satellite information becomes available. - - \sa satellitesInViewUpdated(), satellitesInUseUpdated() -*/ - -/*! - \fn virtual void QGeoSatelliteInfoSource::stopUpdates() = 0; - - Stops emitting updates at regular intervals. -*/ - -/*! - \fn virtual void QGeoSatelliteInfoSource::requestUpdate(int timeout = 0); - - Attempts to get the current satellite information and emit - satellitesInViewUpdated() and satellitesInUseUpdated() with this - information. If the current position cannot be found - within the given \a timeout (in milliseconds) or if \a timeout is less than the value returned by - minimumUpdateInterval(), requestTimeout() is - emitted. - - If the timeout is zero, the timeout defaults to a reasonable timeout - period as appropriate for the source. - - This does nothing if another update request is in progress. However - it can be called even if startUpdates() has already been called and - regular updates are in progress. -*/ - -/*! - \fn void QGeoSatelliteInfoSource::requestTimeout(); - - Emitted if requestUpdate() was called and the current satellite - information could not be retrieved within the specified timeout. -*/ - -/*! - \fn QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error() const = 0 - - Returns the last error that occurred. -*/ - -/*! - \fn void QGeoSatelliteInfoSource::error(QGeoSatelliteInfoSource::Error satelliteError) - - This signal is emitted after an error occurred. The \a satelliteError - parameter describes the type of error that occurred. - -*/ - -/*! - \enum QGeoSatelliteInfoSource::Error - - The Error enumeration represents the errors which can occur. - - \value AccessError The connection setup to the remote positioning backend failed because the - application lacked the required privileges. - \value ClosedError The remote satellite backend closed the connection, which happens for example in case - the user is switching location services to off. This object becomes invalid and should be deleted. - A new satellite source can be created by calling createDefaultSource() later on. - \value UnknownSourceError An unidentified error occurred. - */ - - -#include "moc_qgeosatelliteinfosource.cpp" - -QT_END_NAMESPACE |