13#ifndef UPNPCDSOBJECTS_H
14#define UPNPCDSOBJECTS_H
63 QString sNameSpace =
"",
64 bool bRequired =
false,
65 const QString &sValue =
"",
66 bool bMultiValue =
false
72 m_sValue(QUrl::toPercentEncoding(sValue))
88 return QUrl::toPercentEncoding(
m_sValue);
92 const QString &sValue )
95 QString::fromUtf8(QUrl::toPercentEncoding(sValue))));
120 Resource(QString sProtocolInfo,
const QString &sURI) :
122 m_sURI(QUrl::toPercentEncoding(sURI))
127 const QString &sValue )
130 QString::fromUtf8(QUrl::toPercentEncoding(sValue))));
152 bool bIncludeDerived )
193 short m_nUpdateId {1};
203 bool m_bRestricted {
true};
204 bool m_bSearchable {
false};
209 QString m_sWriteStatus {
"PROTECTED"};
220 uint32_t m_nChildCount {0};
221 uint32_t m_nChildContainerCount {0};
228 explicit CDSObject(
const QString &sId =
"-1",
229 const QString &sTitle =
"",
230 const QString &sParentId =
"-1" );
234 QList<Property*> GetProperties(
const QString &sName );
237 CDSObject *GetChild (
const QString &sID );
242 void SetPropValue(
const QString &sName,
const QString &sValue,
243 const QString &
type =
"" );
244 QString GetPropValue(
const QString &sName )
const;
246 bool ignoreChildren =
false )
const;
247 void toXml ( QTextStream &os,
FilterMap &filter,
248 bool ignoreChildren =
false )
const;
250 uint32_t GetChildCount(
void )
const;
251 void SetChildCount( uint32_t nCount );
253 uint32_t GetChildContainerCount(
void )
const;
254 void SetChildContainerCount( uint32_t nCount );
256 Resource *AddResource(
const QString& sProtocol,
const QString& sURI );
260 static CDSObject *CreateItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
261 static CDSObject *CreateContainer (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
262 static CDSObject *CreateAudioItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
263 static CDSObject *CreateMusicTrack (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
264 static CDSObject *CreateAudioBroadcast (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
265 static CDSObject *CreateAudioBook (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
266 static CDSObject *CreateVideoItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
267 static CDSObject *CreateMovie (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
268 static CDSObject *CreateVideoBroadcast (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
269 static CDSObject *CreateMusicVideoClip (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
270 static CDSObject *CreateImageItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
271 static CDSObject *CreatePhoto (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
272 static CDSObject *CreatePlaylistItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
273 static CDSObject *CreateTextItem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
274 static CDSObject *CreateAlbum (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
275 static CDSObject *CreateMusicAlbum (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
276 static CDSObject *CreatePhotoAlbum (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
277 static CDSObject *CreateGenre (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
278 static CDSObject *CreateMusicGenre (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
279 static CDSObject *CreateMovieGenre (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
280 static CDSObject *CreatePlaylistContainer(
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
281 static CDSObject *CreatePerson (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
282 static CDSObject *CreateMusicArtist (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
283 static CDSObject *CreateStorageSystem (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
284 static CDSObject *CreateStorageVolume (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
285 static CDSObject *CreateStorageFolder (
const QString& sId,
const QString& sTitle,
const QString& sParentId,
CDSObject *pObject =
nullptr );
288 static bool FilterContains(
const FilterMap &filter,
const QString &name ) ;
QMap< uint, int > FilterMap
ContainerClass * AddCreateClass(ContainerClass *pClass)
ContainerClass * AddSearchClass(ContainerClass *pClass)
CDSObjects GetChildren(void) const
ContainerClass(QString sClass, QString sName, bool bIncludeDerived)
Property(QString sName, QString sNameSpace="", bool bRequired=false, const QString &sValue="", bool bMultiValue=false)
QString GetEncodedValue(void) const
NameValues m_lstAttributes
void AddAttribute(const QString &sName, const QString &sValue)
QString GetValue(void) const
void SetValue(const QString &value)
General purpose reference counter.
NameValues m_lstAttributes
Resource(QString sProtocolInfo, const QString &sURI)
void AddAttribute(const QString &sName, const QString &sValue)
QList< Resource * > Resources
QMultiMap< QString, Property * > Properties
QList< ContainerClass * > Classes
QList< CDSObject * > CDSObjects