File indexing completed on 2024-04-28 03:50:08
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org> 0004 // 0005 0006 #ifndef GPSDPOSITIONPROVIDERPLUGIN_H 0007 #define GPSDPOSITIONPROVIDERPLUGIN_H 0008 0009 #include "PositionProviderPlugin.h" 0010 #include "GeoDataCoordinates.h" 0011 #include "GeoDataAccuracy.h" 0012 0013 #include <QDateTime> 0014 0015 #include <libgpsmm.h> 0016 0017 0018 namespace Marble 0019 { 0020 0021 class GpsdThread; 0022 0023 class GpsdPositionProviderPlugin: public PositionProviderPlugin 0024 { 0025 Q_OBJECT 0026 Q_PLUGIN_METADATA(IID "org.kde.marble.GpsdPositionProviderPlugin") 0027 Q_INTERFACES( Marble::PositionProviderPluginInterface ) 0028 0029 public: 0030 GpsdPositionProviderPlugin(); 0031 ~GpsdPositionProviderPlugin() override; 0032 0033 QString name() const override; 0034 QString nameId() const override; 0035 QString guiString() const override; 0036 QString version() const override; 0037 QString description() const override; 0038 QString copyrightYears() const override; 0039 QVector<PluginAuthor> pluginAuthors() const override; 0040 QIcon icon() const override; 0041 void initialize() override; 0042 bool isInitialized() const override; 0043 0044 PositionProviderPlugin * newInstance() const override; 0045 0046 PositionProviderStatus status() const override; 0047 GeoDataCoordinates position() const override; 0048 GeoDataAccuracy accuracy() const override; 0049 QString error() const override; 0050 qreal speed() const override; 0051 qreal direction() const override; 0052 QDateTime timestamp() const override; 0053 0054 private: 0055 GpsdThread* m_thread; 0056 PositionProviderStatus m_status; 0057 GeoDataCoordinates m_position; 0058 GeoDataAccuracy m_accuracy; 0059 qreal m_speed; 0060 qreal m_track; 0061 QDateTime m_timestamp; 0062 0063 private Q_SLOTS: 0064 void update(gps_data_t data); 0065 }; 0066 0067 } 0068 0069 #endif