}
static void
+update_blur (Azimuth *self)
+{
+ AzimuthPrivate *priv = AZIMUTH_GET_PRIVATE (self);
+ gboolean blur;
+
+ if (priv->publisher == NULL)
+ return;
+
+ blur = gconf_client_get_bool (priv->gconf,
+ AZIMUTH_GCONF_KEY_BLUR, NULL);
+
+ position_publisher_set_blur (priv->publisher, blur);
+}
+
+static void
enabled_changed (Azimuth *self,
gboolean enabled)
{
return;
g_print ("enable publishing\n");
- priv->publisher = position_publisher_new (TRUE);
+ priv->publisher = position_publisher_new ();
+
+ update_blur (self);
}
else
{
enabled_changed (self, enabled);
}
- if (!tp_strdiff (key, AZIMUTH_GCONF_KEY_START_GPS) &&
+ else if (!tp_strdiff (key, AZIMUTH_GCONF_KEY_START_GPS) &&
value->type == GCONF_VALUE_BOOL)
{
update_gps (self);
}
+
+ else if (!tp_strdiff (key, AZIMUTH_GCONF_KEY_BLUR) &&
+ value->type == GCONF_VALUE_BOOL)
+ {
+ update_blur (self);
+ }
}
static void
{
g_print ("publishing is enabled\n");
g_assert (priv->publisher == NULL);
- priv->publisher = position_publisher_new (TRUE);
+ priv->publisher = position_publisher_new ();
update_gps (self);
+ update_blur (self);
}
else
{
{
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);
}
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");
+}
#define POSITION_PUBLISHER_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), POSITION_PUBLISHER_TYPE, PositionPublisherClass))
-PositionPublisher * position_publisher_new (gboolean start_gps);
+PositionPublisher * position_publisher_new (void);
+
+void position_publisher_set_blur (PositionPublisher *self,
+ gboolean blur);
G_END_DECLS