summaryrefslogtreecommitdiff
path: root/navit/util.c
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-08-11 21:26:29 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-08-11 21:26:29 +0000
commitc4e8c83730e3c9b34f26ebca7483a2f8667f5632 (patch)
treeff4875cb024bb7abbb3a24842c2a066ac2e6fc2f /navit/util.c
parent3a10446a87a5a07a1e1787a7ce8e7d8781e1fa40 (diff)
downloadnavit-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.c31
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;
+ }
+}