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/>.
25
#include <HUpnpAv/HVideoItem>
39
* \brief This class represents content that is a movie.
41
* The class identifier specified by the AV Working Committee is
42
* \c object.item.videoItem.movie .
44
* \headerfile hmove.h HMovie
46
* \ingroup hupnp_av_cds_objects
48
* \remarks This class is not thread-safe.
50
class H_UPNP_AV_EXPORT HMovie :
54
H_DISABLE_COPY(HMovie)
55
H_DECLARE_PRIVATE(HMovie)
60
* Constructs a new instance.
62
* \param clazz specifies the UPnP class of the object. This cannot be empty.
64
* \param cdsType specifies the CDS type of the object. This cannot be
65
* HObject::UndefinedCdsType.
69
HMovie(const QString& clazz = sClass(), CdsType cdsType = sType());
70
HMovie(HMoviePrivate&);
72
// Documented in HClonable
73
virtual HMovie* newInstance() const;
78
* \brief Creates a new instance.
80
* \param title specifies the title of the object.
82
* \param parentId specifies the ID of the object that contains this
83
* object. If the object has no parent, this has to be left empty.
85
* \param id specifies the ID of this object. If this is not specified,
86
* a unique identifier within the running process is created for the object.
92
const QString& parentId,
93
const QString& id = QString());
96
* \brief Destroys the instance.
101
* \brief Indicates the type of storage medium used for the content.
103
* upnp:storageMedium, ContentDirectory:3, Appendix B.6.5.
105
* \return The type of storage medium used for the content.
107
* \sa setStorageMedium()
109
HStorageMedium storageMedium() const;
112
* \brief Returns the DVD region code.
114
* upnp:DVDRegionCode, ContentDirectory:3, Appendix B.14.1.
116
* \return The DVD region code.
118
* \sa setDvdRegionCode()
120
qint32 dvdRegionCode() const;
123
* \brief Returns the user-friendly name of the associated broadcast channel.
125
* upnp:channelName, ContentDirectory:3, Appendix B.11.2.
127
* \return The user-friendly name of the associated broadcast channel.
129
* \sa setChannelName()
131
QString channelName() const;
134
* \brief Returns the start time of a scheduled program.
136
* \return The start time of a scheduled program.
138
* \sa setScheduledStartTime()
140
HScheduledTime scheduledStartTime() const;
143
* \brief Returns the end time of a scheduled program.
145
* \return The end time of a scheduled program.
147
* \sa setScheduledEndTime()
149
HScheduledTime scheduledEndTime() const;
152
* \brief Indicates the scheduled duration of the movie.
154
* upnp:scheduledDuration, ContentDirectory:3, Appendix B.11.5.
156
* \return The scheduled duration of the movie.
158
* \sa setScheduledDuration()
160
HContentDuration scheduledDuration() const;
163
* \brief Returns the name of the program.
165
* upnp:programTitle, ContentDirectory:3, Appendix B.8.2.
167
* \return The name of the program.
169
* \sa setProgramTitle()
171
QString programTitle() const;
174
* \brief Returns the name of the series.
176
* upnp:seriesTitle, ContentDirectory:3, Appendix B.8.2.
178
* \return The name of the series.
180
* \sa setSeriesTitle()
182
QString seriesTitle() const;
185
* \brief Returns the total number of episodes in the series to which this content
188
* upnp:episodeCount, ContentDiretory:3, Appendix B.8.6.
190
* \return The total number of episodes in the series to which this content
193
* \sa setEpisodeCount()
195
quint32 episodeCount() const;
198
* \brief Returns the episode number within the series to which this content
201
* upnp:episodeNumber, ContentDirectory:3, Appendix B.8.7.
203
* \return The episode number within the series to which this content
206
* \sa setEpisodeNumber()
208
quint32 episodeNumber() const;
211
* \brief Specifies the type of storage medium used for the content.
213
* \param arg specifies the type of storage medium used for the content.
215
* \sa storageMedium()
217
void setStorageMedium(const HStorageMedium& arg);
220
* \brief Specifies the DVD region code.
222
* \param arg specifies DVD region code.
224
* \sa dvdRegionCode()
226
void setDvdRegionCode(qint32 arg);
229
* \brief Specifies the the user-friendly name of the associated broadcast channel.
231
* \param arg specifies the user-friendly name of the associated broadcast channel.
235
void setChannelName(const QString& arg);
238
* \brief Specifies the the start time of a scheduled program.
240
* \param arg specifies the start time of a scheduled program.
242
* \sa scheduledStartTime()
244
void setScheduledStartTime(const HScheduledTime& arg);
247
* \brief Specifies the the end time of a scheduled program.
249
* \param arg specifies the end time of a scheduled program.
251
* \sa scheduledEndTime()
253
void setScheduledEndTime(const HScheduledTime& arg);
256
* \brief Specifies the scheduled duration of the movie.
258
* \param arg specifies the scheduled duration of the movie.
260
* \sa scheduledDuration()
262
void setScheduledDuration(const HContentDuration& arg);
265
* \brief Specifies the name of the program.
267
* \param arg specifies the name of the program.
271
void setProgramTitle(const QString& arg);
274
* \brief Specifies the the name of the series.
276
* \param arg specifies the name of the series.
280
void setSeriesTitle(const QString& arg);
283
* \brief Specifies the the total number of episodes in the series to which this content
286
* \param arg specifies the total number of episodes in the series to which this content
291
void setEpisodeCount(quint32 arg);
294
* \brief Specifies the the episode number within the series to which this content
297
* \param arg specifies the episode number within the series to which this content
300
* \sa episodeNumber()
302
void setEpisodeNumber(quint32 arg);
305
* \brief Returns the CdsType value of this class.
307
* \return The CdsType value of this class.
309
inline static CdsType sType() { return Movie; }
312
* \brief Returns the class identifier specified by the AV Working Committee.
314
* \return The class identifier specified by the AV Working Committee.
316
inline static QString sClass() { return "object.item.videoItem.movie"; }
319
* Creates a new instance with no title or parentID.
321
* \return a pointer to the newly created instance.
323
* \remarks the ownership of the object is transferred to the caller. Make sure
324
* to delete the object.
326
inline static HMovie* create() { return new HMovie(); }
333
#endif /* HMOVIE_H_ */