Mark X_MS_MediaReceiverRegistrar variables that are supposed to be evented as such.
This commit is contained in:
parent
58b2c604d8
commit
dda5b1c19d
139
upnpdescgen.c
139
upnpdescgen.c
@ -191,79 +191,11 @@ static const struct XMLElt rootDesc[] =
|
||||
{"/serviceType", "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1"},
|
||||
{"/serviceId", "urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar"},
|
||||
{"/controlURL", X_MS_MEDIARECEIVERREGISTRAR_CONTROLURL},
|
||||
{"/eventSubURL", ""},
|
||||
{"/eventSubURL", X_MS_MEDIARECEIVERREGISTRAR_EVENTURL},
|
||||
{"/SCPDURL", X_MS_MEDIARECEIVERREGISTRAR_PATH},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
static const struct argument AddPortMappingArgs[] =
|
||||
{
|
||||
{NULL, 1, 11},
|
||||
{NULL, 1, 12},
|
||||
{NULL, 1, 14},
|
||||
{NULL, 1, 13},
|
||||
{NULL, 1, 15},
|
||||
{NULL, 1, 9},
|
||||
{NULL, 1, 16},
|
||||
{NULL, 1, 10},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument DeletePortMappingArgs[] =
|
||||
{
|
||||
{NULL, 1, 11},
|
||||
{NULL, 1, 12},
|
||||
{NULL, 1, 14},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument SetConnectionTypeArgs[] =
|
||||
{
|
||||
{NULL, 1, 0},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetConnectionTypeInfoArgs[] =
|
||||
{
|
||||
{NULL, 2, 0},
|
||||
{NULL, 2, 1},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetNATRSIPStatusArgs[] =
|
||||
{
|
||||
{NULL, 2, 5},
|
||||
{NULL, 2, 6},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetGenericPortMappingEntryArgs[] =
|
||||
{
|
||||
{NULL, 1, 8},
|
||||
{NULL, 2, 11},
|
||||
{NULL, 2, 12},
|
||||
{NULL, 2, 14},
|
||||
{NULL, 2, 13},
|
||||
{NULL, 2, 15},
|
||||
{NULL, 2, 9},
|
||||
{NULL, 2, 16},
|
||||
{NULL, 2, 10},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetSpecificPortMappingEntryArgs[] =
|
||||
{
|
||||
{NULL, 1, 11},
|
||||
{NULL, 1, 12},
|
||||
{NULL, 1, 14},
|
||||
{NULL, 2, 13},
|
||||
{NULL, 2, 15},
|
||||
{NULL, 2, 9},
|
||||
{NULL, 2, 16},
|
||||
{NULL, 2, 10},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
/* For ConnectionManager */
|
||||
static const struct argument GetProtocolInfoArgs[] =
|
||||
{
|
||||
@ -321,9 +253,9 @@ static const struct action ConnectionManagerActions[] =
|
||||
|
||||
static const struct stateVar ConnectionManagerVars[] =
|
||||
{
|
||||
{"SourceProtocolInfo", 1<<7, 0, 0, 44}, /* required */
|
||||
{"SinkProtocolInfo", 1<<7, 0, 0, 48}, /* required */
|
||||
{"CurrentConnectionIDs", 1<<7, 0, 0, 46}, /* required */
|
||||
{"SourceProtocolInfo", 0|EVENTED, 0, 0, 44}, /* required */
|
||||
{"SinkProtocolInfo", 0|EVENTED, 0, 0, 48}, /* required */
|
||||
{"CurrentConnectionIDs", 0|EVENTED, 0, 0, 46}, /* required */
|
||||
{"A_ARG_TYPE_ConnectionStatus", 0, 0, 27}, /* required */
|
||||
{"A_ARG_TYPE_ConnectionManager", 0, 0}, /* required */
|
||||
{"A_ARG_TYPE_Direction", 0, 0, 33}, /* required */
|
||||
@ -405,7 +337,7 @@ static const struct action ContentDirectoryActions[] =
|
||||
|
||||
static const struct stateVar ContentDirectoryVars[] =
|
||||
{
|
||||
{"TransferIDs", 1<<7, 0, 0, 48}, /* 0 */
|
||||
{"TransferIDs", 0|EVENTED, 0, 0, 48}, /* 0 */
|
||||
{"A_ARG_TYPE_ObjectID", 0, 0},
|
||||
{"A_ARG_TYPE_Result", 0, 0},
|
||||
{"A_ARG_TYPE_SearchCriteria", 0, 0},
|
||||
@ -416,17 +348,9 @@ static const struct stateVar ContentDirectoryVars[] =
|
||||
{"A_ARG_TYPE_Index", 3, 0},
|
||||
{"A_ARG_TYPE_Count", 3, 0},
|
||||
{"A_ARG_TYPE_UpdateID", 3, 0},
|
||||
//JM{"A_ARG_TYPE_TransferID", 3, 0}, /* 10 */
|
||||
//JM{"A_ARG_TYPE_TransferStatus", 0, 0, 39},
|
||||
/* Allowed Values : COMPLETED / ERROR / IN_PROGRESS / STOPPED */
|
||||
//JM{"A_ARG_TYPE_TransferLength", 0, 0},
|
||||
//JM{"A_ARG_TYPE_TransferTotal", 0, 0},
|
||||
//JM{"A_ARG_TYPE_TagValueList", 0, 0},
|
||||
//JM{"A_ARG_TYPE_URI", 5, 0}, /* 15 */
|
||||
{"SearchCapabilities", 0, 0},
|
||||
{"SortCapabilities", 0, 0},
|
||||
{"SystemUpdateID", 3|0x80, 0, 0, 255},
|
||||
//{"ContainerUpdateIDs", 0, 0},
|
||||
{"SystemUpdateID", 3|EVENTED, 0, 0, 255},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
@ -455,9 +379,6 @@ static const struct action X_MS_MediaReceiverRegistrarActions[] =
|
||||
{
|
||||
{"IsAuthorized", GetIsAuthorizedArgs}, /* R */
|
||||
{"IsValidated", GetIsValidatedArgs}, /* R */
|
||||
#if 0 // Not needed? WMP12 still works. Need to check with 360 and WMP11.
|
||||
{"RegisterDevice", GetRegisterDeviceArgs}, /* R */
|
||||
#endif
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
@ -467,49 +388,13 @@ static const struct stateVar X_MS_MediaReceiverRegistrarVars[] =
|
||||
{"A_ARG_TYPE_RegistrationReqMsg", 7, 0},
|
||||
{"A_ARG_TYPE_RegistrationRespMsg", 7, 0},
|
||||
{"A_ARG_TYPE_Result", 6, 0},
|
||||
{"AuthorizationDeniedUpdateID", 3, 0},
|
||||
{"AuthorizationGrantedUpdateID", 3, 0},
|
||||
{"ValidationRevokedUpdateID", 3, 0},
|
||||
{"ValidationSucceededUpdateID", 3, 0},
|
||||
{"AuthorizationDeniedUpdateID", 3|EVENTED, 0},
|
||||
{"AuthorizationGrantedUpdateID", 3|EVENTED, 0},
|
||||
{"ValidationRevokedUpdateID", 3|EVENTED, 0},
|
||||
{"ValidationSucceededUpdateID", 3|EVENTED, 0},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
/* WANCfg.xml */
|
||||
/* See UPnP_IGD_WANCommonInterfaceConfig 1.0.pdf */
|
||||
|
||||
static const struct argument GetCommonLinkPropertiesArgs[] =
|
||||
{
|
||||
{NULL, 2, 0},
|
||||
{NULL, 2, 1},
|
||||
{NULL, 2, 2},
|
||||
{NULL, 2, 3},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetTotalBytesSentArgs[] =
|
||||
{
|
||||
{NULL, 2, 4},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetTotalBytesReceivedArgs[] =
|
||||
{
|
||||
{NULL, 2, 5},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetTotalPacketsSentArgs[] =
|
||||
{
|
||||
{NULL, 2, 6},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct argument GetTotalPacketsReceivedArgs[] =
|
||||
{
|
||||
{NULL, 2, 7},
|
||||
{NULL, 0, 0}
|
||||
};
|
||||
|
||||
static const struct serviceDesc scpdContentDirectory =
|
||||
{ ContentDirectoryActions, ContentDirectoryVars };
|
||||
|
||||
@ -777,7 +662,7 @@ genServiceDesc(int * len, const struct serviceDesc * s)
|
||||
{
|
||||
str = strcat_str(str, len, &tmplen,
|
||||
"<stateVariable sendEvents=\"");
|
||||
str = strcat_str(str, len, &tmplen, (vars[i].itype & 0x80)?"yes":"no");
|
||||
str = strcat_str(str, len, &tmplen, (vars[i].itype & EVENTED)?"yes":"no");
|
||||
str = strcat_str(str, len, &tmplen, "\"><name>");
|
||||
str = strcat_str(str, len, &tmplen, vars[i].name);
|
||||
str = strcat_str(str, len, &tmplen, "</name><dataType>");
|
||||
@ -851,7 +736,7 @@ genEventVars(int * len, const struct serviceDesc * s, const char * servns)
|
||||
snprintf(buf, sizeof(buf), "<e:propertyset xmlns:e=\"urn:schemas-upnp-org:event-1-0\" xmlns:s=\"%s\">", servns);
|
||||
str = strcat_str(str, len, &tmplen, buf);
|
||||
while(v->name) {
|
||||
if(v->itype & 0x80) {
|
||||
if(v->itype & EVENTED) {
|
||||
snprintf(buf, sizeof(buf), "<e:property><%s>", v->name);
|
||||
str = strcat_str(str, len, &tmplen, buf);
|
||||
//printf("<e:property><s:%s>", v->name);
|
||||
|
@ -57,6 +57,7 @@ struct argument {
|
||||
unsigned char relatedVar; /* index of the related variable */
|
||||
};
|
||||
|
||||
#define EVENTED 1<<7
|
||||
struct stateVar {
|
||||
const char * name;
|
||||
unsigned char itype; /* MSB: sendEvent flag, 7 LSB: index in upnptypes */
|
||||
|
Loading…
x
Reference in New Issue
Block a user