Moved sources to trunk.
[speedometer] / main.c
1 /****
2         Speedometer, shows your current speed using GPS
3         Copyright (C) 2008 Wellu Mäkinen <wellu@wellu.org>
4
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.
9
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.
14
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/>.
17 ****/
18
19
20
21 #include <stdlib.h>
22 #include <gtk/gtk.h>
23 #include <location/location-gps-device.h>
24 #include <location/location-gpsd-control.h>
25
26 static void location_changed (LocationGPSDevice *device, gpointer userdata) {
27         g_print ("Latitude: %.2f\nLongitude: %.2f\nAltitude: %.2f\n",
28                  device->fix->latitude, device->fix->longitude, device->fix->altitude);
29 }
30
31
32
33
34
35
36
37 int main(int argc, char** argv) {
38
39   /* We'll have two references to two GTK+ widgets. */
40   GtkWindow* window;
41   GtkLabel* label;
42
43   /* Initialize the GTK+ library. */
44   gtk_init(&argc, &argv);
45
46
47
48
49
50   /* Create a window with window border width of 12 pixels and a
51      title text. */
52   window = g_object_new(GTK_TYPE_WINDOW,
53     "border-width", 12,
54     "title", "Hello GTK+",
55     NULL);
56
57   /* Create the label widget. */
58   label = g_object_new(GTK_TYPE_LABEL,
59     "label", "Hello World!",
60     NULL);
61
62   /* Pack the label into the window layout. */
63   gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(label));
64
65   /* Show all widgets that are contained by the window. */
66   gtk_widget_show_all(GTK_WIDGET(window));
67
68
69
70   g_thread_init(NULL);
71
72   // gps device
73   LocationGPSDevice *device;
74   device = g_object_new (LOCATION_TYPE_GPS_DEVICE, NULL);
75
76   g_signal_connect (device, "changed", G_CALLBACK (location_changed), NULL);
77
78
79   LocationGPSDControl *control;
80
81   control = location_gpsd_control_get_default ();
82   location_gpsd_control_start(control);
83
84
85
86   /* Start the main event loop. */
87   gtk_main();
88
89   return EXIT_SUCCESS;
90 }
91