14 #include <sys/types.h> 20 #include <QStringList> 27 #include "mythconfig.h" 33 #include <sys/ioctl.h> 39 #define Z_NULL nullptr 47 QStringList sList = sDeviceType.split(
':', QString::SkipEmptyParts);
48 QString sLoc =
"LookupUDN(" + sDeviceType +
')';
50 if (sList.size() <= 2)
52 LOG(VB_GENERAL, LOG_ERR, sLoc +
"- bad device type '" +
53 sDeviceType +
"', not enough tokens");
58 QString sName =
"UPnP/UDN/" + sList.last();
61 LOG(VB_UPNP, LOG_INFO, sLoc +
" sName=" + sName +
", sUDN=" + sUDN);
64 if (sUDN.isEmpty() || sUDN.startsWith(
"{"))
66 sUDN = QUuid::createUuid().toString();
69 sUDN = sUDN.mid(1, 36);
86 return (t1.tv_sec < t2.tv_sec) ||
87 ((t1.tv_sec == t2.tv_sec) && (t1.tv_usec < t2.tv_usec));
96 return (t1.tv_sec == t2.tv_sec) && (t1.tv_usec == t2.tv_usec);
107 t.tv_sec += (uSecs / 1000000);
108 t.tv_usec = (uSecs % 1000000);
130 QString protocolStr(
"http-get:*:%1:%2");
131 QStringList protocolList;
132 QStringList::Iterator it;
133 for (it = mimeTypes.begin(); it < mimeTypes.end(); ++it)
137 if (*it ==
"video/mpeg")
139 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_PS_PAL;" + flags);
140 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_PS_NTSC;" + flags);
141 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_PS_SD_DTS;" + flags);
142 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=AVC_TS_NA_ISO;" + flags);
143 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_TS_HD_NA_ISO;" + flags);
144 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_TS_SD_NA_ISO;" + flags);
145 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=AVC_TS_EU_ISO;" + flags);
146 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MPEG_TS_SD_EU_ISO;" + flags);
148 else if (*it ==
"audio/mpeg")
150 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MP3;" + flags);
151 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=MP3X;" + flags);
153 else if (*it ==
"audio/mp4")
155 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=AAC_ISO_320;" + flags);
157 else if (*it ==
"audio/vnd.dolby.dd-raw")
159 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=AC3;" + flags);
161 else if (*it ==
"audio/x-ms-wma")
163 protocolList << protocolStr.arg(*it).arg(
"DLNA.ORG_PN=WMAFULL;" + flags);
166 protocolList << protocolStr.arg(*it).arg(
"*");
182 QStringList protocolList;
183 QStringList::Iterator it;
184 for (it = mimeTypes.begin(); it < mimeTypes.end(); ++it)
186 protocolList << QString(
"http-get:*:%1:*").arg(*it);
QString LookupUDN(const QString &sDeviceType)
virtual int GetValue(const QString &sSetting, int Default)=0
QString FlagsString(uint32_t flags)
Convert an integer composed of DNLA_Flags to a properly formatted string for use in XML.
bool operator==(TaskTime t1, TaskTime t2)
void AddMicroSecToTaskTime(TaskTime &t, suseconds_t uSecs)
static QStringList GetSupportedMimeTypes()
virtual bool Save(void)=0
static Configuration * GetConfiguration()
void AddSecondsToTaskTime(TaskTime &t, long nSecs)
#define LOG(_MASK_, _LEVEL_, _STRING_)
QStringList GetSourceProtocolInfos()
Return a QStringList containing the supported Source Protocols.
QStringList GetSinkProtocolInfos()
Return a QStringList containing the supported Sink Protocols.
bool operator<(TaskTime t1, TaskTime t2)
virtual void SetValue(const QString &sSetting, int value)=0