コード例 #1
0
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;
}
コード例 #2
0
ファイル: cmediarenderer_device.c プロジェクト: Coramo/mupnp
char* cg_upnpav_dmr_getcurrentconnectionids(CgUpnpAvRenderer* dmr)
{
  CgUpnpService* service;
  CgUpnpStateVariable* stateVar;

  service = cg_upnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_CONNECTIONMANAGER_SERVICE_TYPE);
  stateVar = cg_upnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_CONNECTIONMANAGER_CURRENTCONNECTIONIDS);
  return cg_upnp_statevariable_getvalue(stateVar);
}
コード例 #3
0
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");
}