[-]
[+]
|
Changed |
_service:tar_git:geoclue-provider-hybris.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:geoclue-providers-hybris.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/mer-hybris/geoclue-providers-hybris.git</param>
<param name="branch">master</param>
- <param name="revision">HEAD</param>
+ <param name="revision">8775abcf9983abb4b8be28ad43f7a193edac5605</param>
<param name="token"></param>
<param name="debian"></param>
<param name="dumb"></param>
|
[-]
[+]
|
Added |
_service:tar_git:geoclue-provider-hybris-0.2.17.tar.gz/geoclue-providers-hybris.pro
^
|
@@ -0,0 +1,54 @@
+TARGET = geoclue-hybris
+CONFIG += console
+CONFIG -= app_bundle
+TEMPLATE = app
+
+target.path = /usr/libexec
+
+QT = core dbus network
+
+CONFIG += link_pkgconfig
+PKGCONFIG += libhardware android-headers connman-qt5 qofono-qt5 qofonoext systemsettings
+
+LIBS += -lrt
+
+dbus_geoclue.files = \
+ org.freedesktop.Geoclue.xml \
+ org.freedesktop.Geoclue.Position.xml \
+ org.freedesktop.Geoclue.Velocity.xml \
+ org.freedesktop.Geoclue.Satellite.xml
+dbus_geoclue.header_flags = "-l HybrisProvider -i hybrisprovider.h"
+dbus_geoclue.source_flags = "-l HybrisProvider"
+
+DBUS_ADAPTORS = \
+ dbus_geoclue
+
+DBUS_INTERFACES = \
+ com.jollamobile.Connectiond.xml \
+ com.jolla.lipstick.ConnectionSelector.xml
+
+session_dbus_service.files = org.freedesktop.Geoclue.Providers.Hybris.service
+session_dbus_service.path = /usr/share/dbus-1/services
+
+system_dbus_conf.files = com.jollamobile.gps.conf
+system_dbus_conf.path = /etc/dbus-1/system.d
+
+geoclue_provider.files = geoclue-hybris.provider
+geoclue_provider.path = /usr/share/geoclue-providers
+
+HEADERS += \
+ hybrisprovider.h \
+ locationtypes.h
+
+SOURCES += \
+ main.cpp \
+ hybrisprovider.cpp
+
+OTHER_FILES = \
+ $${session_dbus_service.files} \
+ $${system_dbus_service.files} \
+ $${system_dbus_conf.files} \
+ $${geoclue_provider.files} \
+ rpm/geoclue-providers-hybris.spec
+
+INSTALLS += target session_dbus_service system_dbus_conf geoclue_provider
|
[-]
[+]
|
Changed |
_service:tar_git:geoclue-provider-hybris-0.2.17.tar.gz/hybrisprovider.cpp
^
|
@@ -20,6 +20,7 @@
#include "connectiond_interface.h"
#include "connectionselector_interface.h"
+#include <QtCore/QLoggingCategory>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QHostAddress>
@@ -37,6 +38,8 @@
#include <qofonoextmodemmanager.h>
+#include <android-config.h>
+
#include <strings.h>
#include <sys/time.h>
@@ -46,11 +49,11 @@
Q_LOGGING_CATEGORY(lcGeoclueHybrisNmea, "geoclue.provider.hybris.nmea")
Q_LOGGING_CATEGORY(lcGeoclueHybrisPosition, "geoclue.provider.hybris.position")
-HybrisProvider *staticProvider = Q_NULLPTR;
-
namespace
{
+HybrisProvider *staticProvider = 0;
+
const int QuitIdleTime = 30000;
const int FixTimeout = 30000;
const quint32 MinimumInterval = 1000;
@@ -73,12 +76,348 @@
const int MaxXtraServers = 3;
const QString XtraConfigFile = QStringLiteral("/etc/gps_xtra.ini");
-void gnssXtraDownloadRequest()
+void locationCallback(GpsLocation *location)
{
- QMetaObject::invokeMethod(staticProvider, "xtraDownloadRequest", Qt::QueuedConnection);
+ Location loc;
+
+ loc.setTimestamp(location->timestamp);
+
+ if (location->flags & GPS_LOCATION_HAS_LAT_LONG) {
+ loc.setLatitude(location->latitude);
+ loc.setLongitude(location->longitude);
+ }
+
+ if (location->flags & GPS_LOCATION_HAS_ALTITUDE)
+ loc.setAltitude(location->altitude);
+
+ if (location->flags & GPS_LOCATION_HAS_SPEED)
+ loc.setSpeed(location->speed / KnotsToMps);
+
+ if (location->flags & GPS_LOCATION_HAS_BEARING)
+ loc.setDirection(location->bearing);
+
+ if (location->flags & GPS_LOCATION_HAS_ACCURACY) {
+ Accuracy accuracy;
+ accuracy.setHorizontal(location->accuracy);
+ accuracy.setVertical(location->accuracy);
+ loc.setAccuracy(accuracy);
+ }
+
+ QMetaObject::invokeMethod(staticProvider, "setLocation", Qt::QueuedConnection,
+ Q_ARG(Location, loc));
+}
+
+void statusCallback(GpsStatus *status)
+{
+ switch (status->status) {
+ case GPS_STATUS_ENGINE_ON:
+ QMetaObject::invokeMethod(staticProvider, "engineOn", Qt::QueuedConnection);
+ break;
+ case GPS_STATUS_ENGINE_OFF:
+ QMetaObject::invokeMethod(staticProvider, "engineOff", Qt::QueuedConnection);
+ break;
+ default:
+ ;
+ }
+}
+
+void svStatusCallback(GpsSvStatus *svStatus)
+{
+ QList<SatelliteInfo> satellites;
+ QList<int> usedPrns;
+
+ for (int i = 0; i < svStatus->num_svs; ++i) {
+ SatelliteInfo satInfo;
+ GpsSvInfo &svInfo = svStatus->sv_list[i];
+ satInfo.setPrn(svInfo.prn);
+ satInfo.setSnr(svInfo.snr);
+ satInfo.setElevation(svInfo.elevation);
+ satInfo.setAzimuth(svInfo.azimuth);
+ satellites.append(satInfo);
+
+ if (svStatus->used_in_fix_mask & (1 << i))
+ usedPrns.append(svInfo.prn);
+ }
+
+ QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
+ Q_ARG(QList<SatelliteInfo>, satellites),
+ Q_ARG(QList<int>, usedPrns));
+}
+
+#if GEOCLUE_ANDROID_GPS_INTERFACE == 3
+void gnssSvStatusCallback(GnssSvStatus *svStatus)
+{
+ QList<SatelliteInfo> satellites;
+ QList<int> usedPrns;
+
+ for (int i = 0; i < svStatus->num_svs; ++i) {
+ SatelliteInfo satInfo;
+ GnssSvInfo &svInfo = svStatus->gnss_sv_list[i];
+ satInfo.setPrn(svInfo.svid);
+ satInfo.setSnr(svInfo.c_n0_dbhz);
+ satInfo.setElevation(svInfo.elevation);
+ satInfo.setAzimuth(svInfo.azimuth);
+ satellites.append(satInfo);
+
+ if (svInfo.flags & GNSS_SV_FLAGS_USED_IN_FIX)
+ usedPrns.append(svInfo.svid);
+ }
+
+ QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
+ Q_ARG(QList<SatelliteInfo>, satellites),
+ Q_ARG(QList<int>, usedPrns));
+}
+#endif
+
+#ifdef USE_GPS_VENDOR_EXTENSION
+void gnssSvStatusCallback_custom(GnssSvStatus *svStatus)
+{
+ QList<SatelliteInfo> satellites;
+ QList<int> usedPrns;
+
+ for (int i = 0; i < svStatus->num_svs; ++i) {
+ SatelliteInfo satInfo;
+ GnssSvInfo &svInfo = svStatus->sv_list[i];
+ satInfo.setPrn(svInfo.prn);
+ satInfo.setSnr(svInfo.snr);
+ satInfo.setElevation(svInfo.elevation);
+ satInfo.setAzimuth(svInfo.azimuth);
+ satellites.append(satInfo);
+ }
+
+ QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
+ Q_ARG(QList<SatelliteInfo>, satellites),
+ Q_ARG(QList<int>, usedPrns));
+}
+#endif
+
+bool nmeaChecksumValid(const QByteArray &nmea)
+{
+ unsigned char checksum = 0;
+ for (int i = 1; i < nmea.length(); ++i) {
+ if (nmea.at(i) == '*') {
+ if (nmea.length() < i+3)
+ return false;
+
+ checksum ^= nmea.mid(i+1, 2).toInt(0, 16);
+
+ break;
+ }
+
+ checksum ^= nmea.at(i);
+ }
+
+ return checksum == 0;
+}
+
+void parseRmc(const QByteArray &nmea)
+{
+ QList<QByteArray> fields = nmea.split(',');
+ if (fields.count() < 12)
+ return;
+
+ bool ok;
+ double variation = fields.at(10).toDouble(&ok);
+ if (ok) {
+ if (fields.at(11) == "W")
+ variation = -variation;
+
+ QMetaObject::invokeMethod(staticProvider, "setMagneticVariation", Qt::QueuedConnection,
+ Q_ARG(double, variation));
+ }
+}
+
+void nmeaCallback(GpsUtcTime timestamp, const char *nmeaData, int length)
+{
+ // Trim trailing whitepsace
+ while (length > 0 && isspace(nmeaData[length-1]))
+ --length;
+
+ if (length == 0)
+ return;
+
+ QByteArray nmea = QByteArray::fromRawData(nmeaData, length);
+
+ qCDebug(lcGeoclueHybrisNmea) << timestamp << nmea;
|
[-]
[+]
|
Changed |
_service:tar_git:geoclue-provider-hybris-0.2.17.tar.gz/hybrisprovider.h
^
|
@@ -13,7 +13,6 @@
#ifndef HYBRISPROVIDER_H
#define HYBRISPROVIDER_H
-#include <QtCore/QLoggingCategory>
#include <QtCore/QObject>
#include <QtCore/QStringList>
#include <QtCore/QBasicTimer>
@@ -21,15 +20,23 @@
#include <QtDBus/QDBusContext>
#include <QtNetwork/QNetworkReply>
-#include "hybrislocationbackend.h"
+#include <android-version.h>
+#include <hardware/gps.h>
#include <locationsettings.h>
#include "locationtypes.h"
-Q_DECLARE_LOGGING_CATEGORY(lcGeoclueHybris)
-Q_DECLARE_LOGGING_CATEGORY(lcGeoclueHybrisNmea)
-Q_DECLARE_LOGGING_CATEGORY(lcGeoclueHybrisPosition)
+// Define versions of the Android GPS interface supported.
+#if ANDROID_VERSION_MAJOR >= 7
+ #define GEOCLUE_ANDROID_GPS_INTERFACE 3
+#elif ANDROID_VERSION_MAJOR >= 5
+ #define GEOCLUE_ANDROID_GPS_INTERFACE 2
+#elif ANDROID_VERSION_MAJOR == 4 && ANDROID_VERSION_MINOR >= 2
+ #define GEOCLUE_ANDROID_GPS_INTERFACE 1
+#else
+ // By default expects Android 4.1
+#endif
QT_FORWARD_DECLARE_CLASS(QFileSystemWatcher)
QT_FORWARD_DECLARE_CLASS(QDBusServiceWatcher)
@@ -50,7 +57,6 @@
class HybrisProvider : public QObject, public QDBusContext
{
-friend class HybrisBackend;
Q_OBJECT
public:
@@ -172,7 +178,16 @@
void processConnectionContexts();
void processNextConnectionContext();
- HybrisLocationBackend *m_backend;
+ gps_device_t *m_gpsDevice;
+
+ const GpsInterface *m_gps;
+
+ const AGpsInterface *m_agps;
+ const AGpsRilInterface *m_agpsril;
+ const GpsNiInterface *m_gpsni;
+ const GpsXtraInterface *m_xtra;
+
+ const GpsDebugInterface *m_debug;
Location m_currentLocation;
@@ -241,8 +256,6 @@
double m_magneticVariation;
};
-extern HybrisProvider *staticProvider;
-
Q_DECLARE_OPERATORS_FOR_FLAGS(HybrisProvider::PositionFields)
Q_DECLARE_OPERATORS_FOR_FLAGS(HybrisProvider::VelocityFields)
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/binder/binderlocationbackend.cpp
^
|
@@ -1,1158 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Copyright (C) 2018 Matti Lehtimäki <matti.lehtimaki@gmail.com>
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#include "binderlocationbackend.h"
-
-#include "hybrisprovider.h"
-
-#include <QtNetwork/QHostAddress>
-
-#include <strings.h>
-#include <sys/time.h>
-
-#define GNSS_BINDER_DEFAULT_DEV "/dev/hwbinder"
-
-HybrisLocationBackend *getLocationBackend()
-{
- return qobject_cast<HybrisLocationBackend *>(new BinderLocationBackend());
-}
-
-enum GnssFunctions {
- GNSS_SET_CALLBACK = 1,
- GNSS_START = 2,
- GNSS_STOP = 3,
- GNSS_CLEANUP = 4,
- GNSS_INJECT_TIME = 5,
- GNSS_INJECT_LOCATION = 6,
- GNSS_DELETE_AIDING_DATA = 7,
- GNSS_SET_POSITION_MODE = 8,
- GNSS_GET_EXTENSION_AGNSS_RIL = 9,
- GNSS_GET_EXTENSION_GNSS_GEOFENCING = 10,
- GNSS_GET_EXTENSION_AGNSS = 11,
- GNSS_GET_EXTENSION_GNSS_NI = 12,
- GNSS_GET_EXTENSION_GNSS_MEASUREMENT = 13,
- GNSS_GET_EXTENSION_GNSS_NAVIGATION_MESSAGE = 14,
- GNSS_GET_EXTENSION_XTRA = 15,
- GNSS_GET_EXTENSION_GNSS_CONFIGURATION = 16,
- GNSS_GET_EXTENSION_GNSS_DEBUG = 17,
- GNSS_GET_EXTENSION_GNSS_BATCHING = 18
-};
-
-enum GnssCallbacks {
- GNSS_LOCATION_CB = 1,
- GNSS_STATUS_CB = 2,
- GNSS_SV_STATUS_CB = 3,
- GNSS_NMEA_CB = 4,
- GNSS_SET_CAPABILITIES_CB = 5,
- GNSS_ACQUIRE_WAKELOCK_CB = 6,
- GNSS_RELEASE_WAKELOCK_CB = 7,
- GNSS_REQUEST_TIME_CB = 8,
- GNSS_SET_SYSTEM_INFO_CB = 9
-};
-
-enum GnssDebudFunctions {
- GNSS_DEBUG_GET_DEBUG_DATA = 1
-};
-
-enum GnssNiFunctions {
- GNSS_NI_SET_CALLBACK = 1,
- GNSS_NI_RESPOND = 2
-};
-
-enum GnssNiCallbacks {
- GNSS_NI_NOTIFY_CB = 1
-};
-
-enum GnssXtraFunctions {
- GNSS_XTRA_SET_CALLBACK = 1,
- GNSS_XTRA_INJECT_XTRA_DATA = 2
-};
-
-enum GnssXtraCallbacks {
- GNSS_XTRA_DOWNLOAD_REQUEST_CB = 1
-};
-
-enum AGnssFunctions {
- AGNSS_SET_CALLBACK = 1,
- AGNSS_DATA_CONN_CLOSED = 2,
- AGNSS_DATA_CONN_FAILED = 3,
- AGNSS_SET_SERVER = 4,
- AGNSS_DATA_CONN_OPEN = 5
-};
-
-enum AGnssCallbacks {
- AGNSS_STATUS_IP_V4_CB = 1,
- AGNSS_STATUS_IP_V6_CB = 2
-};
-
-enum AGnssRilFunctions {
- AGNSS_RIL_SET_CALLBACK = 1,
- AGNSS_RIL_SET_REF_LOCATION = 2,
- AGNSS_RIL_SET_ID = 3,
- AGNSS_RIL_UPDATE_NETWORK_STATE = 4,
- AGNSS_RIL_UPDATE_NETWORK_AVAILABILITY = 5
-};
-
-enum AGnssRilCallbacks {
- AGNSS_RIL_REQUEST_REF_ID_CB = 1,
- AGNSS_RIL_REQUEST_REF_LOC_CB = 2
-};
-
-enum HybrisApnIpTypeEnum {
- HYBRIS_APN_IP_INVALID = 0,
- HYBRIS_APN_IP_IPV4 = 1,
- HYBRIS_APN_IP_IPV6 = 2,
- HYBRIS_APN_IP_IPV4V6 = 3
-};
-
-#define GNSS_IFACE(x) "android.hardware.gnss@1.0::" x
-#define GNSS_REMOTE GNSS_IFACE("IGnss")
-#define GNSS_CALLBACK GNSS_IFACE("IGnssCallback")
-#define GNSS_DEBUG_REMOTE GNSS_IFACE("IGnssDebug")
-#define GNSS_NI_REMOTE GNSS_IFACE("IGnssNi")
-#define GNSS_NI_CALLBACK GNSS_IFACE("IGnssNiCallback")
-#define GNSS_XTRA_REMOTE GNSS_IFACE("IGnssXtra")
-#define GNSS_XTRA_CALLBACK GNSS_IFACE("IGnssXtraCallback")
-#define AGNSS_REMOTE GNSS_IFACE("IAGnss")
-#define AGNSS_CALLBACK GNSS_IFACE("IAGnssCallback")
-#define AGNSS_RIL_REMOTE GNSS_IFACE("IAGnssRil")
-#define AGNSS_RIL_CALLBACK GNSS_IFACE("IAGnssRilCallback")
-
-
-/*==========================================================================*
- * Implementation
- *==========================================================================*/
-
-HybrisApnIpType fromContextProtocol(const QString &protocol)
-{
- if (protocol == QLatin1String("ip"))
- return HYBRIS_APN_IP_IPV4;
- else if (protocol == QLatin1String("ipv6"))
- return HYBRIS_APN_IP_IPV6;
- else if (protocol == QLatin1String("dual"))
- return HYBRIS_APN_IP_IPV4V6;
- else
- return HYBRIS_APN_IP_INVALID;
-}
-
-static const void *geoclue_binder_gnss_decode_struct1(
- GBinderReader *in,
- guint size)
-{
- const void *result = Q_NULLPTR;
- GBinderBuffer *buf = gbinder_reader_read_buffer(in);
-
- if (buf && buf->size == size) {
- result = buf->data;
- }
- gbinder_buffer_free(buf);
- return result;
-}
-
-#define geoclue_binder_gnss_decode_struct(type,in) \
- ((const type*)geoclue_binder_gnss_decode_struct1(in, sizeof(type)))
-
-bool nmeaChecksumValid(const QByteArray &nmea)
-{
- unsigned char checksum = 0;
- for (int i = 1; i < nmea.length(); ++i) {
- if (nmea.at(i) == '*') {
- if (nmea.length() < i+3)
- return false;
-
- checksum ^= nmea.mid(i+1, 2).toInt(0, 16);
-
- break;
- }
-
- checksum ^= nmea.at(i);
- }
-
- return checksum == 0;
-}
-
-void parseRmc(const QByteArray &nmea)
-{
- QList<QByteArray> fields = nmea.split(',');
- if (fields.count() < 12)
- return;
-
- bool ok;
- double variation = fields.at(10).toDouble(&ok);
- if (ok) {
- if (fields.at(11) == "W")
- variation = -variation;
-
- QMetaObject::invokeMethod(staticProvider, "setMagneticVariation", Qt::QueuedConnection,
- Q_ARG(double, variation));
- }
-}
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/binder/binderlocationbackend.h
^
|
@@ -1,105 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Copyright (C) 2018 Matti Lehtimäki <matti.lehtimaki@gmail.com>
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#ifndef BINDERLOCATIONBACKEND_H
-#define BINDERLOCATIONBACKEND_H
-
-#include "hybrislocationbackend.h"
-
-#include <QtCore/QObject>
-#include <QtCore/QStringList>
-#include <QtCore/QBasicTimer>
-#include <QtCore/QQueue>
-#include <QtDBus/QDBusContext>
-#include <QtNetwork/QNetworkReply>
-
-#include <gbinder.h>
-#include <locationsettings.h>
-
-#include "gnss-binder-types.h"
-#include "locationtypes.h"
-
-class BinderLocationBackend : public HybrisLocationBackend
-{
- Q_OBJECT
-public:
- BinderLocationBackend(QObject *parent = 0);
- ~BinderLocationBackend();
-
- void dropGnss();
-
- // Gnss
- bool gnssInit();
- bool gnssStart();
- bool gnssStop();
- void gnssCleanup();
- bool gnssInjectTime(HybrisGnssUtcTime timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs);
- bool gnssInjectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters);
- void gnssDeleteAidingData(HybrisGnssAidingData aidingDataFlags);
- bool gnssSetPositionMode(HybrisGnssPositionMode mode, HybrisGnssPositionRecurrence recurrence,
- uint32_t minIntervalMs, uint32_t preferredAccuracyMeters,
- uint32_t preferredTimeMs);
-
- // GnssDebug
- void gnssDebugInit();
-
- // GnnNi
- void gnssNiInit();
- void gnssNiRespond(int32_t notifId, HybrisGnssUserResponseType userResponse);
-
- // GnssXtra
- void gnssXtraInit();
- bool gnssXtraInjectXtraData(QByteArray &xtraData);
-
- // AGnss
- void aGnssInit();
- bool aGnssDataConnClosed();
- bool aGnssDataConnFailed();
- bool aGnssDataConnOpen(const QByteArray &apn, const QString &protocol);
-
- // AGnssRil
- void aGnssRilInit();
-
-private:
- bool isReplySuccess(GBinderRemoteReply *reply);
- GBinderRemoteObject *getExtensionObject(GBinderRemoteReply *reply);
-
- gulong m_death_id;
- char *m_fqname;
- GBinderServiceManager *m_sm;
-
- GBinderClient *m_clientGnss;
- GBinderRemoteObject *m_remoteGnss;
- GBinderLocalObject *m_callbackGnss;
-
- GBinderClient *m_clientGnssDebug;
- GBinderRemoteObject *m_remoteGnssDebug;
-
- GBinderClient *m_clientGnssNi;
- GBinderRemoteObject *m_remoteGnssNi;
- GBinderLocalObject *m_callbackGnssNi;
-
- GBinderClient *m_clientGnssXtra;
- GBinderRemoteObject *m_remoteGnssXtra;
- GBinderLocalObject *m_callbackGnssXtra;
-
- GBinderClient *m_clientAGnss;
- GBinderRemoteObject *m_remoteAGnss;
- GBinderLocalObject *m_callbackAGnss;
-
- GBinderClient *m_clientAGnssRil;
- GBinderRemoteObject *m_remoteAGnssRil;
- GBinderLocalObject *m_callbackAGnssRil;
-};
-
-#endif // BINDERLOCATIONBACKEND_H
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/binder/binderlocationbackend.pro
^
|
@@ -1,9 +0,0 @@
-include($$PWD/../geoclue-providers-hybris.pri)
-
-HEADERS += \
- binderlocationbackend.h
-
-SOURCES += \
- binderlocationbackend.cpp
-
-PKGCONFIG += libgbinder libglibutil gobject-2.0 glib-2.0
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/binder/gnss-binder-types.h
^
|
@@ -1,154 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Copyright (C) 2018 Matti Lehtimäki <matti.lehtimaki@gmail.com>
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#ifndef GNSS_BINDER_TYPES_H
-#define GNSS_BINDER_TYPES_H
-
-#include <gutil_types.h>
-
-#define ALIGNED(x) __attribute__ ((aligned(x)))
-
-typedef struct hidl_string {
- union {
- guint64 value;
- const char *str;
- } data;
- guint32 len;
- guint8 owns_buffer;
-} ALIGNED(4) HidlString;
-
-typedef struct hidl_vector {
- union {
- guint64 value;
- const void *ptr;
- } data;
- guint32 count;
- guint8 owns_buffer;
-} ALIGNED(4) HidlVector;
-
-template<typename T, size_t SIZE1>
-struct HidlArray {
- T data[SIZE1];
-};
-
-typedef struct geoclue_binder_gnss GeoclueBinderGnss;
-
-typedef enum gnss_max {
- SVS_COUNT = 64u,
-} GnssMax;
-
-typedef int64_t GnssUtcTime;
-
-enum class GnssConstellationType : guint8 {
- UNKNOWN = 0,
- GPS = 1,
- SBAS = 2,
- GLONASS = 3,
- QZSS = 4,
- BEIDOU = 5,
- GALILEO = 6,
-};
-
-enum class GnssLocationFlags : guint16 {
- HAS_LAT_LONG = 1, // 0x0001
- HAS_ALTITUDE = 2, // 0x0002
- HAS_SPEED = 4, // 0x0004
- HAS_BEARING = 8, // 0x0008
- HAS_HORIZONTAL_ACCURACY = 16, // 0x0010
- HAS_VERTICAL_ACCURACY = 32, // 0x0020
- HAS_SPEED_ACCURACY = 64, // 0x0040
- HAS_BEARING_ACCURACY = 128, // 0x0080
-};
-
-enum {
- HYBRIS_GNSS_SV_FLAGS_NONE = 0,
- HYBRIS_GNSS_SV_FLAGS_HAS_EPHEMERIS_DATA = 1, //(1 << 0)
- HYBRIS_GNSS_SV_FLAGS_HAS_ALMANAC_DATA = 2, //(1 << 1)
- HYBRIS_GNSS_SV_FLAGS_USED_IN_FIX = 4, //(1 << 2)
- HYBRIS_GNSS_SV_FLAGS_HAS_CARRIER_FREQUENCY = 8, //(1 << 3)
-};
-
-typedef struct gnss_location {
- guint16 gnssLocationFlags ALIGNED(2);
- gdouble latitudeDegrees ALIGNED(8);
- gdouble longitudeDegrees ALIGNED(8);
- gdouble altitudeMeters ALIGNED(8);
- gfloat speedMetersPerSec ALIGNED(4);
- gfloat bearingDegrees ALIGNED(4);
- gfloat horizontalAccuracyMeters ALIGNED(4);
- gfloat verticalAccuracyMeters ALIGNED(4);
- gfloat speedAccuracyMetersPerSecond ALIGNED(4);
- gfloat bearingAccuracyDegrees ALIGNED(4);
- gint64 timestamp ALIGNED(8);
-} ALIGNED(8) GnssLocation;
-
-G_STATIC_ASSERT(sizeof(GnssLocation) == 64);
-
-typedef struct gnss_sv_info {
- gint16 svid ALIGNED(2);
- GnssConstellationType constellation ALIGNED(1);
- gfloat cN0Dbhz ALIGNED(4);
- gfloat elevationDegrees ALIGNED(4);
- gfloat azimuthDegrees ALIGNED(4);
- gfloat carrierFrequencyHz ALIGNED(4);
- guint8 svFlag ALIGNED(1);
-} ALIGNED(4) GnssSvInfo;
-
-G_STATIC_ASSERT(sizeof(GnssSvInfo) == 24);
-
-typedef struct gnss_sv_status {
- gint32 numSvs ALIGNED(4);
- HidlArray<GnssSvInfo, 64> gnssSvList ALIGNED(4);
-} ALIGNED(4) GnssSvStatus;
-
-G_STATIC_ASSERT(sizeof(GnssSvStatus) == 1540);
-
-typedef uint8_t AGnssType;
-typedef uint8_t AGnssStatusValue;
-
-enum {
- HYBRIS_GNSS_STATUS_NONE = 0,
- HYBRIS_GNSS_STATUS_SESSION_BEGIN = 1,
- HYBRIS_GNSS_STATUS_SESSION_END = 2,
- HYBRIS_GNSS_STATUS_ENGINE_ON = 3,
- HYBRIS_GNSS_STATUS_ENGINE_OFF = 4,
-};
-
-enum {
- HYBRIS_GNSS_LOCATION_HAS_LAT_LONG = 1, // 0x0001
- HYBRIS_GNSS_LOCATION_HAS_ALTITUDE = 2, // 0x0002
- HYBRIS_GNSS_LOCATION_HAS_SPEED = 4, // 0x0004
- HYBRIS_GNSS_LOCATION_HAS_BEARING = 8, // 0x0008
- HYBRIS_GNSS_LOCATION_HAS_HORIZONTAL_ACCURACY = 16, // 0x0010
- HYBRIS_GNSS_LOCATION_HAS_VERTICAL_ACCURACY = 32, // 0x0020
- HYBRIS_GNSS_LOCATION_HAS_SPEED_ACCURACY = 64, // 0x0040
- HYBRIS_GNSS_LOCATION_HAS_BEARING_ACCURACY = 128, // 0x0080
-};
-
-typedef struct agnss_status_ip_v4 {
- AGnssType type ALIGNED(1);
- AGnssStatusValue status ALIGNED(1);
- gint32 ipV4Addr ALIGNED(4);
-} ALIGNED(4) AGnssStatusIpV4;
-
-G_STATIC_ASSERT(sizeof(AGnssStatusIpV4) == 8);
-
-typedef struct agnss_status_ip_v6 {
- AGnssType type ALIGNED(1);
- AGnssStatusValue status ALIGNED(1);
- HidlArray<uint8_t, 16> ipV6Addr ALIGNED(1);
-} ALIGNED(1) AGnssStatusIpV6;
-
-G_STATIC_ASSERT(sizeof(AGnssStatusIpV6) == 18);
-
-#endif // GNSS_BINDER_TYPES_H
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/geoclue-providers-hybris.pri
^
|
@@ -1,55 +0,0 @@
-TARGET = geoclue-hybris
-CONFIG += console
-CONFIG -= app_bundle
-TEMPLATE = app
-
-target.path = /usr/libexec
-
-QT = core dbus network
-
-CONFIG += link_pkgconfig
-PKGCONFIG += connman-qt5 qofono-qt5 qofonoext systemsettings
-
-LIBS += -lrt
-
-dbus_geoclue.files = \
- org.freedesktop.Geoclue.xml \
- org.freedesktop.Geoclue.Position.xml \
- org.freedesktop.Geoclue.Velocity.xml \
- org.freedesktop.Geoclue.Satellite.xml
-dbus_geoclue.header_flags = "-l HybrisProvider -i hybrisprovider.h"
-dbus_geoclue.source_flags = "-l HybrisProvider"
-
-DBUS_ADAPTORS = \
- dbus_geoclue
-
-DBUS_INTERFACES = \
- com.jollamobile.Connectiond.xml \
- com.jolla.lipstick.ConnectionSelector.xml
-
-session_dbus_service.files = org.freedesktop.Geoclue.Providers.Hybris.service
-session_dbus_service.path = /usr/share/dbus-1/services
-
-system_dbus_conf.files = com.jollamobile.gps.conf
-system_dbus_conf.path = /etc/dbus-1/system.d
-
-geoclue_provider.files = geoclue-hybris.provider
-geoclue_provider.path = /usr/share/geoclue-providers
-
-HEADERS += \
- hybrislocationbackend.h \
- hybrisprovider.h \
- locationtypes.h
-
-SOURCES += \
- main.cpp \
- hybrisprovider.cpp
-
-OTHER_FILES = \
- $${session_dbus_service.files} \
- $${system_dbus_service.files} \
- $${system_dbus_conf.files} \
- $${geoclue_provider.files} \
- rpm/geoclue-providers-hybris.spec
-
-INSTALLS += target session_dbus_service system_dbus_conf geoclue_provider
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/hal/hallocationbackend.cpp
^
|
@@ -1,625 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#include "hallocationbackend.h"
-
-#include "hybrisprovider.h"
-
-#include <QtNetwork/QHostAddress>
-
-#include <android-config.h>
-
-#include <strings.h>
-#include <sys/time.h>
-
-// Define versions of the Android GPS interface supported.
-#if ANDROID_VERSION_MAJOR >= 7
- #define GEOCLUE_ANDROID_GPS_INTERFACE 3
-#elif ANDROID_VERSION_MAJOR >= 5
- #define GEOCLUE_ANDROID_GPS_INTERFACE 2
-#elif ANDROID_VERSION_MAJOR == 4 && ANDROID_VERSION_MINOR >= 2
- #define GEOCLUE_ANDROID_GPS_INTERFACE 1
-#else
- // By default expects Android 4.1
-#endif
-
-HybrisLocationBackend *getLocationBackend()
-{
- return qobject_cast<HybrisLocationBackend *>(new HalLocationBackend());
-}
-
-namespace
-{
-
-const double KnotsToMps = 0.514444;
-
-void locationCallback(GpsLocation *location)
-{
- Location loc;
-
- loc.setTimestamp(location->timestamp);
-
- if (location->flags & GPS_LOCATION_HAS_LAT_LONG) {
- loc.setLatitude(location->latitude);
- loc.setLongitude(location->longitude);
- }
-
- if (location->flags & GPS_LOCATION_HAS_ALTITUDE)
- loc.setAltitude(location->altitude);
-
- if (location->flags & GPS_LOCATION_HAS_SPEED)
- loc.setSpeed(location->speed / KnotsToMps);
-
- if (location->flags & GPS_LOCATION_HAS_BEARING)
- loc.setDirection(location->bearing);
-
- if (location->flags & GPS_LOCATION_HAS_ACCURACY) {
- Accuracy accuracy;
- accuracy.setHorizontal(location->accuracy);
- accuracy.setVertical(location->accuracy);
- loc.setAccuracy(accuracy);
- }
-
- QMetaObject::invokeMethod(staticProvider, "setLocation", Qt::QueuedConnection,
- Q_ARG(Location, loc));
-}
-
-void statusCallback(GpsStatus *status)
-{
- switch (status->status) {
- case GPS_STATUS_ENGINE_ON:
- QMetaObject::invokeMethod(staticProvider, "engineOn", Qt::QueuedConnection);
- break;
- case GPS_STATUS_ENGINE_OFF:
- QMetaObject::invokeMethod(staticProvider, "engineOff", Qt::QueuedConnection);
- break;
- default:
- ;
- }
-}
-
-void svStatusCallback(GpsSvStatus *svStatus)
-{
- QList<SatelliteInfo> satellites;
- QList<int> usedPrns;
-
- for (int i = 0; i < svStatus->num_svs; ++i) {
- SatelliteInfo satInfo;
- GpsSvInfo &svInfo = svStatus->sv_list[i];
- satInfo.setPrn(svInfo.prn);
- satInfo.setSnr(svInfo.snr);
- satInfo.setElevation(svInfo.elevation);
- satInfo.setAzimuth(svInfo.azimuth);
- satellites.append(satInfo);
-
- if (svStatus->used_in_fix_mask & (1 << i))
- usedPrns.append(svInfo.prn);
- }
-
- QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
- Q_ARG(QList<SatelliteInfo>, satellites),
- Q_ARG(QList<int>, usedPrns));
-}
-
-#if GEOCLUE_ANDROID_GPS_INTERFACE == 3
-void gnssSvStatusCallback(GnssSvStatus *svStatus)
-{
- QList<SatelliteInfo> satellites;
- QList<int> usedPrns;
-
- for (int i = 0; i < svStatus->num_svs; ++i) {
- SatelliteInfo satInfo;
- GnssSvInfo &svInfo = svStatus->gnss_sv_list[i];
- satInfo.setSnr(svInfo.c_n0_dbhz);
- satInfo.setElevation(svInfo.elevation);
- satInfo.setAzimuth(svInfo.azimuth);
- int prn = svInfo.svid;
- // From https://github.com/barbeau/gpstest
- // and https://github.com/mvglasow/satstat/wiki/NMEA-IDs
- if (svInfo.constellation == GnssConstellationType::SBAS) {
- prn -= 87;
- } else if (svInfo.constellation == GLONASS) {
- prn += 64;
- } else if (svInfo.constellation == BEIDOU) {
- prn += 200;
- } else if (svInfo.constellation == GALILEO) {
- prn += 300;
- }
- satInfo.setPrn(prn);
- satellites.append(satInfo);
-
- if (svInfo.flags & GNSS_SV_FLAGS_USED_IN_FIX)
- usedPrns.append(svInfo.svid);
- }
-
- QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
- Q_ARG(QList<SatelliteInfo>, satellites),
- Q_ARG(QList<int>, usedPrns));
-}
-#endif
-
-#ifdef USE_GPS_VENDOR_EXTENSION
-void gnssSvStatusCallback_custom(GnssSvStatus *svStatus)
-{
- QList<SatelliteInfo> satellites;
- QList<int> usedPrns;
-
- for (int i = 0; i < svStatus->num_svs; ++i) {
- SatelliteInfo satInfo;
- GnssSvInfo &svInfo = svStatus->sv_list[i];
- satInfo.setPrn(svInfo.prn);
- satInfo.setSnr(svInfo.snr);
- satInfo.setElevation(svInfo.elevation);
- satInfo.setAzimuth(svInfo.azimuth);
- satellites.append(satInfo);
- }
-
- QMetaObject::invokeMethod(staticProvider, "setSatellite", Qt::QueuedConnection,
- Q_ARG(QList<SatelliteInfo>, satellites),
- Q_ARG(QList<int>, usedPrns));
-}
-#endif
-
-bool nmeaChecksumValid(const QByteArray &nmea)
-{
- unsigned char checksum = 0;
- for (int i = 1; i < nmea.length(); ++i) {
- if (nmea.at(i) == '*') {
- if (nmea.length() < i+3)
- return false;
-
- checksum ^= nmea.mid(i+1, 2).toInt(0, 16);
-
- break;
- }
-
- checksum ^= nmea.at(i);
- }
-
- return checksum == 0;
-}
-
-void parseRmc(const QByteArray &nmea)
-{
- QList<QByteArray> fields = nmea.split(',');
- if (fields.count() < 12)
- return;
-
- bool ok;
- double variation = fields.at(10).toDouble(&ok);
- if (ok) {
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/hal/hallocationbackend.h
^
|
@@ -1,84 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#ifndef HALLOCATIONBACKEND_H
-#define HALLOCATIONBACKEND_H
-
-#include "hybrislocationbackend.h"
-
-#include <QtCore/QObject>
-#include <QtCore/QStringList>
-#include <QtCore/QBasicTimer>
-#include <QtCore/QQueue>
-#include <QtDBus/QDBusContext>
-#include <QtNetwork/QNetworkReply>
-
-#include <android-version.h>
-#include <hardware/gps.h>
-
-#include <locationsettings.h>
-
-#include "locationtypes.h"
-
-class HalLocationBackend : public HybrisLocationBackend
-{
- Q_OBJECT
-public:
- HalLocationBackend(QObject *parent = 0);
- ~HalLocationBackend();
-
- // Gnss
- bool gnssInit();
- bool gnssStart();
- bool gnssStop();
- void gnssCleanup();
- bool gnssInjectTime(HybrisGnssUtcTime timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs);
- bool gnssInjectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters);
- void gnssDeleteAidingData(HybrisGnssAidingData aidingDataFlags);
- bool gnssSetPositionMode(HybrisGnssPositionMode mode, HybrisGnssPositionRecurrence recurrence,
- uint32_t minIntervalMs, uint32_t preferredAccuracyMeters,
- uint32_t preferredTimeMs);
-
- // GnssDebug
- void gnssDebugInit();
-
- // GnnNi
- void gnssNiInit();
- void gnssNiRespond(int32_t notifId, HybrisGnssUserResponseType userResponse);
-
- // GnssXtra
- void gnssXtraInit();
- bool gnssXtraInjectXtraData(QByteArray &xtraData);
-
- // AGnss
- void aGnssInit();
- bool aGnssDataConnClosed();
- bool aGnssDataConnFailed();
- bool aGnssDataConnOpen(const QByteArray &apn, const QString &protocol);
-
- // AGnssRil
- void aGnssRilInit();
-
-private:
- gps_device_t *m_gpsDevice;
-
- const GpsInterface *m_gps;
-
- const AGpsInterface *m_agps;
- const AGpsRilInterface *m_agpsril;
- const GpsNiInterface *m_gpsni;
- const GpsXtraInterface *m_xtra;
-
- const GpsDebugInterface *m_debug;
-};
-
-#endif // HALLOCATIONBACKEND_H
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/hal/hallocationbackend.pro
^
|
@@ -1,9 +0,0 @@
-include($$PWD/../geoclue-providers-hybris.pri)
-
-HEADERS += \
- hallocationbackend.h
-
-SOURCES += \
- hallocationbackend.cpp
-
-PKGCONFIG += libhardware android-headers
|
[-]
[+]
|
Deleted |
_service:tar_git:geoclue-provider-hybris-0.2.18.tar.gz/hybrislocationbackend.h
^
|
@@ -1,144 +0,0 @@
-/*
- Copyright (C) 2015 Jolla Ltd.
- Copyright (C) 2018 Matti Lehtimäki <matti.lehtimaki@gmail.com>
- Contact: Aaron McCarthy <aaron.mccarthy@jollamobile.com>
-
- This file is part of geoclue-hybris.
-
- Geoclue-hybris is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License.
-*/
-
-#ifndef HYBRIS_LOCATION_BACKEND_H
-#define HYBRIS_LOCATION_BACKEND_H
-
-#include <cstdint>
-
-#include <QtCore/QObject>
-#include <QtCore/QString>
-
-/** Milliseconds since January 1, 1970 */
-typedef int64_t HybrisGnssUtcTime;
-
-/** Requested operational mode for GPS operation. */
-typedef uint32_t HybrisGnssPositionMode;
-
-/** Requested recurrence mode for GPS operation. */
-typedef uint32_t HybrisGnssPositionRecurrence;
-
-/** GPS status event values. */
-typedef uint16_t HybrisGnssStatusValue;
-
-/** Flags to indicate which values are valid in a GpsLocation. */
-typedef uint16_t HybrisGnssLocationFlags;
-
-/**
- * Flags used to specify which aiding data to delete when calling
- * delete_aiding_data().
- */
-typedef uint16_t HybrisGnssAidingData;
-
-/** AGPS type */
-typedef uint16_t HybrisAGnssType;
-
-typedef uint16_t HybrisAGnssSetIDType;
-
-typedef uint16_t HybrisApnIpType;
-/**
- * HybrisGnssNiType constants
- */
-typedef uint32_t HybrisGnssNiType;
-
-/**
- * HybrisGnssNiNotifyFlags constants
- */
-typedef uint32_t HybrisGnssNiNotifyFlags;
-
-/**
- * GPS NI responses, used to define the response in
- * NI structures
- */
-typedef int HybrisGnssUserResponseType;
-
-/**
- * NI data encoding scheme
- */
-typedef int HybrisGnssNiEncodingType;
-
-/** AGPS status event values. */
-typedef uint16_t HybrisAGnssStatusValue;
-
-typedef uint16_t HybrisAGnssRefLocationType;
-
-typedef int HybrisNetworkType;
-
-enum {
- HYBRIS_GNSS_POSITION_MODE_STANDALONE = 0,
- HYBRIS_GNSS_POSITION_MODE_MS_BASED = 1,
- HYBRIS_GNSS_POSITION_MODE_MS_ASSISTED = 2,
-};
-
-enum {
- HYBRIS_GNSS_POSITION_RECURRENCE_PERIODIC = 0,
- HYBRIS_GNSS_POSITION_RECURRENCE_SINGLE = 1,
-};
-
-enum {
- HYBRIS_AGNSS_TYPE_SUPL = 1,
- HYBRIS_AGNSS_TYPE_C2K = 2,
-};
-
-enum {
- HYBRIS_GNSS_REQUEST_AGNSS_DATA_CONN = 1,
- HYBRIS_GNSS_RELEASE_AGNSS_DATA_CONN = 2,
- HYBRIS_GNSS_AGNSS_DATA_CONNECTED = 3,
- HYBRIS_GNSS_AGNSS_DATA_CONN_DONE = 4,
- HYBRIS_GNSS_AGNSS_DATA_CONN_FAILED = 5,
-};
-
-class HybrisLocationBackend : public QObject
-{
- Q_OBJECT
-public:
- explicit HybrisLocationBackend(QObject *parent = 0) : QObject(parent) {};
- virtual ~HybrisLocationBackend() {}
-
- // Gnss
- virtual bool gnssInit() = 0;
- virtual bool gnssStart() = 0;
- virtual bool gnssStop() = 0;
- virtual void gnssCleanup() = 0;
- virtual bool gnssInjectTime(HybrisGnssUtcTime timeMs, int64_t timeReferenceMs, int32_t uncertaintyMs) = 0;
- virtual bool gnssInjectLocation(double latitudeDegrees, double longitudeDegrees, float accuracyMeters) = 0;
- virtual void gnssDeleteAidingData(HybrisGnssAidingData aidingDataFlags) = 0;
- virtual bool gnssSetPositionMode(HybrisGnssPositionMode mode, HybrisGnssPositionRecurrence recurrence,
- uint32_t minIntervalMs, uint32_t preferredAccuracyMeters,
- uint32_t preferredTimeMs) = 0;
-
- // GnssDebug
- virtual void gnssDebugInit() = 0;
-
- // GnnNi
- virtual void gnssNiInit() = 0;
- virtual void gnssNiRespond(int32_t notifId, HybrisGnssUserResponseType userResponse) = 0;
-
- // GnssXtra
- virtual void gnssXtraInit() = 0;
- virtual bool gnssXtraInjectXtraData(QByteArray &xtraData) = 0;
-
- // AGnss
- virtual void aGnssInit() = 0;
- virtual bool aGnssDataConnClosed() = 0;
- virtual bool aGnssDataConnFailed() = 0;
- virtual bool aGnssDataConnOpen(const QByteArray &apn, const QString &protocol) = 0;
-
- // AGnssRil
- virtual void aGnssRilInit() = 0;
-
-};
-
-HybrisLocationBackend *getLocationBackend();
-
-#endif // HYBRIS_LOCATION_BACKEND_H
|