コード例 #1
0
ファイル: upnpdump.c プロジェクト: WilliamRen/mupnpc
mUpnpStateVariable *SelectStateVariable(mUpnpService *service)
{
	mUpnpStateVariable *stateVar;
	int n;
	char key;
	int serviceNum;

	n = 0;
	for (stateVar = mupnp_service_getstatevariables(service); stateVar != NULL; stateVar = mupnp_statevariable_next(stateVar)) {
		key = 'a' + n;
		if ('z' < key)
			break;
		printf(" [%c] = %s\n", key, mupnp_statevariable_getname(stateVar));
		n++;
	}
	printf("Select StateVariable : ");
	key = kbgetkey();
	key = tolower(key);
	printf("%c\n", key);
	
	if (!isalpha(key))
		return NULL;
	
	serviceNum = key - 'a';
	stateVar = mupnp_service_getstatevariables(service);
	for (n=1; n<serviceNum; n++)
		stateVar = mupnp_statevariable_next(stateVar);

	return stateVar;
}
コード例 #2
0
ファイル: clock_device.c プロジェクト: dwlinux/mupnpc
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;
}
コード例 #3
0
ファイル: ccontentdir_service.c プロジェクト: jink2005/mupnpc
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;
}
コード例 #4
0
ファイル: upnpdump.c プロジェクト: WilliamRen/mupnpc
void PrintDeviceInfo(mUpnpDevice *dev, int indent)
{
	char indentStr[128];
	int n;
	mUpnpService *service;
	int serviceCnt;
	mUpnpAction *action;
	int actionCnt;
	mUpnpArgumentList *arg;
	int argCnt;
	mUpnpStateVariable *stateVar;
	int stateVarCnt;
	
	for (n=0; n<indent && n<(sizeof(indentStr)-1); n++)
		indentStr[n] = ' ';
	indentStr[n] = '\0';
	
	serviceCnt = 0;
	for (service = mupnp_device_getservices(dev); service != NULL; service = mupnp_service_next(service)) {
		printf("%s service[%d] = %s\n", indentStr, ++serviceCnt, mupnp_service_getservicetype(service));
		actionCnt = 0;
		for (action = mupnp_service_getactions(service); action != NULL; action = mupnp_action_next(action)) {
			printf("%s  action[%d] = %s\n", indentStr, ++actionCnt, mupnp_action_getname(action));
			argCnt = 0;
			for (arg = mupnp_action_getarguments(action); arg != NULL; arg = mupnp_argument_next(arg)) {
				printf("%s   arg[%d] = %s\n", indentStr, ++argCnt, mupnp_argument_getname(arg));
			}
		}
		stateVarCnt = 0;
		for (stateVar = mupnp_service_getstatevariables(service); stateVar != NULL; stateVar = mupnp_statevariable_next(stateVar)) {
			printf("%s  stateVar[%d] = %s = %s\n", 
			       indentStr, 
			       ++stateVarCnt, 
			       mupnp_statevariable_getname(stateVar),
			       mupnp_statevariable_getvalue(stateVar));
		}
	}
}