Removed useless select call
authorEnrico Zini <enrico@enricozini.org>
Sat, 3 Apr 2010 20:30:43 +0000 (21:30 +0100)
committerEnrico Zini <enrico@enricozini.org>
Sat, 3 Apr 2010 20:30:43 +0000 (21:30 +0100)
src/gps.vala

index 17e76421e00f577d970a76830d3f234365e120c8..64037ce3a849c56b54d56bef02c47a19ce2d002a 100644 (file)
@@ -52,42 +52,39 @@ public class GPS: zavai.ScriptService
 
     protected bool on_input_data(IOChannel source, IOCondition condition)
     {
-        while (libgps.waiting(ref data))
+        int res = libgps.poll(ref data);
+        if (res != 0)
+            zavai.log.error(libgps.errstr(res));
+
+        if (data.status != old_fix_status)
+        {
+            fix_status_changed(data.status);
+            old_fix_status = data.status;
+        }
+
+        uint cur_time = (uint)data.fix.time;
+        if (data.status != libgps.STATUS_NO_FIX && old_time != cur_time)
+        {
+            time_changed(cur_time);
+            old_time = cur_time;
+        }
+
+        double lat = (data.status == libgps.STATUS_NO_FIX ? 1000 : data.fix.latitude);
+        double lon = (data.status == libgps.STATUS_NO_FIX ? 1000 : data.fix.longitude);
+        if (lat != old_lat || lon != old_lon)
+            pos_changed();
+
+        /*
+        stderr.printf("GPSMSG %d %d\n", (int)data.set, data.status);
+        stderr.printf("SATUSED %d\n", data.satellites_used);
+        stderr.printf("SWT %f\n", data.skyview_time);
+        stderr.printf("SATVIS %d\n", data.satellites_visible);
+        for (int i = 0; i < data.satellites_visible; ++i)
         {
-            int res = libgps.poll(ref data);
-            if (res != 0)
-                zavai.log.error(libgps.errstr(res));
-
-            if (data.status != old_fix_status)
-            {
-                fix_status_changed(data.status);
-                old_fix_status = data.status;
-            }
-
-            uint cur_time = (uint)data.fix.time;
-            if (data.status != libgps.STATUS_NO_FIX && old_time != cur_time)
-            {
-                time_changed(cur_time);
-                old_time = cur_time;
-            }
-
-            double lat = (data.status == libgps.STATUS_NO_FIX ? 1000 : data.fix.latitude);
-            double lon = (data.status == libgps.STATUS_NO_FIX ? 1000 : data.fix.longitude);
-            if (lat != old_lat || lon != old_lon)
-                pos_changed();
-
-            /*
-            stderr.printf("GPSMSG %d %d\n", (int)data.set, data.status);
-            stderr.printf("SATUSED %d\n", data.satellites_used);
-            stderr.printf("SWT %f\n", data.skyview_time);
-            stderr.printf("SATVIS %d\n", data.satellites_visible);
-            for (int i = 0; i < data.satellites_visible; ++i)
-            {
-                stderr.printf("PRN %d ELE %d AZI %d SS %f\n",
-                    data.PRN[i], data.elevation[i], data.azimuth[i], data.ss[i]);
-            }
-            */
+            stderr.printf("PRN %d ELE %d AZI %d SS %f\n",
+                data.PRN[i], data.elevation[i], data.azimuth[i], data.ss[i]);
         }
+        */
         return true;
     }