-void interpret_speed_from_gps(AppData* appdata, gdouble speed) {
-
- // if speed is below one then it's zero
- if(speed < 1) {
- set_nth_digit(appdata, 0, 0);
- set_nth_digit(appdata, 1, 0);
- set_nth_digit(appdata, 2, 0);
- return;
- }
-
- // speed => 1
- // first let's convert the number to string
- gchar* cspeed = g_malloc(30); // alloc
- g_sprintf(cspeed, "%f", speed);
-
- // split the string using comma as delimiter
- gchar** splitted = g_strsplit(cspeed, ",", 2); // alloc
-
- gchar* ckm = splitted[0]; // contains the km/h part e.g 123 assuming speed was 123,034510
- gchar* cm = splitted[1]; // contains the m/h part e.g 034510 assuming speed was 123,034510
-
- g_print("Original speed %c, splitted speed %c and %c\n", cspeed, ckm, cm);
-
- // we need to pad km part in order to ensure it is *atleast* 3 digits long
- gchar* padding = "00";
- gchar* padded = g_strconcat(padding, cm, NULL); // alloc
-
- g_print("Original speed %c, padded speed %c (km) and %c (m)\n", cspeed, padded, cm);
-
-
- guint i = 2;
- guint pspeedl = strlen(padded);
-
- while(i+1) {
- guint value = g_ascii_digit_value(padded[pspeedl]);
- set_nth_digit(appdata, i, value);
- i--;
- }
- repaint_all_digits(appdata);
-
- g_free(padded);
- g_free(cspeed);
- g_strfreev(splitted);
-}
-
-void show_postcard_dialog() {
- GConfClient* client = gconf_client_get_default();
- g_assert(GCONF_IS_CLIENT(client));