fixed gps to read directly from the struct
authorThomas Thurman <tthurman@gnome.org>
Sun, 30 Aug 2009 12:00:22 +0000 (08:00 -0400)
committerThomas Thurman <tthurman@gnome.org>
Sun, 30 Aug 2009 12:00:22 +0000 (08:00 -0400)
belltower.c

index bceef99..5e02e95 100644 (file)
@@ -85,10 +85,6 @@ typedef struct {
   int n_fields;
 } tower;
 
-gboolean gps_working = FALSE;
-double current_lat = 40.2452778;
-double current_long = -75.65;;
-
 static void
 show_message (char *message)
 {
@@ -114,8 +110,8 @@ distance_to_tower (tower *details)
   tower_long = strtod(details->fields[FieldLong], &endptr);
   if (*endptr) return -1;
 
-  km_distance = location_distance_between (current_lat,
-                                          current_long,
+  km_distance = location_distance_between (device->fix->latitude,
+                                          device->fix->longitude,
                                           tower_lat,
                                           tower_long);
 
@@ -450,7 +446,10 @@ single_tower_cb (tower *details,
   add_table_field ("Tenor", str);
   g_free (str);
 
-  add_button ("Tower website", show_tower_website);
+  if (strcmp(details->fields[FieldWebPage], "")!=0)
+    {
+      add_button ("Tower website", show_tower_website);
+    }
   add_button ("Peals", show_peals_list);
   add_button ("Map", show_tower_map);
   add_button ("Directions", NULL);
@@ -501,7 +500,7 @@ found_tower_new (tower *basis)
   result->sortkey = g_strdup (basis->fields[FieldPrimaryKey]);
   result->primarykey = g_strdup (basis->fields[FieldPrimaryKey]);
 
-  if (gps_working)
+  if (device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET)
     {
       gchar *distance = distance_to_tower_str (basis);
       result->displayname = g_strdup_printf ("%s, %s (%s, %s) (%s)",
@@ -701,7 +700,7 @@ nearby_towers (void)
 {
   GSList *matches = NULL;
 
-  if (!gps_working)
+  if (!(device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET))
     {
       show_message ("I don't know where you are!");
       return;
@@ -855,18 +854,6 @@ recent_towers (void)
   show_message ("This is not yet implemented.");
 }
 
-static void
-grab_gps (void)
-{
-  gps_working = (device->fix->fields & LOCATION_GPS_DEVICE_LATLONG_SET)!=0;
-
-  if (gps_working)
-    {
-      current_lat = device->fix->latitude;
-      current_long = device->fix->longitude;
-    }
-}
-
 int
 main(int argc, char **argv)
 {
@@ -877,8 +864,6 @@ main(int argc, char **argv)
   g_set_application_name ("Belltower");
 
   device = g_object_new (LOCATION_TYPE_GPS_DEVICE, NULL);
-  grab_gps ();
-  /* FIXME and call that when the location changes, too */
 
   window = hildon_stackable_window_new ();
   gtk_window_set_title (GTK_WINDOW (window), "Belltower");