diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-08-11 21:26:29 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-08-11 21:26:29 +0000 |
commit | c4e8c83730e3c9b34f26ebca7483a2f8667f5632 (patch) | |
tree | ff4875cb024bb7abbb3a24842c2a066ac2e6fc2f /navit/util.c | |
parent | 3a10446a87a5a07a1e1787a7ce8e7d8781e1fa40 (diff) | |
download | navit-svn-c4e8c83730e3c9b34f26ebca7483a2f8667f5632.tar.gz |
Refactor:core:Centralise get_direction.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5865 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/util.c')
-rw-r--r-- | navit/util.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/navit/util.c b/navit/util.c index 10cfc838..c00392e9 100644 --- a/navit/util.c +++ b/navit/util.c @@ -24,6 +24,7 @@ #include <time.h> #include <limits.h> #include <string.h> +#include <stdio.h> #ifdef _POSIX_C_SOURCE #include <unistd.h> @@ -131,7 +132,6 @@ g_utf8_strlen_force_link(gchar *buffer, int max) #endif #if defined(_WIN32) || defined(__CEGCC__) || defined (__APPLE__) || defined(HAVE_API_ANDROID) -#include <stdio.h> char *stristr(const char *String, const char *Pattern) { char *pptr, *sptr, *start; @@ -711,4 +711,31 @@ void spawn_process_init() return; } - +/** Get printable compass direction from an angle. */ +void +get_direction(char *buffer, int angle, int mode) +{ + angle=angle%360; + switch (mode) { + case 0: + sprintf(buffer,"%d",angle); + break; + case 1: + if (angle < 69 || angle > 291) + *buffer++='N'; + if (angle > 111 && angle < 249) + *buffer++='S'; + if (angle > 22 && angle < 158) + *buffer++='E'; + if (angle > 202 && angle < 338) + *buffer++='W'; + *buffer++='\0'; + break; + case 2: + angle=(angle+15)/30; + if (! angle) + angle=12; + sprintf(buffer,"%d H", angle); + break; + } +} |