[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, ×tamp,
(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