2 Speedometer, shows your current speed using GPS
3 Copyright (C) 2008 Wellu Mäkinen <wellu@wellu.org>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #include <location/location-gps-device.h>
20 #include <location/location-gpsd-control.h>
24 #include "callbacks.h"
27 static LocationGPSDevice *device = NULL;
28 static LocationGPSDControl *control = NULL;
30 void start_gps(AppData* appdata) {
33 device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
34 g_signal_connect(device, "changed", G_CALLBACK(location_changed), appdata);
36 control = location_gpsd_control_get_default();
37 location_gpsd_control_request_status(control);
38 if(control->can_control) {
39 location_gpsd_control_start(control);
44 void stop_gps(AppData* appdata) {
46 control = location_gpsd_control_get_default();
47 location_gpsd_control_request_status(control);
48 if(control->can_control) {
49 location_gpsd_control_stop(control);
54 void interpret_speed_from_gps(AppData* appdata, gdouble speed) {
56 // first let's convert the number to characters
57 gchar* c_digits = calloc(30, 1);
59 g_sprintf(c_digits, "%f", speed);
61 g_print("interpret_speed_from_gps: %s", c_digits);
65 guint value = g_ascii_digit_value(c_digits[i]);
66 set_nth_digit(appdata, i, value);