13 #include <glib/gstdio.h>
16 #include <gdk/gdkkeysyms.h>
17 #include <libgnomevfs/gnome-vfs.h>
18 #include <curl/multi.h>
19 #include <gconf/gconf-client.h>
20 #include <libxml/parser.h>
26 #include "mapper-types.h"
33 hildon_play_system_sound("/usr/share/sounds/ui-information_note.wav");
40 deg_format(DegFormat degformat, gdouble coor, gchar * scoor, gchar neg_char, gchar pos_char)
43 gdouble acoor=fabs(coor);
47 sprintf(scoor, "%.5f°", coor);
50 sprintf(scoor, "%.5f° %c", acoor,
51 coor < 0.f ? neg_char : pos_char);
55 sprintf(scoor, "%d°%06.3f'",
56 (int)coor, (acoor - (int)acoor) * 60.0);
59 sprintf(scoor, "%d°%06.3f' %c",
60 (int)acoor, (acoor - (int)acoor) * 60.0,
61 coor < 0.f ? neg_char : pos_char);
65 min = (acoor - (int)acoor) * 60.0;
66 sprintf(scoor, "%d°%02d'%04.1f\"", (int)coor, (int)min,
67 ((min - (int)min) * 60.0));
70 min = (acoor - (int)acoor) * 60.0;
71 sprintf(scoor, "%d°%02d'%04.1f\" %c", (int)acoor, (int)min,
72 ((min - (int)min) * 60.0),
73 coor < 0.f ? neg_char : pos_char);
80 * Convert the float lat/lon/speed/heading data into integer units.
83 integerize_data(GpsData *gps, Point *pos)
87 latlon2unit(gps->lat, gps->lon, pos->unitx, pos->unity);
89 tmp=(gps->heading*(1.f/180.f))*G_PI;
90 gps->vel_offsetx=(gint)(floorf(gps->speed*sinf(tmp)+0.5f));
91 gps->vel_offsety=-(gint)(floorf(gps->speed*cosf(tmp)+0.5f));
95 download_comparefunc(const ProgressUpdateInfo * a, const ProgressUpdateInfo * b, gpointer user_data)
97 gint diff = (a->priority - b->priority);
100 diff = (a->tilex - b->tilex);
103 diff = (a->tiley - b->tiley);
106 diff = (a->zoom - b->zoom);
109 diff = (a->repo - b->repo);
112 /* Otherwise, deletes are "greatest" (least priority). */
114 return (b->retries ? -1 : 0);
115 else if (!b->retries)
116 return (a->retries ? 1 : 0);
117 /* Do updates after non-updates (because they'll both be done anyway). */
118 return (a->retries - b->retries);