# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../kdebase-workspace/0001-kdebase-workspace-gpsd-api.patch
# Copyright (C) 2011 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---

From: Rafael Fernández López <ereslibre@kde.org>
Date: Thu, 28 Apr 2011 11:35:53 +0000
Subject: gpsd api has changed and for GPSD_API_MAJOR_VERSION >=5 there are
X-Git-Url: http://quickgit.kde.org/?p=kde-workspace.git&amp;a=commitdiff&amp;h=a3009dd96e8519bcc205d75c29e18bbbb81fce03
---
gpsd api has changed and for GPSD_API_MAJOR_VERSION >=5 there are
some calls that are slightly different. Make the dataengine compile
against this version and previous one by adding conditional code.

REVIEW: 101247
---


--- a/plasma/generic/dataengines/geolocation/location_gps.cpp
+++ b/plasma/generic/dataengines/geolocation/location_gps.cpp
@@ -51,7 +51,11 @@ void Gpsd::run()
     while (!m_abort) {
         Plasma::DataEngine::Data d;
 
+#if GPSD_API_MAJOR_VERSION >= 5
+	if (gps_read(m_gpsdata) != -1) {
+#else
         if (gps_poll(m_gpsdata) != -1) {
+#endif
             //kDebug() << "poll ok";
             if (m_gpsdata->online) {
                 //kDebug() << "online";
@@ -73,11 +77,19 @@ void Gpsd::run()
 Gps::Gps(QObject* parent, const QVariantList& args)
     : GeolocationProvider(parent, args),
       m_gpsd(0)
+#if GPSD_API_MAJOR_VERSION >= 5
+    , m_gpsdata(0)
+#endif
 {
-    gps_data_t* gpsdata = gps_open("localhost", DEFAULT_GPSD_PORT);
-    if (gpsdata) {
+#if GPSD_API_MAJOR_VERSION >= 5
+    m_gpsdata = new gps_data_t;
+    gps_open("localhost", DEFAULT_GPSD_PORT, m_gpsdata);
+#else
+    gps_data_t* m_gpsdata = gps_open("localhost", DEFAULT_GPSD_PORT);
+#endif
+    if (m_gpsdata) {
         kDebug() << "gpsd found.";
-        m_gpsd = new Gpsd(gpsdata);
+        m_gpsd = new Gpsd(m_gpsdata);
         connect(m_gpsd, SIGNAL(dataReady(const Plasma::DataEngine::Data&)),
                 this, SIGNAL(setData(const Plasma::DataEngine::Data&)));
     } else {
@@ -90,6 +102,9 @@ Gps::Gps(QObject* parent, const QVariant
 Gps::~Gps()
 {
     delete m_gpsd;
+#if GPSD_API_MAJOR_VERSION >= 5
+    delete m_gpsdata;
+#endif
 }
 
 void Gps::update()

--- a/plasma/generic/dataengines/geolocation/location_gps.h
+++ b/plasma/generic/dataengines/geolocation/location_gps.h
@@ -58,6 +58,9 @@ public:
 
 private:
     Gpsd* m_gpsd;
+#if GPSD_API_MAJOR_VERSION >= 5
+    gps_data_t* m_gpsdata;
+#endif
 };
 
 #endif