bool mupnp_statevariable_performlistner(mUpnpStateVariable* statVar, mUpnpQueryRequest* queryReq) { MUPNP_STATEVARIABLE_LISTNER listener; mUpnpQueryResponse* queryRes; mUpnpHttpRequest* queryReqHttpReq; mUpnpHttpResponse* queryResHttpRes; mupnp_log_debug_l4("Entering...\n"); listener = mupnp_statevariable_getlistener(statVar); if (listener == NULL) return false; queryRes = mupnp_control_query_response_new(); mupnp_statevariable_setstatuscode(statVar, MUPNP_STATUS_INVALID_ACTION); mupnp_statevariable_setstatusdescription(statVar, mupnp_status_code2string(MUPNP_STATUS_INVALID_ACTION)); mupnp_statevariable_setvalue(statVar, ""); if (listener(statVar) == true) mupnp_control_query_response_setresponse(queryRes, statVar); else mupnp_control_soap_response_setfaultresponse(mupnp_control_query_response_getsoapresponse(queryRes), mupnp_statevariable_getstatuscode(statVar), mupnp_statevariable_getstatusdescription(statVar)); queryReqHttpReq = mupnp_soap_request_gethttprequest(mupnp_control_query_request_getsoaprequest(queryReq)); queryResHttpRes = mupnp_soap_response_gethttpresponse(mupnp_control_query_response_getsoapresponse(queryRes)); mupnp_http_request_postresponse(queryReqHttpReq, queryResHttpRes); mupnp_control_query_response_delete(queryRes); mupnp_log_debug_l4("Leaving...\n"); return true; }
void mupnp_upnpav_dmr_setcurrentconnectionids(mUpnpAvRenderer *dmr, char *value) { mUpnpService *service; mUpnpStateVariable *stateVar; service = mupnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_CONNECTIONMANAGER_SERVICE_TYPE); stateVar = mupnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_CONNECTIONMANAGER_CURRENTCONNECTIONIDS); mupnp_statevariable_setvalue(stateVar, value); }
bool mupnp_upnpav_dms_condir_queryreceived(mUpnpStateVariable *var) { mUpnpAvServer *dms; mUpnpDevice *dev; char *varName; char intBuf[MUPNP_STRING_INTEGER_BUFLEN]; varName = (char*)mupnp_statevariable_getname(var); if (mupnp_strlen(varName) <= 0) return false; dev = (mUpnpDevice *)mupnp_service_getdevice(mupnp_statevariable_getservice(var)); if (!dev) return false; dms = (mUpnpAvServer *)mupnp_device_getuserdata(dev); if (!dms) return false; /* Sort Capabilities */ if (mupnp_streq(varName, CG_UPNPAV_DMS_CONTENTDIRECTORY_SORT_CAPABILITIES)) { mupnp_statevariable_setvalue(var, ""); return true; } /* Search Capabilities */ if (mupnp_streq(varName, CG_UPNPAV_DMS_CONTENTDIRECTORY_SEARCH_CAPABILITIES)) { mupnp_statevariable_setvalue(var, ""); return true; } /* System Update ID */ if (mupnp_streq(varName, CG_UPNPAV_DMS_CONTENTDIRECTORY_SYSTEM_UPDATE_ID)) { mupnp_statevariable_setvalue(var, mupnp_int2str(mupnp_upnpav_dms_condir_getsystemupdateid(dms), intBuf, MUPNP_STRING_INTEGER_BUFLEN)); return true; } return false; }
BOOL upnp_clock_queryreceived(mUpnpStateVariable *statVar) { const char *varName; mUpnpTime currTime; char sysTimeStr[SYSTEM_TIME_BUF_LEN]; varName = mupnp_statevariable_getname(statVar); if (strcmp("Time", varName) == 0) { currTime = mupnp_getcurrentsystemtime(); GetSystemTimeString(currTime, sysTimeStr); mupnp_statevariable_setvalue(statVar, sysTimeStr); return TRUE; } return FALSE; }
void mupnp_upnpav_dms_condir_setsystemupdateid(mUpnpAvServer *dms, int id) { mUpnpDevice *dev; mUpnpStateVariable *var; char intBuf[MUPNP_STRING_INTEGER_BUFLEN]; dev = mupnp_upnpav_dms_getdevice(dms); if (!dev) return; var = mupnp_device_getstatevariablebyname(dev, CG_UPNPAV_DMS_CONTENTDIRECTORY_SYSTEM_UPDATE_ID); if (!var) return; mupnp_statevariable_setvalue(var, mupnp_int2str(id, intBuf, MUPNP_STRING_INTEGER_BUFLEN)); }
bool mupnp_statevariable_post(mUpnpStateVariable* statVar) { mUpnpQueryRequest* queryReq; mUpnpQueryResponse* queryRes; bool querySuccess; mupnp_log_debug_l4("Entering...\n"); queryReq = mupnp_control_query_request_new(); mupnp_control_query_request_setstatevariable(queryReq, statVar); queryRes = mupnp_control_query_request_post(queryReq); querySuccess = mupnp_control_query_response_issuccessful(queryRes); mupnp_statevariable_setvalue(statVar, (querySuccess == true) ? mupnp_control_query_response_getreturnvalue(queryRes) : ""); mupnp_control_query_request_delete(queryReq); mupnp_log_debug_l4("Leaving...\n"); return querySuccess; }
void upnp_clock_device_update(mUpnpDevice *clockDev) { mUpnpTime currTime; mUpnpService *timeService; mUpnpStateVariable *timeState; char sysTimeStr[SYSTEM_TIME_BUF_LEN]; timeService = mupnp_device_getservicebyexacttype(clockDev, "urn:schemas-upnp-org:service:timer:1"); if (timeService == NULL) return; timeState = mupnp_service_getstatevariablebyname(timeService, "Time"); if (timeState == NULL) return; currTime = mupnp_getcurrentsystemtime(); GetSystemTimeString(currTime, sysTimeStr); mupnp_statevariable_setvalue(timeState, sysTimeStr); printf("%s\n", sysTimeStr); }
/** * When an event is received, update also the associated service's * state table to include the evented state variable. * * @param service The service, whose state table to update * @param prop The evented property from which to update */ void mupnp_controlpoint_updatestatetablefromproperty(mUpnpService* service, mUpnpProperty* prop) { mUpnpStateVariable* var = NULL; mupnp_log_debug_l4("Entering...\n"); if (service == NULL || prop == NULL) { return; } var = mupnp_service_getstatevariablebyname(service, mupnp_property_getname(prop)); if (var) { mupnp_statevariable_setvalue(var, mupnp_property_getvalue(prop)); } mupnp_log_debug_l4("Leaving...\n"); }
void mupnp_upnpav_dmr_addprotocolinfo(mUpnpAvRenderer *dmr, mUpnpAvProtocolInfo *info) { mUpnpString *protocolInfos; mUpnpAvProtocolInfo *protocolInfo; mUpnpService *service; mUpnpStateVariable *stateVar; mupnp_upnpav_protocolinfolist_add(dmr->protocolInfoList, info); protocolInfos = mupnp_string_new(); for (protocolInfo = mupnp_upnpav_dmr_getprotocolinfos(dmr); protocolInfo; protocolInfo = mupnp_upnpav_protocolinfo_next(protocolInfo)) { if (0 < mupnp_string_length(protocolInfos)) mupnp_string_addvalue(protocolInfos, ","); mupnp_string_addvalue(protocolInfos, mupnp_upnpav_protocolinfo_getstring(protocolInfo)); } service = mupnp_device_getservicebyexacttype(dmr->dev, CG_UPNPAV_DMR_CONNECTIONMANAGER_SERVICE_TYPE); stateVar = mupnp_service_getstatevariablebyname(service, CG_UPNPAV_DMR_CONNECTIONMANAGER_SINKPROTOCOLINFO); mupnp_statevariable_setvalue(stateVar, mupnp_string_getvalue(protocolInfos)); mupnp_string_delete(protocolInfos); }