static GUPnPServiceInfo * gupnp_device_proxy_get_service (GUPnPDeviceInfo *info, xmlNode *element) { GUPnPResourceFactory *factory; GUPnPServiceProxy *service; GUPnPContext *context; GUPnPXMLDoc *doc; const char *location, *udn; const SoupURI *url_base; factory = gupnp_device_info_get_resource_factory (info); context = gupnp_device_info_get_context (info); doc = _gupnp_device_info_get_document (info); udn = gupnp_device_info_get_udn (info); location = gupnp_device_info_get_location (info); url_base = gupnp_device_info_get_url_base (info); service = gupnp_resource_factory_create_service_proxy (factory, context, doc, element, udn, NULL, location, url_base); return GUPNP_SERVICE_INFO (service); }
static GUPnPServiceInfo * gupnp_device_get_service (GUPnPDeviceInfo *info, xmlNode *element) { GUPnPDevice *device; GUPnPService *service; GUPnPResourceFactory *factory; GUPnPContext *context; GUPnPDevice *root_device; const char *location, *udn; const SoupURI *url_base; device = GUPNP_DEVICE (info); root_device = GUPNP_IS_ROOT_DEVICE (device) ? device : GUPNP_DEVICE (device->priv->root_device); if (root_device == NULL) { g_warning ("Root device not found."); return NULL; } factory = gupnp_device_info_get_resource_factory (info); context = gupnp_device_info_get_context (info); udn = gupnp_device_info_get_udn (info); location = gupnp_device_info_get_location (info); url_base = gupnp_device_info_get_url_base (info); service = gupnp_resource_factory_create_service (factory, context, root_device, element, udn, location, url_base); return GUPNP_SERVICE_INFO (service); }