--- /dev/null
+#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);
+}