CgUpnpDevice *upnp_clock_device_new() { CgUpnpDevice *clockDev; CgUpnpService *timeService; clockDev = cg_upnp_device_new(); if (cg_upnp_device_parsedescription(clockDev, CLOCK_DEVICE_DESCRIPTION, strlen(CLOCK_DEVICE_DESCRIPTION)) == FALSE) { cg_upnp_device_delete(clockDev); return NULL; } timeService = cg_upnp_device_getservicebyexacttype(clockDev, "urn:schemas-upnp-org:service:timer:1"); if (timeService == NULL) { cg_upnp_device_delete(clockDev); return NULL; } if (cg_upnp_service_parsedescription(timeService, CLOCK_SERVICE_DESCRIPTION, strlen(CLOCK_SERVICE_DESCRIPTION)) == FALSE) { cg_upnp_device_delete(clockDev); return NULL; } cg_upnp_device_setactionlistener(clockDev, upnp_clock_actionreceived); cg_upnp_device_setquerylistener(clockDev, upnp_clock_queryreceived); cg_upnp_device_sethttplistener(clockDev, upnp_clock_device_httprequestrecieved); return clockDev; }
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); }
void upnp_clock_device_update(CgUpnpDevice *clockDev) { CgTime currTime; CgUpnpService *timeService; CgUpnpStateVariable *timeState; char sysTimeStr[SYSTEM_TIME_BUF_LEN]; timeService = cg_upnp_device_getservicebyexacttype(clockDev, "urn:schemas-upnp-org:service:timer:1"); if (timeService == NULL) return; timeState = cg_upnp_service_getstatevariablebyname(timeService, "Time"); if (timeState == NULL) return; currTime = cg_getcurrentsystemtime(); GetSystemTimeString(currTime, sysTimeStr); cg_upnp_statevariable_setvalue(timeState, sysTimeStr); printf("%s\n", sysTimeStr); }
void cg_upnpav_dmr_addprotocolinfo(CgUpnpAvRenderer* dmr, CgUpnpAvProtocolInfo* info) { CgString* protocolInfos; CgUpnpAvProtocolInfo* protocolInfo; CgUpnpService* service; CgUpnpStateVariable* stateVar; cg_upnpav_protocolinfolist_add(dmr->protocolInfoList, info); protocolInfos = cg_string_new(); for (protocolInfo = cg_upnpav_dmr_getprotocolinfos(dmr); protocolInfo; protocolInfo = cg_upnpav_protocolinfo_next(protocolInfo)) { if (0 < cg_string_length(protocolInfos)) cg_string_addvalue(protocolInfos, ","); cg_string_addvalue(protocolInfos, cg_upnpav_protocolinfo_getstring(protocolInfo)); } service = cg_upnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_CONNECTIONMANAGER_SERVICE_TYPE); stateVar = cg_upnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_CONNECTIONMANAGER_SINKPROTOCOLINFO); cg_upnp_statevariable_setvalue(stateVar, cg_string_getvalue(protocolInfos)); cg_string_delete(protocolInfos); }