7 bool ValidQReal(qreal value);
9 GpsMaemo5::GpsMaemo5(LocationGPSDControlInterval location_interval,
10 LocationGPSDControlMethod location_method,
18 control = location_gpsd_control_get_default();
19 device = (LocationGPSDevice*) g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
21 updateGPSConfig (location_interval, location_method);
23 g_signal_connect(device, "changed", G_CALLBACK(GpsMaemo5_changed), this);
26 void GpsMaemo5::enable()
28 location_gpsd_control_start(control);
30 void GpsMaemo5::disable()
32 location_gpsd_control_stop(control);
35 void GpsMaemo5::updateGPSConfig (LocationGPSDControlInterval location_interval,
36 LocationGPSDControlMethod location_method)
38 g_object_set(G_OBJECT(control), "preferred-interval", location_interval, NULL);
39 g_object_set(G_OBJECT(control), "preferred-method", location_method, NULL);
40 qDebug() << "preferred-interval: " << location_interval;
41 qDebug() << "preferred-method: " << location_method;
44 void GpsMaemo5_changed(LocationGPSDevice *device, GpsMaemo5 *gps) {
46 if (device->fix->fields) {
47 if ( !ValidQReal(gps->device->fix->eph/100.) )
49 g_print("lat = %f, long = %f, eph = %f\n", gps->device->fix->latitude, gps->device->fix->longitude, gps->device->fix->eph/100.);
50 gps->latitude = gps->device->fix->latitude;
51 gps->longitude = gps->device->fix->longitude;
52 gps->accuracy = gps->device->fix->eph/100.;
58 bool ValidQReal(qreal value)
63 else if (value > std::numeric_limits<qreal>::max()){
66 else if (value < -std::numeric_limits<qreal>::max()){
73 #endif // Q_WS_MAEMO_5