static CgXmlNode *cg_upnp_event_notify_request_createpropertysetnode(CgUpnpService* service, CgUpnpStateVariable *statVar) { CgXmlNode *propSetNode; CgXmlNode *propNode; CgXmlNode *varNode; cg_log_debug_l4("Entering...\n"); propSetNode = cg_xml_node_new(); cg_xml_node_setname(propSetNode, CG_UPNP_NOTIFY_XMLNS CG_SOAP_DELIM CG_UPNP_NOTIFY_PROPERTYSET); cg_xml_node_setnamespace(propSetNode, CG_UPNP_NOTIFY_XMLNS, CG_UPNP_SUBSCRIPTION_XMLNS); if (service) { for (statVar = cg_upnp_service_getstatevariables(service); statVar != NULL; statVar = cg_upnp_statevariable_next(statVar)) { if (!cg_upnp_statevariable_issendevents(statVar)) continue; propNode = cg_xml_node_new(); if (!propNode) continue; cg_xml_node_setname(propNode, CG_UPNP_NOTIFY_XMLNS CG_SOAP_DELIM CG_UPNP_NOTIFY_PROPERTY); cg_xml_node_addchildnode(propSetNode, propNode); varNode = cg_xml_node_new(); if (!varNode) { cg_xml_node_delete(propNode); continue; } cg_xml_node_setname(varNode, cg_upnp_statevariable_getname(statVar)); cg_xml_node_setvalue(varNode, cg_upnp_statevariable_getvalue(statVar)); cg_xml_node_addchildnode(propNode, varNode); } } else if (statVar) { propNode = cg_xml_node_new(); if (propNode) { cg_xml_node_setname(propNode, CG_UPNP_NOTIFY_XMLNS CG_SOAP_DELIM CG_UPNP_NOTIFY_PROPERTY); cg_xml_node_addchildnode(propSetNode, propNode); varNode = cg_xml_node_new(); if (varNode) { cg_xml_node_setname(varNode, cg_upnp_statevariable_getname(statVar)); cg_xml_node_setvalue(varNode, cg_upnp_statevariable_getvalue(statVar)); cg_xml_node_addchildnode(propNode, varNode); } else cg_xml_node_delete(propNode); } } cg_log_debug_l4("Leaving...\n"); return propSetNode; }
static CgXmlNode *cg_upnp_control_query_response_createresponsenode(CgUpnpStateVariable *statVar) { CgXmlNode *queryResNode; CgXmlNode *returnNode; cg_log_debug_l4("Entering...\n"); queryResNode = cg_xml_node_new(); cg_xml_node_setname(queryResNode, CG_UPNP_CONTROL_NS CG_SOAP_DELIM CG_UPNP_CONTROL_QUERY_STATE_VARIABLE_RESPONSE); cg_xml_node_setnamespace(queryResNode, CG_UPNP_CONTROL_NS, CG_UPNP_CONTROL_XMLNS); returnNode = cg_xml_node_new(); cg_xml_node_setname(returnNode, CG_UPNP_CONTROL_RETURN); cg_xml_node_setvalue(returnNode, cg_upnp_statevariable_getvalue(statVar)); cg_xml_node_addchildnode(queryResNode, returnNode); return queryResNode; cg_log_debug_l4("Leaving...\n"); }