Initial commit, partially working
[wai] / src / app_data.c
diff --git a/src/app_data.c b/src/app_data.c
new file mode 100644 (file)
index 0000000..6c4cadc
--- /dev/null
@@ -0,0 +1,42 @@
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include "app_data.h"
+
+/* Global AppData only access with get_app_data() */
+AppData *_app_data = NULL;
+
+AppData*
+app_data_get()
+{
+    return _app_data;
+}
+
+void
+app_data_init()
+{
+    g_return_if_fail(_app_data == NULL);
+    
+    _app_data = g_new(AppData, 1);
+    _app_data->fullscreen = FALSE;
+    _app_data->main_ui = NULL;
+    _app_data->program = hildon_program_get_instance();
+    _app_data->control = location_gpsd_control_get_default();
+    _app_data->device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
+
+    g_object_set(G_OBJECT(_app_data->control),
+                 "preferred-method", LOCATION_METHOD_GNSS | LOCATION_METHOD_AGNSS,
+                 "preferred-interval", LOCATION_INTERVAL_DEFAULT,
+                 NULL);
+
+}
+
+void app_data_free()
+{
+       AppData *app_data = app_data_get();
+       if (app_data->main_ui->window != NULL) {
+               gtk_widget_destroy(GTK_WIDGET(app_data->main_ui->window));
+       }
+        
+       g_free(app_data);
+}