[platform] Separete the location_service lib

Signed-off-by: Ferenc Géczi <ferenc.gm@gmail.com>
This commit is contained in:
Ferenc Géczi
2025-01-01 00:00:00 +00:00
committed by Konstantin Pastbin
parent c7aacb3b64
commit 5110867b38
11 changed files with 39 additions and 49 deletions

View File

@@ -0,0 +1,28 @@
#pragma once
#include "platform/location_service/location_service.hpp"
#include <QGeoPositionInfoSource>
class QtLocationService : public QObject, public location::LocationService
{
Q_OBJECT
QGeoPositionInfoSource *m_positionSource;
// Unfortunately when the source is `geoclue2`
// we would need access to the `Active` D-Bus property
// https://www.freedesktop.org/software/geoclue/docs
// /gdbus-org.freedesktop.GeoClue2.Client.html#gdbus-property-org-freedesktop-GeoClue2-Client.Active
// But `QGeoPositionInfoSource` doesn't expose that so we have to deduce its state.
bool m_clientIsActive = false;
public:
explicit QtLocationService(location::LocationObserver &, std::string const &);
virtual ~QtLocationService() {};
virtual void Start();
virtual void Stop();
public slots:
void OnLocationUpdate(QGeoPositionInfo const &);
void OnErrorOccurred(QGeoPositionInfoSource::Error);
void OnSupportedPositioningMethodsChanged();
};