From 9ca476e78a726b5353218266362cbba6183cb748 Mon Sep 17 00:00:00 2001 From: martin-s Date: Tue, 25 Dec 2007 18:46:23 +0000 Subject: [PATCH] Added support for gpx logging git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@668 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/src/vehicle.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/navit/src/vehicle.c b/navit/src/vehicle.c index 04d7769..153f37f 100644 --- a/navit/src/vehicle.c +++ b/navit/src/vehicle.c @@ -18,6 +18,25 @@ struct vehicle { }; static void +vehicle_log_nmea(struct vehicle *this_, struct log *log) +{ +} + +static void +vehicle_log_gpx(struct vehicle *this_, struct log *log) +{ + struct attr pos_attr; + char buffer[256]; + if (!this_->meth.position_attr_get) + return; + if (!this_->meth.position_attr_get(this_->priv, attr_position_coord_geo, &pos_attr)) + return; + sprintf(buffer,"\n", pos_attr.u.coord_geo->lat, pos_attr.u.coord_geo->lng); + log_write(log, buffer, strlen(buffer)); +} + + +static void vehicle_log_textfile(struct vehicle *this_, struct log *log) { struct attr pos_attr; @@ -40,21 +59,21 @@ vehicle_add_log(struct vehicle *this_, struct log *log, if (!type) return 1; if (!strcmp(type->u.str, "nmea")) { - this_->nmea_log = log; + cb=callback_new_2(callback_cast(vehicle_log_nmea), this_, log); } else if (!strcmp(type->u.str, "gpx")) { char *header = "\n\n\n\n"; char *trailer = "\n\n\n"; - this_->gpx_log = log; log_set_header(log, header, strlen(header)); log_set_trailer(log, trailer, strlen(trailer)); + cb=callback_new_2(callback_cast(vehicle_log_gpx), this_, log); } else if (!strcmp(type->u.str, "textfile")) { char *header = "type=track\n"; log_set_header(log, header, strlen(header)); cb=callback_new_2(callback_cast(vehicle_log_textfile), this_, log); - callback_list_add(this_->cbl, cb); } else return 1; + callback_list_add(this_->cbl, cb); return 0; } -- 2.7.4