Kodi Development 22.0
for Binary and Script based Add-Ons
 
Loading...
Searching...
No Matches
Recordings.h
1/*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "../../AddonBase.h"
12#include "../../c-api/addon-instance/pvr.h"
13
14//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
15// "C++" Definitions group 5 - PVR recordings
16#ifdef __cplusplus
17
18namespace kodi
19{
20namespace addon
21{
22
23//==============================================================================
38class PVRRecording : public CStructHdl<PVRRecording, PVR_RECORDING>
39{
40 friend class CInstancePVRClient;
41
42public:
45 {
46 m_cStructure->iSeriesNumber = PVR_RECORDING_INVALID_SERIES_EPISODE;
47 m_cStructure->iEpisodeNumber = PVR_RECORDING_INVALID_SERIES_EPISODE;
48 m_cStructure->recordingTime = 0;
49 m_cStructure->iDuration = PVR_RECORDING_VALUE_NOT_AVAILABLE;
50 m_cStructure->iPriority = PVR_RECORDING_VALUE_NOT_AVAILABLE;
51 m_cStructure->iLifetime = PVR_RECORDING_VALUE_NOT_AVAILABLE;
52 m_cStructure->iGenreType = PVR_RECORDING_VALUE_NOT_AVAILABLE;
53 m_cStructure->iGenreSubType = PVR_RECORDING_VALUE_NOT_AVAILABLE;
54 m_cStructure->iPlayCount = PVR_RECORDING_VALUE_NOT_AVAILABLE;
55 m_cStructure->iLastPlayedPosition = PVR_RECORDING_VALUE_NOT_AVAILABLE;
56 m_cStructure->bIsDeleted = false;
57 m_cStructure->iEpgEventId = 0;
58 m_cStructure->iChannelUid = PVR_RECORDING_VALUE_NOT_AVAILABLE;
59 m_cStructure->channelType = PVR_RECORDING_CHANNEL_TYPE_UNKNOWN;
60 m_cStructure->iFlags = 0;
61 m_cStructure->sizeInBytes = PVR_RECORDING_VALUE_NOT_AVAILABLE;
62 }
103
106
109 void SetRecordingId(const std::string& recordingId)
110 {
111 strncpy(m_cStructure->strRecordingId, recordingId.c_str(),
112 sizeof(m_cStructure->strRecordingId) - 1);
113 }
114
116 std::string GetRecordingId() const { return m_cStructure->strRecordingId; }
117
120 void SetTitle(const std::string& title)
121 {
122 strncpy(m_cStructure->strTitle, title.c_str(), sizeof(m_cStructure->strTitle) - 1);
123 }
124
126 std::string GetTitle() const { return m_cStructure->strTitle; }
127
130 void SetEpisodeName(const std::string& episodeName)
131 {
132 strncpy(m_cStructure->strEpisodeName, episodeName.c_str(),
133 sizeof(m_cStructure->strEpisodeName) - 1);
134 }
135
137 std::string GetEpisodeName() const { return m_cStructure->strEpisodeName; }
138
143 void SetSeriesNumber(int seriesNumber) { m_cStructure->iSeriesNumber = seriesNumber; }
144
146 int GetSeriesNumber() const { return m_cStructure->iSeriesNumber; }
147
152 void SetEpisodeNumber(int episodeNumber) { m_cStructure->iEpisodeNumber = episodeNumber; }
153
155 int GetEpisodeNumber() const { return m_cStructure->iEpisodeNumber; }
156
162 void SetYear(int year) { m_cStructure->iYear = year; }
163
165 int GetYear() const { return m_cStructure->iYear; }
166
170 void SetDirectory(const std::string& directory)
171 {
172 strncpy(m_cStructure->strDirectory, directory.c_str(), sizeof(m_cStructure->strDirectory) - 1);
173 }
174
176 std::string GetDirectory() const { return m_cStructure->strDirectory; }
177
180 void SetPlotOutline(const std::string& plotOutline)
181 {
182 strncpy(m_cStructure->strPlotOutline, plotOutline.c_str(),
183 sizeof(m_cStructure->strPlotOutline) - 1);
184 }
185
187 std::string GetPlotOutline() const { return m_cStructure->strPlotOutline; }
188
191 void SetPlot(const std::string& plot)
192 {
193 strncpy(m_cStructure->strPlot, plot.c_str(), sizeof(m_cStructure->strPlot) - 1);
194 }
195
197 std::string GetPlot() const { return m_cStructure->strPlot; }
198
201 void SetChannelName(const std::string& channelName)
202 {
203 strncpy(m_cStructure->strChannelName, channelName.c_str(),
204 sizeof(m_cStructure->strChannelName) - 1);
205 }
206
208 std::string GetChannelName() const { return m_cStructure->strChannelName; }
209
212 void SetIconPath(const std::string& iconPath)
213 {
214 strncpy(m_cStructure->strIconPath, iconPath.c_str(), sizeof(m_cStructure->strIconPath) - 1);
215 }
216
218 std::string GetIconPath() const { return m_cStructure->strIconPath; }
219
222 void SetThumbnailPath(const std::string& thumbnailPath)
223 {
224 strncpy(m_cStructure->strThumbnailPath, thumbnailPath.c_str(),
225 sizeof(m_cStructure->strThumbnailPath) - 1);
226 }
227
229 std::string GetThumbnailPath() const { return m_cStructure->strThumbnailPath; }
230
233 void SetFanartPath(const std::string& fanartPath)
234 {
235 strncpy(m_cStructure->strFanartPath, fanartPath.c_str(),
236 sizeof(m_cStructure->strFanartPath) - 1);
237 }
238
240 std::string GetFanartPath() const { return m_cStructure->strFanartPath; }
241
244 void SetRecordingTime(time_t recordingTime) { m_cStructure->recordingTime = recordingTime; }
245
247 time_t GetRecordingTime() const { return m_cStructure->recordingTime; }
248
251 void SetDuration(int duration) { m_cStructure->iDuration = duration; }
252
254 int GetDuration() const { return m_cStructure->iDuration; }
255
258 void SetPriority(int priority) { m_cStructure->iPriority = priority; }
259
261 int GetPriority() const { return m_cStructure->iPriority; }
262
265 void SetLifetime(int lifetime) { m_cStructure->iLifetime = lifetime; }
266
268 int GetLifetime() const { return m_cStructure->iLifetime; }
269
297 void SetGenreType(int genreType) { m_cStructure->iGenreType = genreType; }
298
300 int GetGenreType() const { return m_cStructure->iGenreType; }
301
332 void SetGenreSubType(int genreSubType) { m_cStructure->iGenreSubType = genreSubType; }
333
335 int GetGenreSubType() const { return m_cStructure->iGenreSubType; }
336
357 void SetGenreDescription(const std::string& genreDescription)
358 {
359 strncpy(m_cStructure->strGenreDescription, genreDescription.c_str(),
360 sizeof(m_cStructure->strGenreDescription) - 1);
361 }
362
364 std::string GetGenreDescription() const { return m_cStructure->strGenreDescription; }
365
368 void SetPlayCount(int playCount) { m_cStructure->iPlayCount = playCount; }
369
371 int GetPlayCount() const { return m_cStructure->iPlayCount; }
372
376 {
377 m_cStructure->iLastPlayedPosition = lastPlayedPosition;
378 }
379
381 int GetLastPlayedPosition() const { return m_cStructure->iLastPlayedPosition; }
382
385 void SetIsDeleted(int isDeleted) { m_cStructure->bIsDeleted = isDeleted; }
386
388 int GetIsDeleted() const { return m_cStructure->bIsDeleted; }
389
392 void SetEPGEventId(unsigned int epgEventId) { m_cStructure->iEpgEventId = epgEventId; }
393
395 unsigned int GetEPGEventId() const { return m_cStructure->iEpgEventId; }
396
400 void SetChannelUid(int channelUid) { m_cStructure->iChannelUid = channelUid; }
401
403 int GetChannelUid() const { return m_cStructure->iChannelUid; }
404
420 {
421 m_cStructure->channelType = channelType;
422 }
423
425 PVR_RECORDING_CHANNEL_TYPE GetChannelType() const { return m_cStructure->channelType; }
426
440 void SetFirstAired(const std::string& firstAired)
441 {
442 strncpy(m_cStructure->strFirstAired, firstAired.c_str(),
443 sizeof(m_cStructure->strFirstAired) - 1);
444 }
445
447 std::string GetFirstAired() const { return m_cStructure->strFirstAired; }
448
459 void SetFlags(unsigned int flags) { m_cStructure->iFlags = flags; }
460
462 unsigned int GetFlags() const { return m_cStructure->iFlags; }
463
466 void SetSizeInBytes(int64_t sizeInBytes) { m_cStructure->sizeInBytes = sizeInBytes; }
467
469 int64_t GetSizeInBytes() const { return m_cStructure->sizeInBytes; }
471
476 void SetClientProviderUid(int iClientProviderUid)
477 {
478 m_cStructure->iClientProviderUid = iClientProviderUid;
479 }
480
482 int GetClientProviderUid() const { return m_cStructure->iClientProviderUid; }
483
486 void SetProviderName(const std::string& providerName)
487 {
488 strncpy(m_cStructure->strProviderName, providerName.c_str(),
489 sizeof(m_cStructure->strProviderName) - 1);
490 }
491
493 std::string GetProviderName() const { return m_cStructure->strProviderName; }
494
495private:
497 PVRRecording(PVR_RECORDING* recording) : CStructHdl(recording) {}
498};
500//------------------------------------------------------------------------------
501
502//==============================================================================
512{
513public:
515 PVRRecordingsResultSet() = delete;
516 PVRRecordingsResultSet(const AddonInstance_PVR* instance, PVR_HANDLE handle)
517 : m_instance(instance), m_handle(handle)
518 {
519 }
524
529 {
530 m_instance->toKodi->TransferRecordingEntry(m_instance->toKodi->kodiInstance, m_handle, tag);
531 }
532
534
535private:
536 const AddonInstance_PVR* m_instance = nullptr;
537 const PVR_HANDLE m_handle;
538};
540//------------------------------------------------------------------------------
541
542} /* namespace addon */
543} /* namespace kodi */
544
545#endif /* __cplusplus */
Definition AddonBase.h:120
Definition Recordings.h:39
std::string GetProviderName() const
To get with SetProviderName changed values.
Definition Recordings.h:493
void SetProviderName(const std::string &providerName)
optional Name for the provider of this channel.
Definition Recordings.h:486
void SetClientProviderUid(int iClientProviderUid)
optional Unique identifier of the provider this channel belongs to.
Definition Recordings.h:476
int GetClientProviderUid() const
To get with SetClientProviderUid changed values.
Definition Recordings.h:482
Definition Recordings.h:512
Definition PeripheralUtils.h:48
PVR_RECORDING_CHANNEL_TYPE
Definition pvr_recordings.h:89
@ PVR_RECORDING_CHANNEL_TYPE_UNKNOWN
0 : Unknown type.
Definition pvr_recordings.h:91
int64_t GetSizeInBytes() const
To get with SetSizeInBytes changed values.
Definition Recordings.h:469
void SetChannelUid(int channelUid)
optional Unique identifier of the channel for this recording. PVR_CHANNEL_INVALID_UID denotes that ch...
Definition Recordings.h:400
void SetGenreSubType(int genreSubType)
optional Genre sub type.
Definition Recordings.h:332
PVR_RECORDING_CHANNEL_TYPE GetChannelType() const
To get with SetChannelType changed values.
Definition Recordings.h:425
void SetChannelName(const std::string &channelName)
optional Channel name.
Definition Recordings.h:201
void SetEpisodeNumber(int episodeNumber)
optional Eepisode number within the "iSeriesNumber" season.
Definition Recordings.h:152
void SetPriority(int priority)
optional Priority of this recording (from 0 - 100).
Definition Recordings.h:258
void SetDuration(int duration)
optional Duration of the recording in seconds.
Definition Recordings.h:251
int GetYear() const
To get with SetYear changed values.
Definition Recordings.h:165
std::string GetRecordingId() const
To get with SetRecordingId changed values.
Definition Recordings.h:116
void SetFirstAired(const std::string &firstAired)
optional First aired date of this recording.
Definition Recordings.h:440
#define PVR_RECORDING_VALUE_NOT_AVAILABLE
Value where set in background to inform that related part not used.
Definition pvr_recordings.h:77
std::string GetPlotOutline() const
To get with SetPlotOutline changed values.
Definition Recordings.h:187
void SetSeriesNumber(int seriesNumber)
optional Series number (usually called season).
Definition Recordings.h:143
void SetTitle(const std::string &title)
required The title of this recording.
Definition Recordings.h:120
std::string GetChannelName() const
To get with SetChannelName changed values.
Definition Recordings.h:208
std::string GetFirstAired() const
To get with SetFirstAired changed values.
Definition Recordings.h:447
int GetIsDeleted() const
To get with SetIsDeleted changed values.
Definition Recordings.h:388
void SetFlags(unsigned int flags)
optional Bit field of independent flags associated with the recording.
Definition Recordings.h:459
void SetEPGEventId(unsigned int epgEventId)
optional EPG event id associated with this recording. Valid ids must be greater than EPG_TAG_INVALID_...
Definition Recordings.h:392
void SetEpisodeName(const std::string &episodeName)
optional Episode name (also known as subtitle).
Definition Recordings.h:130
void SetLastPlayedPosition(int lastPlayedPosition)
optional Last played position of this recording on the client.
Definition Recordings.h:375
time_t GetRecordingTime() const
To get with SetRecordingTime changed values.
Definition Recordings.h:247
void SetIconPath(const std::string &iconPath)
optional Channel logo (icon) path.
Definition Recordings.h:212
std::string GetDirectory() const
To get with SetDirectory changed values.
Definition Recordings.h:176
void SetPlotOutline(const std::string &plotOutline)
optional Plot outline name.
Definition Recordings.h:180
int GetPriority() const
To get with SetPriority changed values.
Definition Recordings.h:261
std::string GetTitle() const
To get with SetTitle changed values.
Definition Recordings.h:126
void SetDirectory(const std::string &directory)
optional
Definition Recordings.h:170
std::string GetEpisodeName() const
To get with SetEpisodeName changed values.
Definition Recordings.h:137
std::string GetGenreDescription() const
To get with SetGenreDescription changed values.
Definition Recordings.h:364
int GetDuration() const
To get with SetDuration changed values.
Definition Recordings.h:254
void SetThumbnailPath(const std::string &thumbnailPath)
optional Thumbnail path.
Definition Recordings.h:222
std::string GetFanartPath() const
To get with SetFanartPath changed values.
Definition Recordings.h:240
int GetLastPlayedPosition() const
To get with SetLastPlayedPosition changed values.
Definition Recordings.h:381
int GetSeriesNumber() const
To get with SetSeriesNumber changed values.
Definition Recordings.h:146
void SetLifetime(int lifetime)
optional Life time in days of this recording.
Definition Recordings.h:265
std::string GetPlot() const
To get with SetPlot changed values.
Definition Recordings.h:197
int GetLifetime() const
To get with SetLifetime changed values.
Definition Recordings.h:268
void SetPlayCount(int playCount)
optional Play count of this recording on the client.
Definition Recordings.h:368
unsigned int GetEPGEventId() const
To get with SetEPGEventId changed values.
Definition Recordings.h:395
void SetFanartPath(const std::string &fanartPath)
optional Fanart path.
Definition Recordings.h:233
int GetEpisodeNumber() const
To get with SetEpisodeNumber changed values.
Definition Recordings.h:155
void SetSizeInBytes(int64_t sizeInBytes)
optional Size of the recording in bytes.
Definition Recordings.h:466
void SetGenreType(int genreType)
optional Genre type.
Definition Recordings.h:297
#define PVR_RECORDING_INVALID_SERIES_EPISODE
Special kodi::addon::PVRRecording::SetSeriesNumber() and kodi::addon::PVRRecording::SetEpisodeNumber(...
Definition pvr_recordings.h:69
std::string GetIconPath() const
To get with SetIconPath changed values.
Definition Recordings.h:218
std::string GetThumbnailPath() const
To get with SetThumbnailPath changed values.
Definition Recordings.h:229
void SetYear(int year)
optional Year of first release (use to identify a specific movie re-make) / first airing for TV shows...
Definition Recordings.h:162
unsigned int GetFlags() const
To get with SetFlags changed values.
Definition Recordings.h:462
void SetRecordingId(const std::string &recordingId)
required Unique identifier of the recording on the client.
Definition Recordings.h:109
void SetRecordingTime(time_t recordingTime)
optional Start time of the recording.
Definition Recordings.h:244
int GetGenreType() const
To get with SetGenreType changed values.
Definition Recordings.h:300
void SetIsDeleted(int isDeleted)
optional Shows this recording is deleted and can be undelete.
Definition Recordings.h:385
int GetGenreSubType() const
To get with SetGenreSubType changed values.
Definition Recordings.h:335
int GetPlayCount() const
To get with SetPlayCount changed values.
Definition Recordings.h:371
void SetPlot(const std::string &plot)
optional Plot name.
Definition Recordings.h:191
void SetGenreDescription(const std::string &genreDescription)
optional To set own genre description name.
Definition Recordings.h:357
void SetChannelType(PVR_RECORDING_CHANNEL_TYPE channelType)
optional Channel type.
Definition Recordings.h:419
int GetChannelUid() const
To get with SetChannelUid changed values.
Definition Recordings.h:403
void Add(const kodi::addon::PVRRecording &tag)
To add and give content from addon to Kodi on related call.
Definition Recordings.h:528
Definition pvr.h:333
"C" PVR add-on recording.
Definition pvr_recordings.h:110