git-svn-id: file:///svnroot/speedometer/trunk@44 df364472-da61-43ef-8a67-511c89aa921b
[speedometer] / callbacks.c
index 57964cb..0cf0792 100644 (file)
        along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ****/
 
+#include <hildon/hildon-banner.h>
+#include <math.h>
+
 #include "callbacks.h"
 #include "appdata.h"
-#include "util.h"
-
-// this is just here for debugging
-static void print_location(LocationGPSDevice* device) {
-       g_print("Latitude: %.2f\n"
-                       "Longitude: %.2f\n"
-                       "Altitude: %.2f\n"
-                       "Speed: %d\n",
-                       device->fix->latitude,
-                       device->fix->longitude,
-                       device->fix->altitude,
-                       device->fix->speed);
-}
+#include "ui.h"
 
 void location_changed(LocationGPSDevice* device, gpointer data) {
-       //print_location(device);
-
-       AppData* appdata = (AppData*) data;
-
+       // check for NaN before passing values
        if(device->fix->fields & LOCATION_GPS_DEVICE_SPEED_SET) {
-               g_print("Speed is %.2f km/h\n", device->fix->speed);
-               interpret_speed_from_gps(appdata, device->fix->speed);
+               if(!isnan(device->fix->speed)) {
+                       interpret_and_set_speed(device->fix->speed);
+                       }
        }
 }
 
@@ -86,28 +75,30 @@ gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* windo
 }
 
 gboolean top_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) {
+       g_assert(data);
+
        gdouble x = event->x;
        g_print("Top event box pressed at: %f\n", x);
        AppData* appdata = (AppData*) data;
 
        if(x > 750) {
                g_print("Exiting..\n");
-               stop_gps(appdata);
                g_signal_emit_by_name(appdata->window, "delete_event");
        }
-       else {
-               randomize(appdata);
-       }
        return TRUE;
 }
 
+gboolean middle_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) {
+       gdouble x = event->x;
+       g_print("Middle event box pressed at: %f\n", x);
+       g_print("Changing conversion unit\n");
+       change_unit();
+       return TRUE;
+}
 
 gboolean bottom_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) {
        gdouble x = event->x;
        g_print("Bottom event box pressed at: %f\n", x);
-       AppData* appdata = (AppData*) data;
-
-       randomize(data);
        return TRUE;
 }