From: <mar...@us...> - 2011-01-28 09:54:36
|
Revision: 4059 http://navit.svn.sourceforge.net/navit/?rev=4059&view=rev Author: martin-s Date: 2011-01-28 09:54:30 +0000 (Fri, 28 Jan 2011) Log Message: ----------- Fix:osd_core:split out format_speed function from trac #695 Modified Paths: -------------- trunk/navit/navit/osd/core/osd_core.c Modified: trunk/navit/navit/osd/core/osd_core.c =================================================================== --- trunk/navit/navit/osd/core/osd_core.c 2011-01-28 09:53:04 UTC (rev 4058) +++ trunk/navit/navit/osd/core/osd_core.c 2011-01-28 09:54:30 UTC (rev 4059) @@ -165,9 +165,16 @@ * * @returns a pointer to a string containing the formatted speed * */ static char * -format_speed(double speed, char *sep) +format_speed(double speed, char *sep, char *format) { - return g_strdup_printf("%.0f%skm/h", speed, sep); + if (!format || !strcmp(format,"named")) + return g_strdup_printf("%.0f%skm/h", speed, sep); + else if (!strcmp(format,"value") || !strcmp(format,"unit")) { + if (!strcmp(format,"value")) + return g_strdup_printf("%.0f", speed); + else + return "km/h"; + } } /*static char * @@ -351,7 +358,7 @@ } dist_buffer = format_distance(this->sum_dist,""); - spd_buffer = format_speed(spd,""); + spd_buffer = format_speed(spd,"",""); remainder = this->time_all; days = remainder / (24*60*60); remainder = remainder % (24*60*60); @@ -1765,20 +1772,7 @@ switch (attr->type) { case attr_position_speed: - if (!format || !strcmp(format,"named")) - return format_speed(*attr->u.numd,""); - if (!strcmp(format,"value") || !strcmp(format,"unit")) { - char *ret,*tmp=format_speed(*attr->u.numd," "); - char *pos=strchr(tmp,' '); - if (! pos) - return tmp; - *pos++='\0'; - if (!strcmp(format,"value")) - return tmp; - ret=g_strdup(pos); - g_free(tmp); - return ret; - } + return format_speed(*attr->u.numd,"",format); case attr_position_height: case attr_position_direction: return format_float_0(*attr->u.numd); @@ -2039,7 +2033,6 @@ int *flags=tracking_get_current_flags(tracking); if (flags && (*flags & AF_SPEED_LIMIT) && tracking_get_attr(tracking, attr_maxspeed, &maxspeed_attr, NULL)) { routespeed = maxspeed_attr.u.num; - value = format_speed(routespeed, ""); } if (routespeed == -1) { @@ -2049,9 +2042,10 @@ rprof=vehicleprofile_get_roadprofile(prof, item->type); if (rprof) { routespeed=rprof->speed; - value=format_speed(routespeed,""); } } + + value = format_speed(routespeed,"", oti->format); } else if (item) { if (tracking_get_attr(tracking, oti->attr_typ, &attr, NULL)) value=osd_text_format_attr(&attr, oti->format); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |