14 #include <sys/types.h>
20 #include <QStringList>
34 #include <sys/ioctl.h>
40 #define Z_NULL nullptr
48 #if QT_VERSION < QT_VERSION_CHECK(5,14,0)
49 QStringList sList = sDeviceType.split(
':', QString::SkipEmptyParts);
51 QStringList sList = sDeviceType.split(
':', Qt::SkipEmptyParts);
53 QString sLoc =
"LookupUDN(" + sDeviceType +
')';
55 if (sList.size() <= 2)
57 LOG(VB_GENERAL, LOG_ERR, sLoc +
"- bad device type '" +
58 sDeviceType +
"', not enough tokens");
64 QString sName =
"UPnP/UDN/" + sList.last();
65 QString sUDN = config.GetValue(sName,
"");
67 LOG(VB_UPNP, LOG_INFO, sLoc +
" sName=" + sName +
", sUDN=" + sUDN);
70 if (sUDN.isEmpty() || sUDN.startsWith(
"{"))
72 sUDN = QUuid::createUuid().toString();
75 sUDN = sUDN.mid(1, 36);
77 config.SetValue(sName, sUDN);
94 QString protocolStr(
"http-get:*:%1:%2");
95 QStringList protocolList;
96 QStringList::Iterator it;
97 for (it = mimeTypes.begin(); it < mimeTypes.end(); ++it)
101 if (*it ==
"video/mpeg")
103 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_PS_PAL;" + flags);
104 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_PS_NTSC;" + flags);
105 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_PS_SD_DTS;" + flags);
106 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=AVC_TS_NA_ISO;" + flags);
107 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_TS_HD_NA_ISO;" + flags);
108 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_TS_SD_NA_ISO;" + flags);
109 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=AVC_TS_EU_ISO;" + flags);
110 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MPEG_TS_SD_EU_ISO;" + flags);
112 else if (*it ==
"audio/mpeg")
114 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MP3;" + flags);
115 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=MP3X;" + flags);
117 else if (*it ==
"audio/mp4")
119 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=AAC_ISO_320;" + flags);
121 else if (*it ==
"audio/vnd.dolby.dd-raw")
123 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=AC3;" + flags);
125 else if (*it ==
"audio/x-ms-wma")
127 protocolList << protocolStr.arg(*it,
"DLNA.ORG_PN=WMAFULL;" + flags);
130 protocolList << protocolStr.arg(*it,
"*");
146 QStringList protocolList;
147 QStringList::Iterator it;
148 for (it = mimeTypes.begin(); it < mimeTypes.end(); ++it)
150 protocolList << QString(
"http-get:*:%1:*").arg(*it);