From e09d297894a8b4ff9b06317169b5a9eb97aa7162 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Tue, 20 Aug 2013 11:47:52 +1000 Subject: Add support for Geoclue Satellite interface. The Tizen project introduced an interface for getting the Satellite info directly from a positioning provider. If Geoclue supports this interface make use of it in the geoclue position plugin. The plugin no longer checks the gconf setting /apps/geoclue/master/org.freedesktop.Geoclue.GPSDevice for a valid GPS device. This setting is used by Gypsy (and other providers) but may not necessarily be used by all providers that provide GPS quality data. Instead rely on the Geoclue master provider to determine if GPS is available. Because of this change the gconf dependency has been dropped. The plugin no longer uses the Geoclue master provider as a proxy for position data. Instead it queries the master provider for the DBus service and path of the actual provider and connects directly to that provider. This has to be done anyway to get velocity and satellite data. The plugin no longer assumes that the real positioning provider is Gypsy. This assumption was hard coded as it was always connecting directly to Gypsy to get the velocity data irrespective of what positioning provider was actually being used. Geoclue master does not proxy the Velocity interface. Instead it queries the master provider for the DBus service and path of the actual provider and connects directly to that provider. If the velocity interface is available it will now be from the same provider as the position. Change-Id: I8a6116e4061e50cc28d1efd71df0f7a348a0f143 Reviewed-by: Aaron McCarthy --- .../geoclue-satellite/geoclue-satellite.pro | 6 +++ config.tests/geoclue-satellite/main.cpp | 49 ++++++++++++++++++++++ config.tests/geoclue/geoclue.pro | 2 +- config.tests/geoclue/main.cpp | 10 +++-- 4 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 config.tests/geoclue-satellite/geoclue-satellite.pro create mode 100644 config.tests/geoclue-satellite/main.cpp (limited to 'config.tests') diff --git a/config.tests/geoclue-satellite/geoclue-satellite.pro b/config.tests/geoclue-satellite/geoclue-satellite.pro new file mode 100644 index 00000000..1ebc2e84 --- /dev/null +++ b/config.tests/geoclue-satellite/geoclue-satellite.pro @@ -0,0 +1,6 @@ +TEMPLATE = app +unix { + CONFIG += link_pkgconfig + PKGCONFIG += geoclue +} +SOURCES += main.cpp diff --git a/config.tests/geoclue-satellite/main.cpp b/config.tests/geoclue-satellite/main.cpp new file mode 100644 index 00000000..c642e106 --- /dev/null +++ b/config.tests/geoclue-satellite/main.cpp @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Jolla Ltd, author: Aaron McCarthy +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtLocation module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +int main() +{ + GeoclueSatellite satellite; + + return 0; +} diff --git a/config.tests/geoclue/geoclue.pro b/config.tests/geoclue/geoclue.pro index 4d05166c..1ebc2e84 100644 --- a/config.tests/geoclue/geoclue.pro +++ b/config.tests/geoclue/geoclue.pro @@ -1,6 +1,6 @@ TEMPLATE = app unix { CONFIG += link_pkgconfig - PKGCONFIG += geoclue gconf-2.0 + PKGCONFIG += geoclue } SOURCES += main.cpp diff --git a/config.tests/geoclue/main.cpp b/config.tests/geoclue/main.cpp index 3a868d70..c286775c 100644 --- a/config.tests/geoclue/main.cpp +++ b/config.tests/geoclue/main.cpp @@ -1,5 +1,7 @@ /**************************************************************************** ** +** Copyright (C) 2013 Jolla Ltd. +** Contact: Aaron McCarthy ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** @@ -40,13 +42,15 @@ ****************************************************************************/ #include -#include +#include int main() { GType type = geoclue_position_get_type(); - GConfClient *client = gconf_client_get_default(); - g_object_unref(client); + GeocluePosition position; + + type = geoclue_velocity_get_type(); + GeoclueVelocity velocity; return 0; } -- cgit v1.2.1