761d22068970fb1463afe54e2355bd090bf46952
[wai] / src / loc_data.c
1 #include "app_data.h"
2 #include "loc_data.h"
3 #include <stdio.h>
4 void on_error(LocationGPSDControl *control, LocationGPSDControlError error, gpointer data)
5
6         g_debug("location error: %d... quitting", error);
7 }
8
9 void on_changed(LocationGPSDevice *device, gpointer data)
10
11 {    
12     printf("asd");
13     if (!device)
14         return;
15
16     if (device->fix) {
17         if (device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET) {
18             AppData *app_data = (AppData *) data;
19             
20             gchar *tmp_str = (gchar *) g_malloc (25);
21             gchar *no_data = "-";
22             
23             g_sprintf(tmp_str,"%f", device->fix->latitude);
24             gtk_label_set_text( GTK_LABEL(app_data->main_ui->latitude_value_label), tmp_str );
25
26             g_sprintf(tmp_str,"%f", device->fix->longitude);
27             gtk_label_set_text( GTK_LABEL(app_data->main_ui->longitude_value_label), tmp_str );
28
29             if (device->fix->fields & LOCATION_GPS_DEVICE_ALTITUDE_SET) {
30                 g_sprintf(tmp_str,"%f", device->fix->altitude);
31                 gtk_label_set_text( GTK_LABEL(app_data->main_ui->altitude_value_label), tmp_str );
32             } else
33                 gtk_label_set_text( GTK_LABEL(app_data->main_ui->altitude_value_label), no_data );
34             
35
36             if (device->fix->fields & LOCATION_GPS_DEVICE_SPEED_SET) {
37                 g_sprintf(tmp_str,"%f", device->fix->speed);
38                 gtk_label_set_text( GTK_LABEL(app_data->main_ui->speed_value_label), tmp_str );
39             } else
40                 gtk_label_set_text( GTK_LABEL(app_data->main_ui->altitude_value_label), no_data );
41             
42             switch(device->fix->mode) {
43             case LOCATION_GPS_DEVICE_MODE_NOT_SEEN:
44                 g_sprintf(tmp_str,"%s", "No sat in view");
45                 break;
46             case LOCATION_GPS_DEVICE_MODE_NO_FIX:
47                 g_sprintf(tmp_str,"%s", "Not fixed yed");
48                 break;
49             case LOCATION_GPS_DEVICE_MODE_2D:
50                 g_sprintf(tmp_str,"%s", "2D Fix");
51                 break;
52             case LOCATION_GPS_DEVICE_MODE_3D:
53                 g_sprintf(tmp_str,"%s", "3D FIX");
54                 break;
55             default:
56                 g_sprintf(tmp_str,"%s", "Bho");
57             }
58             
59             gtk_label_set_text( GTK_LABEL(app_data->main_ui->fix_status_label), tmp_str );
60             
61             g_free(tmp_str);
62         }
63     }
64
65
66 void on_stop(LocationGPSDControl *control, gpointer data)
67 {
68         g_debug("quitting");
69
70
71 gboolean start_location(gpointer data)
72 {
73         location_gpsd_control_start((LocationGPSDControl *) data);
74         return FALSE;
75 }