void cg_upnpav_content_addchildcontent(CgUpnpAvContent* con, CgUpnpAvContent* childCon) { cg_xml_node_addchildnode(con, childCon); cg_upnpav_content_setparentid(childCon, cg_upnpav_content_getid(con)); }
CgUpnpAvServer *cg_upnpav_dms_new() { CgUpnpAvServer *dms; dms = (CgUpnpAvServer *)malloc(sizeof(CgUpnpAvServer)); dms->dev = cg_upnp_device_new(); if (!dms->dev) { free(dms); return NULL; } if (cg_upnp_device_parsedescription(dms->dev, CG_UPNPAV_DMS_DEVICE_DESCRIPTION, cg_strlen(CG_UPNPAV_DMS_DEVICE_DESCRIPTION)) == FALSE) { cg_upnp_device_delete(dms->dev); free(dms); return NULL; } if (cg_upnpav_dms_conmgr_init(dms) == FALSE) { cg_upnp_device_delete(dms->dev); free(dms); return NULL; } if (cg_upnpav_dms_condir_init(dms) == FALSE) { cg_upnp_device_delete(dms->dev); free(dms); return NULL; } if (cg_upnpav_dms_medrec_init(dms) == FALSE) { cg_upnp_device_delete(dms->dev); free(dms); return NULL; } dms->rootContent = cg_upnpav_content_new(); cg_upnpav_content_settype(dms->rootContent, CG_UPNPAV_CONTENT_CONTAINER); cg_upnpav_content_settitle(dms->rootContent, CG_UPNPAV_ROOT_CONTENT_TITLE); cg_upnpav_content_setid(dms->rootContent, CG_UPNPAV_ROOT_CONTENT_ID); cg_upnpav_content_setparentid(dms->rootContent, CG_UPNPAV_ROOT_CONTENT_PARENTID); if (!dms->rootContent) { cg_upnpav_dms_delete(dms); return NULL; } dms->mutex = cg_mutex_new(); if (!dms->mutex) { cg_upnpav_dms_delete(dms); return NULL; } dms->networkInterfaceList = cg_net_interfacelist_new(); if (!dms->networkInterfaceList) { cg_upnpav_dms_delete(dms); return NULL; } cg_upnp_device_setactionlistener(dms->dev, cg_upnpav_dms_actionreceived); cg_upnp_device_setquerylistener(dms->dev, cg_upnpav_dms_queryreceived); cg_upnp_device_sethttplistener(dms->dev, cg_upnpav_dms_device_httprequestrecieved); cg_upnpav_dms_setactionlistener(dms, NULL); cg_upnpav_dms_setquerylistener(dms, NULL); cg_upnpav_dms_sethttplistener(dms, NULL); cg_upnp_device_setuserdata(dms->dev, dms); cg_upnp_device_updateudn(dms->dev); dms->protocolInfoList = cg_upnpav_protocolinfolist_new(); return dms; }