diff options
author | tegzed <tegzed@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2011-03-01 20:57:33 +0000 |
---|---|---|
committer | tegzed <tegzed@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2011-03-01 20:57:33 +0000 |
commit | 0b1c9188de3e6641ba4edb24e3f0c271d223b62d (patch) | |
tree | 76f7dda67d73ae2ff7c1aa17dfb6c58465cceaf1 /navit/vehicle/gpsd/vehicle_gpsd.c | |
parent | 37a1a2bb275a31d8dc748ce01e272b6068ace230 (diff) | |
download | navit-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.c | 12 |
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"); |