summaryrefslogtreecommitdiff
path: root/navit/vehicle/gpsd/vehicle_gpsd.c
diff options
context:
space:
mode:
authortegzed <tegzed@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-03-01 20:57:33 +0000
committertegzed <tegzed@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-03-01 20:57:33 +0000
commit0b1c9188de3e6641ba4edb24e3f0c271d223b62d (patch)
tree76f7dda67d73ae2ff7c1aa17dfb6c58465cceaf1 /navit/vehicle/gpsd/vehicle_gpsd.c
parent37a1a2bb275a31d8dc748ce01e272b6068ace230 (diff)
downloadnavit-0b1c9188de3e6641ba4edb24e3f0c271d223b62d.tar.gz
Fix:vehicle/gpsd: followed further api changes in developement version of gpsd (removal of gps_set_raw_hook() function )
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@4272 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/vehicle/gpsd/vehicle_gpsd.c')
-rw-r--r--navit/vehicle/gpsd/vehicle_gpsd.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/navit/vehicle/gpsd/vehicle_gpsd.c b/navit/vehicle/gpsd/vehicle_gpsd.c
index 4923514fa..455939936 100644
--- a/navit/vehicle/gpsd/vehicle_gpsd.c
+++ b/navit/vehicle/gpsd/vehicle_gpsd.c
@@ -225,7 +225,10 @@ vehicle_gpsd_try_open(gpointer *data)
#else
gps_query(priv->gps, priv->gpsd_query);
#endif
+
+#if GPSD_API_MAJOR_VERSION < 5
gps_set_raw_hook(priv->gps, vehicle_gpsd_callback);
+#endif
priv->cb = callback_new_1(callback_cast(vehicle_gpsd_io), priv);
priv->evwatch = event_add_watch((void *)priv->gps->gps_fd, event_watch_cond_read, priv->cb);
if (!priv->gps->gps_fd) {
@@ -302,7 +305,14 @@ vehicle_gpsd_io(struct vehicle_priv *priv)
if (priv->gps) {
vehicle_last = priv;
#if GPSD_API_MAJOR_VERSION >= 5
- gps_read(priv->gps);
+ if(gps_read(priv->gps)==-1) {
+ g_warning("gps_poll failed\n");
+ vehicle_gpsd_close(priv);
+ vehicle_gpsd_open(priv);
+ }
+ else {
+ vehicle_gpsd_callback(priv->gps,priv->gps->buffer,strlen(priv->gps->buffer));
+ }
#else
if (gps_poll(priv->gps)) {
g_warning("gps_poll failed\n");