2
* Copyright (C) 2011 Tuomo Penttinen, all rights reserved.
4
* Author: Tuomo Penttinen <tp@herqq.org>
6
* This file is part of Herqq UPnP Av (HUPnPAv) library.
8
* Herqq UPnP Av is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
13
* Herqq UPnP Av is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
18
* You should have received a copy of the GNU General Public License
19
* along with Herqq UPnP Av. If not, see <http://www.gnu.org/licenses/>.
22
#ifndef HCDS_PROPERTIES_H_
23
#define HCDS_PROPERTIES_H_
25
#include <HUpnpAv/HUpnpAv>
38
class HCdsPropertiesPrivate;
41
* \brief This class is used to contain information of CDS object properties.
43
* \headerfile hcdsproperties.h HCdsProperties
45
* \ingroup hupnp_av_cds_om_mgmt
47
* \remarks This class \b is thread-safe.
49
class H_UPNP_AV_EXPORT HCdsProperties
51
H_DISABLE_COPY(HCdsProperties)
55
HCdsPropertiesPrivate* h_ptr;
57
static HCdsProperties* s_instance;
58
static QMutex* s_instanceLock;
66
* \brief Returns the single instance of the class.
68
* \return The single instance of the class.
70
static const HCdsProperties& instance();
73
* \brief This enumeration defines all the supported CDS properties.
78
* This value is used in error scenarios and when the property is not
89
* DIDL-Lite, \@parentID.
94
* DIDL-Lite, \@restricted.
104
* DIDL-Lite, \@refID.
109
* DIDL-Lite, \@childCount.
114
* DIDL-Lite, \@searchable.
119
* DIDL-Lite, \@neverPlayable.
179
* upnp:objectUpdateID.
189
* upnp:longDescription.
191
upnp_longDescription,
214
* upnp:originalTrackNumber.
216
upnp_originalTrackNumber,
239
* upnp:playbackCount.
244
* upnp:lastPlaybackTime.
246
upnp_lastPlaybackTime,
249
* upnp:lastPlaybackPosition.
251
upnp_lastPlaybackPosition,
254
* upnp:recordedStartDateTime.
256
upnp_recordedStartDateTime,
259
* upnp:recordedDuration.
261
upnp_recordedDuration,
264
* upnp:recordedDayOfWeek.
266
upnp_recordedDayOfWeek,
269
* upnp:srsRecordScheduleID.
271
upnp_srsRecordScheduleID,
274
* upnp:srsRecordTaskID.
276
upnp_srsRecordTaskID,
284
* upnp:storageMedium.
304
* upnp:storageMaxPartition.
306
upnp_storageMaxPartition,
309
* upnp:containerUpdateID.
311
upnp_containerUpdateID,
314
* upnp:totalDeletedChildCount.
316
upnp_totalDeletedChildCount,
334
* upnp:radioCallSign.
339
* upnp:radioStationID.
354
* upnp:signalStrength.
374
* upnp:dvdRegionCode.
384
* upnp:scheduledStartTime.
386
upnp_scheduledStartTime,
389
* upnp:scheduledEndTime.
391
upnp_scheduledEndTime,
394
* upnp:scheduledDuration.
396
upnp_scheduledDuration,
414
* upnp:episodeNumber.
439
* upnp:bookmarkedObjectID.
441
upnp_bookmarkedObjectID,
449
* upnp:stateVariableCollection.
451
upnp_stateVariableCollection,
454
* upnp:channelGroupName.
456
upnp_channelGroupName,
459
* upnp:epgProviderName.
461
upnp_epgProviderName,
464
* upnp:dateTimeRange.
469
* upnp:serviceProvider.
471
upnp_serviceProvider,
499
* upnp:networkAffiliation.
501
upnp_networkAffiliation,
504
* upnp:foreignMetadata.
506
upnp_foreignMetadata,
509
* upnp:artistDiscographyURI.
511
upnp_artistDiscographyURI,
529
* upnp:userAnnotation.
541
* \brief Returns information of the specified property.
543
* \param property specifies the CDS property.
545
* \return information of the specified property.
547
const HCdsPropertyInfo& get(Property property) const;
550
* \brief Returns information of the specified property.
552
* \param property specifies the CDS property.
554
* \return information of the specified property.
556
const HCdsPropertyInfo& get(const QString& property) const;
563
#endif /* HCDS_PROPERTIES_H_ */