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;
}
Esempio n. 2
0
BOOL upnp_clock_queryreceived(CgUpnpStateVariable *statVar)
{
    char *varName;
    CgTime currTime;
    char sysTimeStr[SYSTEM_TIME_BUF_LEN];

    varName = cg_upnp_statevariable_getname(statVar);
    if (strcmp("Time", varName) == 0) {
        currTime = cg_getcurrentsystemtime();
        GetSystemTimeString(currTime, sysTimeStr);
        cg_upnp_statevariable_setvalue(statVar, sysTimeStr);
        return TRUE;
    }

    return FALSE;
}