static gboolean init_client (GUPnPContext *context) { GUPnPControlPoint *cp; cp = gupnp_control_point_new (context, NETWORK_LIGHT); g_signal_connect (cp, "device-proxy-available", G_CALLBACK (on_network_light_available), NULL); g_signal_connect (cp, "device-proxy-unavailable", G_CALLBACK (on_network_light_unavailable), NULL); gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE); /* Let context manager take care of the control point life cycle */ gupnp_context_manager_manage_control_point (context_manager, cp); /* We don't need to keep our own references to the control points */ g_object_unref (cp); return TRUE; }
static void prv_on_context_available(GUPnPContextManager *context_manager, GUPnPContext *context, gpointer user_data) { dld_upnp_t *upnp = user_data; GUPnPControlPoint *cp; cp = gupnp_control_point_new(context, "upnp:rootdevice"); g_signal_connect(cp, "device-proxy-available", G_CALLBACK(prv_device_available_cb), upnp); g_signal_connect(cp, "device-proxy-unavailable", G_CALLBACK(prv_device_unavailable_cb), upnp); gssdp_resource_browser_set_active(GSSDP_RESOURCE_BROWSER(cp), TRUE); gupnp_context_manager_manage_control_point(upnp->context_manager, cp); g_object_unref(cp); }
static void gupnp_simple_igd_add_control_point (GUPnPSimpleIgd *self, GUPnPContext *gupnp_context, const char *target) { GUPnPControlPoint *cp; cp = gupnp_control_point_new (gupnp_context, target); g_return_if_fail (cp); g_signal_connect_object (cp, "service-proxy-available", G_CALLBACK (_cp_service_avail), self, 0); g_signal_connect_object (cp, "service-proxy-unavailable", G_CALLBACK (_cp_service_unavail), self, 0); gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE); gupnp_context_manager_manage_control_point ( self->priv->gupnp_context_manager, cp); g_object_unref (cp); }