* Send a custom root description to enable the subtitle menu on some Samsung TV's.
This commit is contained in:
parent
757eacc236
commit
1e23a1e8e9
4
NEWS
4
NEWS
@ -1,3 +1,7 @@
|
|||||||
|
1.0.23 - Released 00-Month-0000
|
||||||
|
--------------------------------
|
||||||
|
- Enable the subtitle menu on some Samsung TV's.
|
||||||
|
|
||||||
1.0.22 - Released 24-Aug-2011
|
1.0.22 - Released 24-Aug-2011
|
||||||
--------------------------------
|
--------------------------------
|
||||||
- Add bookmark support for some Samsung TV's.
|
- Add bookmark support for some Samsung TV's.
|
||||||
|
@ -68,7 +68,7 @@ enum file_types {
|
|||||||
enum client_types {
|
enum client_types {
|
||||||
EXbox = 1,
|
EXbox = 1,
|
||||||
EPS3,
|
EPS3,
|
||||||
ESamsungTV,
|
ESamsungSeriesC,
|
||||||
EDenonReceiver,
|
EDenonReceiver,
|
||||||
EFreeBox,
|
EFreeBox,
|
||||||
EPopcornHour,
|
EPopcornHour,
|
||||||
|
@ -675,18 +675,40 @@ genRootDesc(int * len)
|
|||||||
{
|
{
|
||||||
char * str;
|
char * str;
|
||||||
int tmplen;
|
int tmplen;
|
||||||
tmplen = 2048;
|
tmplen = 2560;
|
||||||
str = (char *)malloc(tmplen);
|
str = (char *)malloc(tmplen);
|
||||||
if(str == NULL)
|
if(str == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
* len = strlen(xmlver);
|
* len = strlen(xmlver);
|
||||||
/*strcpy(str, xmlver); */
|
|
||||||
memcpy(str, xmlver, *len + 1);
|
memcpy(str, xmlver, *len + 1);
|
||||||
str = genXML(str, len, &tmplen, rootDesc);
|
str = genXML(str, len, &tmplen, rootDesc);
|
||||||
str[*len] = '\0';
|
str[*len] = '\0';
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
genRootDescSamsung(int * len)
|
||||||
|
{
|
||||||
|
char * str;
|
||||||
|
int tmplen;
|
||||||
|
struct XMLElt samsungRootDesc[sizeof(rootDesc)/sizeof(struct XMLElt)];
|
||||||
|
tmplen = 2560;
|
||||||
|
str = (char *)malloc(tmplen);
|
||||||
|
if(str == NULL)
|
||||||
|
return NULL;
|
||||||
|
* len = strlen(xmlver);
|
||||||
|
memcpy(str, xmlver, *len + 1);
|
||||||
|
/* Replace the optional modelURL and manufacturerURL fields with Samsung foo */
|
||||||
|
memcpy(&samsungRootDesc, &rootDesc, sizeof(rootDesc));
|
||||||
|
samsungRootDesc[8+PNPX].eltname = "/sec:ProductCap";
|
||||||
|
samsungRootDesc[8+PNPX].data = "smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec";
|
||||||
|
samsungRootDesc[12+PNPX].eltname = "/sec:X_ProductCap";
|
||||||
|
samsungRootDesc[12+PNPX].data = "smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec";
|
||||||
|
str = genXML(str, len, &tmplen, samsungRootDesc);
|
||||||
|
str[*len] = '\0';
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
/* genServiceDesc() :
|
/* genServiceDesc() :
|
||||||
* Generate service description with allowed methods and
|
* Generate service description with allowed methods and
|
||||||
* related variables. */
|
* related variables. */
|
||||||
|
@ -74,6 +74,9 @@ struct stateVar {
|
|||||||
char *
|
char *
|
||||||
genRootDesc(int * len);
|
genRootDesc(int * len);
|
||||||
|
|
||||||
|
char *
|
||||||
|
genRootDescSamsung(int * len);
|
||||||
|
|
||||||
/* for the two following functions */
|
/* for the two following functions */
|
||||||
char *
|
char *
|
||||||
genContentDirectory(int * len);
|
genContentDirectory(int * len);
|
||||||
|
@ -304,10 +304,12 @@ intervening space) by either an integer or the keyword "infinite". */
|
|||||||
}
|
}
|
||||||
else if(strstrc(p, "SEC_HHP_", '\r'))
|
else if(strstrc(p, "SEC_HHP_", '\r'))
|
||||||
{
|
{
|
||||||
h->req_client = ESamsungTV;
|
h->req_client = ESamsungSeriesC;
|
||||||
h->reqflags |= FLAG_SAMSUNG;
|
h->reqflags |= FLAG_SAMSUNG;
|
||||||
h->reqflags |= FLAG_DLNA;
|
h->reqflags |= FLAG_DLNA;
|
||||||
h->reqflags |= FLAG_NO_RESIZE;
|
h->reqflags |= FLAG_NO_RESIZE;
|
||||||
|
if(strstrc(p, "SEC_HHP_TV", '\r'))
|
||||||
|
h->reqflags |= FLAG_SAMSUNG_TV;
|
||||||
}
|
}
|
||||||
else if(strncmp(p, "SamsungWiselinkPro", 18)==0)
|
else if(strncmp(p, "SamsungWiselinkPro", 18)==0)
|
||||||
{
|
{
|
||||||
@ -844,6 +846,10 @@ ProcessHttpQuery_upnphttp(struct upnphttp * h)
|
|||||||
sendXMLdesc(h, genRootDesc);
|
sendXMLdesc(h, genRootDesc);
|
||||||
friendly_name[i] = '\0';
|
friendly_name[i] = '\0';
|
||||||
}
|
}
|
||||||
|
else if( h->reqflags & FLAG_SAMSUNG_TV )
|
||||||
|
{
|
||||||
|
sendXMLdesc(h, genRootDescSamsung);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sendXMLdesc(h, genRootDesc);
|
sendXMLdesc(h, genRootDesc);
|
||||||
|
@ -113,7 +113,8 @@ struct upnphttp {
|
|||||||
#define FLAG_NO_RESIZE 0x02000000
|
#define FLAG_NO_RESIZE 0x02000000
|
||||||
#define FLAG_MS_PFS 0x04000000 // Microsoft PlaysForSure client
|
#define FLAG_MS_PFS 0x04000000 // Microsoft PlaysForSure client
|
||||||
#define FLAG_SAMSUNG 0x08000000
|
#define FLAG_SAMSUNG 0x08000000
|
||||||
#define FLAG_AUDIO_ONLY 0x10000000
|
#define FLAG_SAMSUNG_TV 0x10000000
|
||||||
|
#define FLAG_AUDIO_ONLY 0x20000000
|
||||||
|
|
||||||
#define FLAG_FREE_OBJECT_ID 0x00000001
|
#define FLAG_FREE_OBJECT_ID 0x00000001
|
||||||
#define FLAG_ROOT_CONTAINER 0x00000002
|
#define FLAG_ROOT_CONTAINER 0x00000002
|
||||||
|
Loading…
x
Reference in New Issue
Block a user