actually implement location bluring
[azimuth] / src / position-publisher.c
index 332c8d0..c0c57fd 100644 (file)
@@ -168,6 +168,15 @@ update_position (PositionPublisher *self,
 {
   PositionPublisherPrivate *priv = POSITION_PUBLISHER_GET_PRIVATE (self);
 
+  if (priv->blur)
+    {
+      /* Truncate at 1 decimal place */
+      lon = ((int) (lon * 10)) / 10.0;
+      lat = ((int) (lat * 10)) / 10.0;
+
+      /* FIXME: change accuracy (not that easy as accuracy is in meters) */
+    }
+
   g_print ("update position: lat: %f  lon:  %f  alt: %f accuracy: %f\n",
       lat, lon, alt, accuracy);
 
@@ -379,9 +388,19 @@ position_publisher_set_property (GObject *object,
 }
 
 PositionPublisher *
-position_publisher_new (gboolean blur)
+position_publisher_new (void)
 {
   return g_object_new (POSITION_PUBLISHER_TYPE,
-      "blur", blur,
       NULL);
 }
+
+void
+position_publisher_set_blur (PositionPublisher *self,
+    gboolean blur)
+{
+  PositionPublisherPrivate *priv = POSITION_PUBLISHER_GET_PRIVATE (self);
+
+  g_print ("%s blurring location\n", blur ? "Start": "Stop");
+  priv->blur = blur;
+  g_object_notify (G_OBJECT (self), "blur");
+}