File indexing completed on 2024-05-05 03:50:36

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Daniel Marth <danielmarth@gmx.at>
0004 // SPDX-FileCopyrightText: 2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
0005 //
0006 
0007 #ifndef QT_POSITIONING_POSITION_PROVIDER_PLUGIN_H
0008 #define QT_POSITIONING_POSITION_PROVIDER_PLUGIN_H
0009 
0010 #include "PositionProviderPlugin.h"
0011 
0012 #include <QGeoPositionInfo>
0013 
0014 namespace Marble
0015 {
0016 
0017 class QtPositioningPositionProviderPluginPrivate;
0018 
0019 class QtPositioningPositionProviderPlugin: public PositionProviderPlugin
0020 {
0021     Q_OBJECT
0022     Q_PLUGIN_METADATA(IID "org.kde.marble.QtPositioningPositionProviderPlugin")
0023     Q_INTERFACES( Marble::PositionProviderPluginInterface )
0024 
0025 public:
0026     QtPositioningPositionProviderPlugin();
0027     ~QtPositioningPositionProviderPlugin() override;
0028 
0029     // Implementing PluginInterface
0030     QString name() const override;
0031     QString nameId() const override;
0032     QString guiString() const override;
0033     QString version() const override;
0034     QString description() const override;
0035     QString copyrightYears() const override;
0036     QVector<PluginAuthor> pluginAuthors() const override;
0037     QIcon icon() const override;
0038     void initialize() override;
0039     bool isInitialized() const override;
0040     qreal speed() const override;
0041     qreal direction() const override;
0042     QDateTime timestamp() const override;
0043 
0044     // Implementing PositionProviderPlugin
0045     PositionProviderPlugin * newInstance() const override;
0046 
0047     // Implementing PositionProviderPluginInterface
0048     PositionProviderStatus status() const override;
0049     GeoDataCoordinates position() const override;
0050     GeoDataAccuracy accuracy() const override;
0051 
0052 private Q_SLOTS:
0053     /** Regular (each second) position and status update */
0054     void update();
0055     void update(const QGeoPositionInfo& position);
0056 
0057 private:
0058     QtPositioningPositionProviderPluginPrivate* const d;
0059 
0060 };
0061 
0062 }
0063 
0064 #endif // QT_POSITION_PROVIDER_PLUGIN_H