Cleanup
[speedometer] / callbacks.c
index ff693f8..bb6dbda 100644 (file)
 
        You should have received a copy of the GNU General Public License
        along with this program.  If not, see <http://www.gnu.org/licenses/>.
-****/
+ ****/
 
-#include <gtk/gtk.h>
+#include <hildon/hildon-banner.h>
+#include <math.h>
+#include <glib.h>
 
 #include "callbacks.h"
-
-void location_changed(LocationGPSDevice* device, gpointer userdata) {
-        g_print ("Latitude: %.2f\nLongitude: %.2f\nAltitude: %.2f\n",
-                 device->fix->latitude, device->fix->longitude, device->fix->altitude);
+#include "appdata.h"
+#include "ui.h"
+
+void location_changed(LocationGPSDevice* device, gpointer data) {
+       // check for NaN before passing values
+       if(device->fix->fields & LOCATION_GPS_DEVICE_SPEED_SET) {
+               if(!isnan(device->fix->speed)) {
+                       interpret_and_set_speed(device->fix->speed);
+               }
+       }
 }
 
-
-/* Callback for hardware keys */
 gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* window) {
-    switch (event->keyval) {
-    case GDK_Up:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Up");
-        return TRUE;
+       switch (event->keyval) {
+       case GDK_Up:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Up");
+               return TRUE;
+
+       case GDK_Down:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Down");
+               return TRUE;
 
-    case GDK_Down:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Down");
-        return TRUE;
+       case GDK_Left:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Left");
+               return TRUE;
 
-    case GDK_Left:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Left");
-        return TRUE;
+       case GDK_Right:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Right");
+               return TRUE;
 
-    case GDK_Right:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key Right");
-        return TRUE;
+       case GDK_Return:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key select");
+               return TRUE;
 
-    case GDK_Return:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Navigation Key select");
-        return TRUE;
+       case GDK_F6:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Full screen");
+               return TRUE;
 
-    case GDK_F6:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Full screen");
-        return TRUE;
+       case GDK_F7:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Increase (zoom in)");
+               return TRUE;
 
-    case GDK_F7:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Increase (zoom in)");
-        return TRUE;
+       case GDK_F8:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Decrease (zoom out)");
+               return TRUE;
 
-    case GDK_F8:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Decrease (zoom out)");
-        return TRUE;
+       case GDK_Escape:
+               hildon_banner_show_information(GTK_WIDGET(window), NULL, "Cancel/Close");
+               return TRUE;
+       }
 
-    case GDK_Escape:
-        hildon_banner_show_information(GTK_WIDGET(window), NULL, "Cancel/Close");
-        return TRUE;
-    }
+       return FALSE;
+}
+
+gboolean long_tap(GtkWidget* widget, gpointer data) {
+       gtk_main_quit();
+       return TRUE;
+}
 
-    return FALSE;
+gboolean short_tap(GtkWidget* widget, GdkEventButton* event, gpointer data) {
+       change_unit();
+       return TRUE;
 }