src/location/qgeosatelliteinfosource.cpp
changeset 0 876b1a06bc25
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/location/qgeosatelliteinfosource.cpp	Wed Aug 25 15:49:42 2010 +0300
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** 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, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qgeosatelliteinfosource.h>
+
+#if defined(Q_OS_SYMBIAN)
+#   include "qgeosatelliteinfosource_s60_p.h"
+#elif defined(Q_OS_WINCE)
+#   include "qgeosatelliteinfosource_wince_p.h"
+#elif defined(Q_WS_MAEMO_6)
+#   include "qgeosatelliteinfosource_maemo_p.h"
+#elif defined(Q_WS_MAEMO_5)
+#   include "qgeosatelliteinfosource_maemo5_p.h"
+#endif
+
+QTM_BEGIN_NAMESPACE
+
+/*!
+    \class QGeoSatelliteInfoSource
+    \brief The QGeoSatelliteInfoSource class is an abstract base class for the distribution of satellite information updates.
+    \ingroup location
+
+    The static function QGeoSatelliteInfoSource::createDefaultSource() creates a default
+    satellite data source that is appropriate for the platform, if one is
+    available. Otherwise, QGeoSatelliteInfoSource can be subclassed to create an
+    appropriate custom source of satellite data.
+
+    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.
+
+    \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.
+*/
+
+/*!
+    Creates a source with the specified \a parent.
+*/
+QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent)
+        : QObject(parent)
+{
+}
+
+/*!
+    Creates and returns a source with the specified \a parent that reads
+    from the system's default source of satellite update information.
+
+    Returns 0 if the system has no default source.
+*/
+QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent)
+{
+#if defined(Q_OS_SYMBIAN)
+    CQGeoSatelliteInfoSourceS60 *ret = NULL;
+    TRAPD(error, ret = CQGeoSatelliteInfoSourceS60::NewL(parent));
+    if (error != KErrNone)
+        return 0;
+    return ret;
+#elif defined(Q_OS_WINCE)
+    return new QGeoSatelliteInfoSourceWinCE(parent);
+#elif (defined(Q_WS_MAEMO_6)) || (defined(Q_WS_MAEMO_5))
+    QGeoSatelliteInfoSourceMaemo *source = new QGeoSatelliteInfoSourceMaemo(parent);
+    int status = source->init();
+
+    if (status == -1) {
+        delete source;
+        return 0;
+    }
+
+    return source;
+#else
+    Q_UNUSED(parent);
+    return 0;
+#endif
+}
+
+/*!
+    \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.
+*/
+
+/*!
+    \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), 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.
+*/
+
+#include "moc_qgeosatelliteinfosource.cpp"
+
+QTM_END_NAMESPACE