[meego-commits] 7776: Changes to Trunk/qt-mobility

Rolla Selbak no_reply at build.meego.com
Fri Sep 24 04:34:54 UTC 2010


Hi,
I have made the following changes to qt-mobility in project Trunk. Please review and accept ASAP.

Thank You,
Rolla Selbak

[This message was auto-generated]

---

Request #7776:

  submit:   Trunk:Testing/qt-mobility(r8) -> Trunk/qt-mobility


Message:
    Move to Trunk

State:   new          2010-09-23T21:34:53 rolla
Comment: None



changes files:
--------------
--- qt-mobility.changes
+++ qt-mobility.changes
@@ -0,0 +1,5 @@
+* Fri Sep 17 2010 Fathi Boudra <fathi.boudra at nokia.com> - 1.0.2
+- Add Location API Meego implementation using Geoclue (BMC#6729)
+  Thanks to John Chen and Jussi Kukkonen
+- Add geoclue, gypsy and gconf-2.0 build requirements
+

new:
----
  07_add_location_api_meego_implementation_using_geoclue.patch

spec files:
-----------
--- qt-mobility.spec
+++ qt-mobility.spec
@@ -26,6 +26,7 @@
 Patch9:     02_qtcontacts_api_1.1.0~git20100825.patch.bz2
 Patch10:     03_ftbfs_synthesizedDisplayLabel.patch
 Patch11:     06_enable_sensorfw_support.patch
+Patch12:     07_add_location_api_meego_implementation_using_geoclue.patch
 Requires:   libqtcontacts1 = %{version}
 Requires:   libqtlocation1 = %{version}
 Requires:   libqtmessaging1 = %{version}
@@ -41,7 +42,10 @@
 BuildRequires:  pkgconfig(alsa)
 BuildRequires:  pkgconfig(bluez)
 BuildRequires:  pkgconfig(contextsubscriber-1.0)
+BuildRequires:  pkgconfig(gconf-2.0)
+BuildRequires:  pkgconfig(geoclue)
 BuildRequires:  pkgconfig(gstreamer-plugins-base-0.10)
+BuildRequires:  pkgconfig(gypsy)
 BuildRequires:  pkgconfig(libpulse)
 BuildRequires:  pkgconfig(qtopiamail)
 BuildRequires:  pkgconfig(qttracker)
@@ -316,6 +320,8 @@
 %patch10 -p1
 # 06_enable_sensorfw_support.patch
 %patch11 -p1
+# 07_add_location_api_meego_implementation_using_geoclue.patch
+%patch12 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ 07_add_location_api_meego_implementation_using_geoclue.patch (new)
--- 07_add_location_api_meego_implementation_using_geoclue.patch
+++ 07_add_location_api_meego_implementation_using_geoclue.patch
+From dbc73b27f66caa0fbd4cb7268ef7dcc4b40ed8ae Mon Sep 17 00:00:00 2001
+From: John Chen <zhang.z.chen at intel.com>
+Date: Wed, 25 Aug 2010 13:06:49 +0300
+Subject: [PATCH] Added Location API Meego implementation using Geoclue
+
+---
+ common.pri                                     |    3 +
+ src/location/location.pro                      |    9 ++
+ src/location/qgeopositioninfosource.cpp        |   11 ++
+ src/location/qgeopositioninfosource_meego.cpp  |  143 ++++++++++++++++++++++++
+ src/location/qgeopositioninfosource_meego_p.h  |   46 ++++++++
+ src/location/qgeosatelliteinfosource.cpp       |   10 ++
+ src/location/qgeosatelliteinfosource_meego.cpp |  102 +++++++++++++++++
+ src/location/qgeosatelliteinfosource_meego_p.h |   40 +++++++
+ 9 files changed, 370 insertions(+), 0 deletions(-)
+ create mode 100644 src/location/qgeopositioninfosource_meego.cpp
+ create mode 100644 src/location/qgeopositioninfosource_meego_p.h
+ create mode 100644 src/location/qgeosatelliteinfosource_meego.cpp
+ create mode 100644 src/location/qgeosatelliteinfosource_meego_p.h
+
+--- a/common.pri
++++ b/common.pri
+@@ -135,6 +135,9 @@ meego {
+     QMAKE_LIB_FLAGS+= -Wl,-rpath-link $$[QT_INSTALL_LIBS]
+     QMAKE_RPATHDIR += $$[QT_INSTALL_LIBS]
+ }
++meego {
++    DEFINES+= Q_WS_MEEGO
++}
+ 
+ wince* {
+     ### Bearer Management
+--- a/src/location/location.pro
++++ b/src/location/location.pro
+@@ -73,6 +73,15 @@ maemo6 {
+                 dbuscomm_maemo_p.h \
+                 dbusserver_maemo_p.h
+ }
++meego {
++    CONFIG += qdbus link_pkgconfig
++    PKGCONFIG += geoclue gypsy gconf-2.0
++    SOURCES += qgeopositioninfosource_meego.cpp \
++               qgeosatelliteinfosource_meego.cpp \
++
++    HEADERS += qgeopositioninfosource_meego_p.h \
++               qgeosatelliteinfosource_meego_p.h
++}
+ 
+ maemo5 {
+     CONFIG += qdbus link_pkgconfig
+--- a/src/location/qgeopositioninfosource.cpp
++++ b/src/location/qgeopositioninfosource.cpp
+@@ -54,6 +54,8 @@
+ #   include "qgeopositioninfosource_maemo_p.h"
+ #elif defined(Q_WS_MAEMO_5)
+ #   include "qgeopositioninfosource_maemo5_p.h"
++#elif defined(Q_WS_MEEGO)
++#   include "qgeopositioninfosource_meego_p.h"
+ #endif
+ 
+ QTM_BEGIN_NAMESPACE
+@@ -222,7 +224,16 @@ QGeoPositionInfoSource *QGeoPositionInfo
+     }
+ 
+     return source;
++#elif (defined(Q_WS_MEEGO))
++    QGeoPositionInfoSourceMeego *source = new QGeoPositionInfoSourceMeego(parent);
++    int status = source->init();
++    if (status == -1) {
++        delete source;
++        return 0;
++    }
++    return source;
+ #else
++    qWarning("no default source");
+     Q_UNUSED(parent);
+     return 0;
+ #endif
+--- /dev/null
++++ b/src/location/qgeopositioninfosource_meego.cpp
+@@ -0,0 +1,143 @@
++#include <QtCore>
++
++#include "qgeopositioninfosource_meego_p.h"
++
++static void
++position_changed (GeocluePosition      *position,
++                  GeocluePositionFields fields,
++                  int                   timestamp,
++                  double                latitude,
++                  double                longitude,
++                  double                altitude,
++                  GeoclueAccuracy      *accuracy,
++                  gpointer              userdata)
++{
++   qDebug("Position changed");
++   ((QGeoPositionInfoSourceMeego*) userdata)->positionChanged(
++      position, fields, timestamp, latitude, longitude, altitude, accuracy);
++}
++void QGeoPositionInfoSourceMeego::positionChanged(GeocluePosition      *position,
++                  GeocluePositionFields fields,
++                  int                   timestamp,
++                  double                latitude,
++                  double                longitude,
++                  double                altitude,
++                  GeoclueAccuracy      *accuracy)
++{
++    QGeoCoordinate coordinate(latitude, longitude);
++    QDateTime dateTime = QDateTime();
++    dateTime.setTime_t(timestamp);
++    QGeoPositionInfo info(coordinate, dateTime);
++    if (info.isValid()) {
++       lastPosition = info;
++       emit positionUpdated(info);
++    }
++}
++
++QGeoPositionInfoSourceMeego::QGeoPositionInfoSourceMeego(QObject *parent)
++    : QGeoPositionInfoSource(parent)
++{
++	
++}
++int QGeoPositionInfoSourceMeego::init()
++{
++	GeoclueMaster *master;
++	GError *error = NULL;
++	
++	g_type_init ();
++	
++	master = geoclue_master_get_default ();
++	client = geoclue_master_create_client (master, NULL, &error);
++	g_object_unref (master);
++	
++	if (!client) {
++		qCritical ("Error creating GeoclueMasterClient: %s\n", error->message);
++		g_error_free (error);
++		return -1;
++	}
++	
++	if (!geoclue_master_client_set_requirements (client,
++	                                             GEOCLUE_ACCURACY_LEVEL_NONE,
++	                                             0, TRUE,
++	                                             GEOCLUE_RESOURCE_ALL,
++	                                             &error)){
++		qCritical ("set_requirements failed: %s", error->message);
++		g_error_free (error);
++		g_object_unref (client);
++		return -1;
++		
++	}
++	
++	pos = geoclue_master_client_create_position (client, NULL);
++	if (!pos) {
++		qCritical("Failed to get a position object");
++		g_object_unref (client);
++		return -1;
++	}
++	
++   return 0;
++}
++
++QGeoPositionInfo QGeoPositionInfoSourceMeego::lastKnownPosition
++   (bool /*fromSatellitePositioningMethodsOnly*/) const
++{
++    return lastPosition;
++}
++
++QGeoPositionInfoSourceMeego::PositioningMethods 
++   QGeoPositionInfoSourceMeego::supportedPositioningMethods() const
++{
++    return AllPositioningMethods;
++}
++
++void QGeoPositionInfoSourceMeego::startUpdates()
++{
++	g_signal_connect (G_OBJECT (pos), "position-changed",
++			  G_CALLBACK (position_changed),this);
++
++}
++int QGeoPositionInfoSourceMeego::minimumUpdateInterval() const{
++   return 0;
++}
++void QGeoPositionInfoSourceMeego::stopUpdates()
++{
++   g_signal_handlers_disconnect_by_func(G_OBJECT(pos), (void*)position_changed, 
++         NULL); 
++}
++
++void QGeoPositionInfoSourceMeego::requestUpdate(int /*timeout*/)
++{
++	GeocluePositionFields fields;
++	int              timestamp;
++   double           latitude;
++   double           longitude;
++   double           altitude;
++   GeoclueAccuracy *accuracy;
++	GError *error = NULL;
++	fields = geoclue_position_get_position (pos, &timestamp,
(249 more lines skipped)

++++++ qt-mobility.yaml
--- qt-mobility.yaml
+++ qt-mobility.yaml
@@ -20,6 +20,7 @@
     - 02_qtcontacts_api_1.1.0~git20100825.patch.bz2
     - 03_ftbfs_synthesizedDisplayLabel.patch
     - 06_enable_sensorfw_support.patch
+    - 07_add_location_api_meego_implementation_using_geoclue.patch
 Description: |
     Qt Mobility delivers a set of new APIs for mobile device functionality. These
     APIs allow the developer to use these features with ease from one framework and
@@ -41,7 +42,10 @@
     - alsa
     - bluez
     - contextsubscriber-1.0
+    - gconf-2.0
+    - geoclue
     - gstreamer-plugins-base-0.10
+    - gypsy
     - libpulse
     - qtopiamail
     - qttracker




More information about the MeeGo-commits mailing list