LAST_PROPERTY
};
+enum
+{
+ SIG_HAS_CONNECTIONS_CHANGED,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
/* Minimum time before 2 publishing (in seconds) */
#define PUBLISH_THROTTLE 10
self);
priv->connections = g_slist_remove (priv->connections, conn);
g_object_unref (conn);
+
+ if (g_slist_length (priv->connections) == 0)
+ {
+ g_print ("We don't have location connection any more\n");
+ g_signal_emit (self, signals[SIG_HAS_CONNECTIONS_CHANGED], 0, FALSE);
+ }
}
static void
priv->connections = g_slist_prepend (priv->connections, g_object_ref (conn));
+ if (g_slist_length (priv->connections) == 1)
+ {
+ /* We just added the first connection */
+ g_print ("We have location connection\n");
+ g_signal_emit (self, signals[SIG_HAS_CONNECTIONS_CHANGED], 0, TRUE);
+ }
+
g_signal_connect (conn, "invalidated",
G_CALLBACK (conn_invalidated_cb), self);
G_PARAM_CONSTRUCT | G_PARAM_WRITABLE | G_PARAM_READABLE
| G_PARAM_STATIC_STRINGS);
g_object_class_install_property (object_class, PROP_BLUR, param_spec);
+
+ signals[SIG_HAS_CONNECTIONS_CHANGED] = g_signal_new (
+ "has-connections-changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE,
+ 1, G_TYPE_BOOLEAN);
}
void