summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2020-07-02 23:09:26 +0200
committermanuel <manuel@mausz.at>2020-07-02 23:09:26 +0200
commit5f8335c1e49ce108ef3481863833c98efa00411b (patch)
treef02b5c1c9765bb6a14c8eb42bb4f81b9face0b55 /xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h
parente317daf081a1048904fdf0b548946fa3ba6593a7 (diff)
downloadkodi-pvr-build-5f8335c1e49ce108ef3481863833c98efa00411b.tar.gz
kodi-pvr-build-5f8335c1e49ce108ef3481863833c98efa00411b.tar.bz2
kodi-pvr-build-5f8335c1e49ce108ef3481863833c98efa00411b.zip
sync with upstreamHEADmaster
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h')
-rw-r--r--xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h653
1 files changed, 653 insertions, 0 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h
new file mode 100644
index 0000000..57c603f
--- /dev/null
+++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/c-api/addon-instance/pvr/pvr_epg.h
@@ -0,0 +1,653 @@
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 "pvr_defines.h"
12
13#include <time.h>
14
15//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
16// "C" Definitions group 4 - PVR EPG
17#ifdef __cplusplus
18extern "C"
19{
20#endif /* __cplusplus */
21
22 //============================================================================
23 /// @defgroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT enum EPG_EVENT_CONTENTMASK (and sub types)
24 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
25 /// @brief **EPG entry content event types.**\n
26 /// These ID's come from the DVB-SI EIT table "content descriptor"
27 /// Also known under the name "E-book genre assignments".
28 ///
29 /// See [ETSI EN 300 468 V1.14.1 (2014-05)](https://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.14.01_60/en_300468v011401p.pdf)
30 /// about.
31 ///
32 /// Values used by this functions:
33 /// - @ref kodi::addon::PVREPGTag::SetGenreType()
34 /// - @ref kodi::addon::PVREPGTag::SetGenreSubType()
35 /// - @ref kodi::addon::PVRRecording::SetGenreType()
36 /// - @ref kodi::addon::PVRRecording::SetGenreSubType()
37 ///
38 /// Following types are listed here:
39 /// | emum Type | Description
40 /// |-----------|--------------------
41 /// | @ref EPG_EVENT_CONTENTMASK | EPG entry main content to use.
42 /// | @ref EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_MOVIEDRAMA event types for sub type of <b>"Movie/Drama"</b>.
43 /// | @ref EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_NEWSCURRENTAFFAIRS event types for sub type of <b>"News/Current affairs"</b>.
44 /// | @ref EPG_EVENT_CONTENTSUBMASK_SHOW | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SHOW event types for sub type of <b>"Show/Game show"</b>.
45 /// | @ref EPG_EVENT_CONTENTSUBMASK_SPORTS | @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SPORTS event types for sub type of <b>"Sports"</b>.
46 /// | @ref EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_CHILDRENYOUTH event types for sub type of <b>"Children's/Youth programmes"</b>.
47 /// | @ref EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_MUSICBALLETDANCE event types for sub type of <b>"Music/Ballet/Dance"</b>.
48 /// | @ref EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_ARTSCULTURE event types for sub type of <b>"Arts/Culture (without music)"</b>.
49 /// | @ref EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SOCIALPOLITICALECONOMICS event types for sub type of <b>"Social/Political issues/Economics"</b>.
50 /// | @ref EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_EDUCATIONALSCIENCE event types for sub type of <b>"Education/Science/Factual topics"</b>.
51 /// | @ref EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_LEISUREHOBBIES event types for sub type of <b>"Leisure hobbies"</b>.
52 /// | @ref EPG_EVENT_CONTENTSUBMASK_SPECIAL | EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SPECIAL event types for sub type of <b>"Special characteristics"</b>.
53 ///@{
54
55 //============================================================================
56 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
57 /// @brief EPG entry main content to use.
58 ///
59 ///@{
60 typedef enum EPG_EVENT_CONTENTMASK
61 {
62 /// @brief __0x00__ : Undefined content mask entry.
63 EPG_EVENT_CONTENTMASK_UNDEFINED = 0x00,
64
65 /// @brief __0x10__ : Movie/Drama.\n
66 /// \n
67 /// See @ref EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA about related sub types.
68 EPG_EVENT_CONTENTMASK_MOVIEDRAMA = 0x10,
69
70 /// @brief __0x20__ : News/Current affairs.\n
71 /// \n
72 /// See @ref EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS about related sub types.
73 EPG_EVENT_CONTENTMASK_NEWSCURRENTAFFAIRS = 0x20,
74
75 /// @brief __0x30__ : Show/Game show.\n
76 /// \n
77 /// See @ref EPG_EVENT_CONTENTSUBMASK_SHOW about related sub types.
78 EPG_EVENT_CONTENTMASK_SHOW = 0x30,
79
80 /// @brief __0x40__ : Sports.\n
81 /// \n
82 /// See @ref EPG_EVENT_CONTENTSUBMASK_SPORTS about related sub types.
83 EPG_EVENT_CONTENTMASK_SPORTS = 0x40,
84
85 /// @brief __0x50__ : Children's/Youth programmes.\n
86 /// \n
87 /// See @ref EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH about related sub types.
88 EPG_EVENT_CONTENTMASK_CHILDRENYOUTH = 0x50,
89
90 /// @brief __0x60__ : Music/Ballet/Dance.\n
91 /// \n
92 /// See @ref EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE about related sub types.
93 EPG_EVENT_CONTENTMASK_MUSICBALLETDANCE = 0x60,
94
95 /// @brief __0x70__ : Arts/Culture (without music).\n
96 /// \n
97 /// See @ref EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE about related sub types.
98 EPG_EVENT_CONTENTMASK_ARTSCULTURE = 0x70,
99
100 /// @brief __0x80__ : Social/Political issues/Economics.\n
101 /// \n
102 /// See @ref EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS about related sub types.
103 EPG_EVENT_CONTENTMASK_SOCIALPOLITICALECONOMICS = 0x80,
104
105 /// @brief __0x90__ : Education/Science/Factual topics.\n
106 /// \n
107 /// See @ref EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE about related sub types.
108 EPG_EVENT_CONTENTMASK_EDUCATIONALSCIENCE = 0x90,
109
110 /// @brief __0xA0__ : Leisure hobbies.\n
111 /// \n
112 /// See @ref EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES about related sub types.
113 EPG_EVENT_CONTENTMASK_LEISUREHOBBIES = 0xA0,
114
115 /// @brief __0xB0__ : Special characteristics.\n
116 /// \n
117 /// See @ref EPG_EVENT_CONTENTSUBMASK_SPECIAL about related sub types.
118 EPG_EVENT_CONTENTMASK_SPECIAL = 0xB0,
119
120 /// @brief __0xF0__ User defined.
121 EPG_EVENT_CONTENTMASK_USERDEFINED = 0xF0,
122
123 /// @brief Used to override standard genre types with a own name about.\n
124 /// \n
125 /// Set to this value @ref EPG_GENRE_USE_STRING on following places:
126 /// - @ref kodi::addon::PVREPGTag::SetGenreType()
127 /// - @ref kodi::addon::PVREPGTag::SetGenreSubType()
128 /// - @ref kodi::addon::PVRRecording::SetGenreType()
129 /// - @ref kodi::addon::PVRRecording::SetGenreSubType()
130 ///
131 /// @warning Value here is not a [ETSI EN 300 468 V1.14.1 (2014-05)](https://www.etsi.org/deliver/etsi_en/300400_300499/300468/01.14.01_60/en_300468v011401p.pdf)
132 /// conform.
133 ///
134 /// @note This is a own Kodi definition to set that genre is given by own
135 /// string. Used on @ref kodi::addon::PVREPGTag::SetGenreDescription() and
136 /// @ref kodi::addon::PVRRecording::SetGenreDescription()
137 EPG_GENRE_USE_STRING = 0x100
138 } EPG_EVENT_CONTENTMASK;
139 ///@}
140 //----------------------------------------------------------------------------
141
142 //============================================================================
143 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
144 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_MOVIEDRAMA event
145 /// types for sub type of <b>"Movie/Drama"</b>.
146 ///
147 ///@{
148 typedef enum EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA
149 {
150 /// @brief __0x0__ : Movie/drama (general).
151 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_GENERAL = 0x0,
152
153 /// @brief __0x1__ : Detective/thriller.
154 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_DETECTIVE_THRILLER = 0x1,
155
156 /// @brief __0x2__ : Adventure/western/war.
157 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_ADVENTURE_WESTERN_WAR = 0x2,
158
159 /// @brief __0x3__ : Science fiction/fantasy/horror.
160 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_SCIENCEFICTION_FANTASY_HORROR = 0x3,
161
162 /// @brief __0x4__ : Comedy.
163 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_COMEDY = 0x4,
164
165 /// @brief __0x5__ : Soap/melodrama/folkloric.
166 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_SOAP_MELODRAMA_FOLKLORIC = 0x5,
167
168 /// @brief __0x6__ : Romance.
169 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_ROMANCE = 0x6,
170
171 /// @brief __0x7__ : Serious/classical/religious/historical movie/drama.
172 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_SERIOUS_CLASSICAL_RELIGIOUS_HISTORICAL = 0x7,
173
174 /// @brief __0x8__ : Adult movie/drama.
175 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_ADULT = 0x8,
176
177 /// @brief __0xF__ : User defined.
178 EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA_USERDEFINED = 0xF
179 } EPG_EVENT_CONTENTSUBMASK_MOVIEDRAMA;
180 ///@}
181 //----------------------------------------------------------------------------
182
183 //============================================================================
184 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
185 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_NEWSCURRENTAFFAIRS event
186 /// types for sub type of <b>"News/Current affairs"</b>.
187 ///
188 typedef enum EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS
189 {
190 /// @brief __0x0__ : News/current affairs (general).
191 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_GENERAL = 0x0,
192
193 /// @brief __0x1__ : News/weather report.
194 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_WEATHER = 0x1,
195
196 /// @brief __0x2__ : News magazine.
197 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_MAGAZINE = 0x2,
198
199 /// @brief __0x3__ : Documentary.
200 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_DOCUMENTARY = 0x3,
201
202 /// @brief __0x4__ : Discussion/interview/debate
203 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_DISCUSSION_INTERVIEW_DEBATE = 0x4,
204
205 /// @brief __0xF__ : User defined.
206 EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS_USERDEFINED = 0xF
207 } EPG_EVENT_CONTENTSUBMASK_NEWSCURRENTAFFAIRS;
208 //----------------------------------------------------------------------------
209
210 //============================================================================
211 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
212 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SHOW event
213 /// types for sub type of <b>"Show/Game show"</b>.
214 ///
215 typedef enum EPG_EVENT_CONTENTSUBMASK_SHOW
216 {
217 /// @brief __0x0__ : Show/game show (general).
218 EPG_EVENT_CONTENTSUBMASK_SHOW_GENERAL = 0x0,
219
220 /// @brief __0x1__ : Game show/quiz/contest.
221 EPG_EVENT_CONTENTSUBMASK_SHOW_GAMESHOW_QUIZ_CONTEST = 0x1,
222
223 /// @brief __0x2__ : Variety show.
224 EPG_EVENT_CONTENTSUBMASK_SHOW_VARIETY_SHOW = 0x2,
225
226 /// @brief __0x3__ : Talk show.
227 EPG_EVENT_CONTENTSUBMASK_SHOW_TALK_SHOW = 0x3,
228
229 /// @brief __0xF__ : User defined.
230 EPG_EVENT_CONTENTSUBMASK_SHOW_USERDEFINED = 0xF
231 } EPG_EVENT_CONTENTSUBMASK_SHOW;
232 //----------------------------------------------------------------------------
233
234 //============================================================================
235 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
236 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SPORTS event
237 /// types for sub type of <b>"Sports"</b>.
238 ///
239 typedef enum EPG_EVENT_CONTENTSUBMASK_SPORTS
240 {
241 /// @brief __0x0__ : Sports (general).
242 EPG_EVENT_CONTENTSUBMASK_SPORTS_GENERAL = 0x0,
243
244 /// @brief __0x1__ : Special events (Olympic Games, World Cup, etc.).
245 EPG_EVENT_CONTENTSUBMASK_SPORTS_OLYMPICGAMES_WORLDCUP = 0x1,
246
247 /// @brief __0x2__ : Sports magazines.
248 EPG_EVENT_CONTENTSUBMASK_SPORTS_SPORTS_MAGAZINES = 0x2,
249
250 /// @brief __0x3__ : Football/soccer.
251 EPG_EVENT_CONTENTSUBMASK_SPORTS_FOOTBALL_SOCCER = 0x3,
252
253 /// @brief __0x4__ : Tennis/squash.
254 EPG_EVENT_CONTENTSUBMASK_SPORTS_TENNIS_SQUASH = 0x4,
255
256 /// @brief __0x5__ : Team sports (excluding football).
257 EPG_EVENT_CONTENTSUBMASK_SPORTS_TEAMSPORTS = 0x5,
258
259 /// @brief __0x6__ : Athletics.
260 EPG_EVENT_CONTENTSUBMASK_SPORTS_ATHLETICS = 0x6,
261
262 /// @brief __0x7__ : Motor sport.
263 EPG_EVENT_CONTENTSUBMASK_SPORTS_MOTORSPORT = 0x7,
264
265 /// @brief __0x8__ : Water sport.
266 EPG_EVENT_CONTENTSUBMASK_SPORTS_WATERSPORT = 0x8,
267
268 /// @brief __0x9__ : Winter sports.
269 EPG_EVENT_CONTENTSUBMASK_SPORTS_WINTERSPORTS = 0x9,
270
271 /// @brief __0xA__ : Equestrian.
272 EPG_EVENT_CONTENTSUBMASK_SPORTS_EQUESTRIAN = 0xA,
273
274 /// @brief __0xB__ : Martial sports.
275 EPG_EVENT_CONTENTSUBMASK_SPORTS_MARTIALSPORTS = 0xB,
276
277 /// @brief __0xF__ : User defined.
278 EPG_EVENT_CONTENTSUBMASK_SPORTS_USERDEFINED = 0xF
279 } EPG_EVENT_CONTENTSUBMASK_SPORTS;
280 //----------------------------------------------------------------------------
281
282 //============================================================================
283 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
284 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_CHILDRENYOUTH event
285 /// types for sub type of <b>"Children's/Youth programmes"</b>.
286 ///
287 typedef enum EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH
288 {
289 /// @brief __0x0__ : Children's/youth programmes (general).
290 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_GENERAL = 0x0,
291
292 /// @brief __0x1__ : Pre-school children's programmes.
293 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_PRESCHOOL_CHILDREN = 0x1,
294
295 /// @brief __0x2__ : Entertainment programmes for 6 to 14.
296 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_ENTERTAIN_6TO14 = 0x2,
297
298 /// @brief __0x3__ : Entertainment programmes for 10 to 16.
299 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_ENTERTAIN_10TO16 = 0x3,
300
301 /// @brief __0x4__ : Informational/educational/school programmes.
302 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_INFORMATIONAL_EDUCATIONAL_SCHOOL = 0x4,
303
304 /// @brief __0x5__ : Cartoons/puppets.
305 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_CARTOONS_PUPPETS = 0x5,
306
307 /// @brief __0xF__ : User defined.
308 EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH_USERDEFINED = 0xF
309 } EPG_EVENT_CONTENTSUBMASK_CHILDRENYOUTH;
310 //----------------------------------------------------------------------------
311
312 //============================================================================
313 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
314 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_MUSICBALLETDANCE event
315 /// types for sub type of <b>"Music/Ballet/Dance"</b>.
316 ///
317 typedef enum EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE
318 {
319 /// @brief __0x0__ : Music/ballet/dance (general).
320 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_GENERAL = 0x0,
321
322 /// @brief __0x1__ : Rock/pop.
323 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_ROCKPOP = 0x1,
324
325 /// @brief __0x2__ : Serious music/classical music.
326 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_SERIOUSMUSIC_CLASSICALMUSIC = 0x2,
327
328 /// @brief __0x3__ : Folk/traditional music.
329 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_FOLK_TRADITIONAL_MUSIC = 0x3,
330
331 /// @brief __0x4__ : Jazz.
332 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_JAZZ = 0x4,
333
334 /// @brief __0x5__ : Musical/opera.
335 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_MUSICAL_OPERA = 0x5,
336
337 /// @brief __0x6__ : Ballet.
338 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_BALLET = 0x6,
339
340 /// @brief __0xF__ : User defined.
341 EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE_USERDEFINED = 0xF
342 } EPG_EVENT_CONTENTSUBMASK_MUSICBALLETDANCE;
343 //----------------------------------------------------------------------------
344
345 //============================================================================
346 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
347 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_ARTSCULTURE event
348 /// types for sub type of <b>"Arts/Culture (without music)"</b>.
349 ///
350 typedef enum EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE
351 {
352 /// @brief __0x0__ : Arts/culture (without music, general).
353 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_GENERAL = 0x0,
354
355 /// @brief __0x1__ : Performing arts.
356 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_PERFORMINGARTS = 0x1,
357
358 /// @brief __0x2__ : Fine arts.
359 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_FINEARTS = 0x2,
360
361 /// @brief __0x3__ : Religion.
362 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_RELIGION = 0x3,
363
364 /// @brief __0x4__ : Popular culture/traditional arts.
365 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_POPULARCULTURE_TRADITIONALARTS = 0x4,
366
367 /// @brief __0x5__ : Literature.
368 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_LITERATURE = 0x5,
369
370 /// @brief __0x6__ : Film/cinema.
371 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_FILM_CINEMA = 0x6,
372
373 /// @brief __0x7__ : Experimental film/video.
374 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_EXPERIMENTALFILM_VIDEO = 0x7,
375
376 /// @brief __0x8__ : Broadcasting/press.
377 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_BROADCASTING_PRESS = 0x8,
378
379 /// @brief __0x9__ : New media.
380 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_NEWMEDIA = 0x9,
381
382 /// @brief __0xA__ : Arts/culture magazines.
383 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_ARTS_CULTUREMAGAZINES = 0xA,
384
385 /// @brief __0xB__ : Fashion.
386 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_FASHION = 0xB,
387
388 /// @brief __0xF__ : User defined.
389 EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE_USERDEFINED = 0xF
390 } EPG_EVENT_CONTENTSUBMASK_ARTSCULTURE;
391 //----------------------------------------------------------------------------
392
393 //============================================================================
394 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
395 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SOCIALPOLITICALECONOMICS event
396 /// types for sub type of <b>"Social/Political issues/Economics"</b>.
397 ///
398 typedef enum EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS
399 {
400 /// @brief __0x0__ : Social/political issues/economics (general).
401 EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS_GENERAL = 0x0,
402
403 /// @brief __0x1__ : Magazines/reports/documentary.
404 EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS_MAGAZINES_REPORTS_DOCUMENTARY = 0x1,
405
406 /// @brief __0x2__ : Economics/social advisory.
407 EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS_ECONOMICS_SOCIALADVISORY = 0x2,
408
409 /// @brief __0x3__ : Remarkable people.
410 EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS_REMARKABLEPEOPLE = 0x3,
411
412 /// @brief __0xF__ : User defined.
413 EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS_USERDEFINED = 0xF
414 } EPG_EVENT_CONTENTSUBMASK_SOCIALPOLITICALECONOMICS;
415 //----------------------------------------------------------------------------
416
417 //============================================================================
418 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
419 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_EDUCATIONALSCIENCE event
420 /// types for sub type of <b>"Education/Science/Factual topics"</b>.
421 ///
422 typedef enum EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE
423 {
424 /// @brief __0x0__ : Education/science/factual topics (general).
425 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_GENERAL = 0x0,
426
427 /// @brief __0x1__ : Nature/animals/environment.
428 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_NATURE_ANIMALS_ENVIRONMENT = 0x1,
429
430 /// @brief __0x2__ : Technology/natural sciences.
431 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_TECHNOLOGY_NATURALSCIENCES = 0x2,
432
433 /// @brief __0x3__ : Medicine/physiology/psychology.
434 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_MEDICINE_PHYSIOLOGY_PSYCHOLOGY = 0x3,
435
436 /// @brief __0x4__ : Foreign countries/expeditions.
437 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_FOREIGNCOUNTRIES_EXPEDITIONS = 0x4,
438
439 /// @brief __0x5__ : Social/spiritual sciences.
440 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_SOCIAL_SPIRITUALSCIENCES = 0x5,
441
442 /// @brief __0x6__ : Further education.
443 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_FURTHEREDUCATION = 0x6,
444
445 /// @brief __0x7__ : Languages.
446 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_LANGUAGES = 0x7,
447
448 /// @brief __0xF__ : User defined.
449 EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE_USERDEFINED = 0xF
450 } EPG_EVENT_CONTENTSUBMASK_EDUCATIONALSCIENCE;
451 //----------------------------------------------------------------------------
452
453 //============================================================================
454 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
455 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_LEISUREHOBBIES event
456 /// types for sub type of <b>"Leisure hobbies"</b>.
457 ///
458 typedef enum EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES
459 {
460 /// @brief __0x0__ : Leisure hobbies (general) .
461 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_GENERAL = 0x0,
462
463 /// @brief __0x1__ : Tourism/travel.
464 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_TOURISM_TRAVEL = 0x1,
465
466 /// @brief __0x2__ : Handicraft.
467 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_HANDICRAFT = 0x2,
468
469 /// @brief __0x3__ : Motoring.
470 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_MOTORING = 0x3,
471
472 /// @brief __0x4__ : Fitness and health.
473 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_FITNESSANDHEALTH = 0x4,
474
475 /// @brief __0x5__ : Cooking.
476 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_COOKING = 0x5,
477
478 /// @brief __0x6__ : Advertisement/shopping.
479 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_ADVERTISEMENT_SHOPPING = 0x6,
480
481 /// @brief __0x7__ : Gardening.
482 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_GARDENING = 0x7,
483
484 /// @brief __0xF__ : User defined.
485 EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES_USERDEFINED = 0xF
486 } EPG_EVENT_CONTENTSUBMASK_LEISUREHOBBIES;
487 //----------------------------------------------------------------------------
488
489 //============================================================================
490 /// @ingroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT
491 /// @brief EPG entry sub content to @ref EPG_EVENT_CONTENTMASK_SPECIAL event
492 /// types for sub type of <b>"Special characteristics"</b>.
493 ///
494 typedef enum EPG_EVENT_CONTENTSUBMASK_SPECIAL
495 {
496 /// @brief __0x0__ : Special characteristics / Original language (general).
497 EPG_EVENT_CONTENTSUBMASK_SPECIAL_GENERAL = 0x0,
498
499 /// @brief __0x1__ : Black and white.
500 EPG_EVENT_CONTENTSUBMASK_SPECIAL_BLACKANDWHITE = 0x1,
501
502 /// @brief __0x2__ : Unpublished.
503 EPG_EVENT_CONTENTSUBMASK_SPECIAL_UNPUBLISHED = 0x2,
504
505 /// @brief __0x3__ : Live broadcast.
506 EPG_EVENT_CONTENTSUBMASK_SPECIAL_LIVEBROADCAST = 0x3,
507
508 /// @brief __0x4__ : Plano-stereoscopic.
509 EPG_EVENT_CONTENTSUBMASK_SPECIAL_PLANOSTEREOSCOPIC = 0x4,
510
511 /// @brief __0x5__ : Local or regional.
512 EPG_EVENT_CONTENTSUBMASK_SPECIAL_LOCALORREGIONAL = 0x5,
513
514 /// @brief __0xF__ : User defined.
515 EPG_EVENT_CONTENTSUBMASK_SPECIAL_USERDEFINED = 0xF
516 } EPG_EVENT_CONTENTSUBMASK_SPECIAL;
517 //----------------------------------------------------------------------------
518
519 ///@}
520
521 //============================================================================
522 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
523 /// @brief Separator to use in strings containing different tokens, for example
524 /// writers, directors, actors of an event.
525 ///
526 #define EPG_STRING_TOKEN_SEPARATOR ","
527 //----------------------------------------------------------------------------
528
529 //============================================================================
530 /// @defgroup cpp_kodi_addon_pvr_Defs_epg_EPG_TAG_FLAG enum EPG_TAG_FLAG
531 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
532 /// @brief <b>Bit field of independent flags associated with the EPG entry.</b>\n
533 /// Values used by @ref kodi::addon::PVREPGTag::SetFlags().
534 ///
535 /// Here's example about the use of this:
536 /// ~~~~~~~~~~~~~{.cpp}
537 /// kodi::addon::PVREPGTag tag;
538 /// tag.SetFlags(EPG_TAG_FLAG_IS_SERIES | EPG_TAG_FLAG_IS_NEW);
539 /// ~~~~~~~~~~~~~
540 ///
541 ///@{
542 typedef enum EPG_TAG_FLAG
543 {
544 /// @brief __0000 0000__ : Nothing special to say about this entry.
545 EPG_TAG_FLAG_UNDEFINED = 0,
546
547 /// @brief __0000 0001__ : This EPG entry is part of a series.
548 EPG_TAG_FLAG_IS_SERIES = (1 << 0),
549
550 /// @brief __0000 0010__ : This EPG entry will be flagged as new.
551 EPG_TAG_FLAG_IS_NEW = (1 << 1),
552
553 /// @brief __0000 0100__ : This EPG entry will be flagged as a premiere.
554 EPG_TAG_FLAG_IS_PREMIERE = (1 << 2),
555
556 /// @brief __0000 1000__ : This EPG entry will be flagged as a finale.
557 EPG_TAG_FLAG_IS_FINALE = (1 << 3),
558
559 /// @brief __0001 0000__ : This EPG entry will be flagged as live.
560 EPG_TAG_FLAG_IS_LIVE = (1 << 4),
561 } EPG_TAG_FLAG;
562 ///@}
563 //----------------------------------------------------------------------------
564
565 //============================================================================
566 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
567 /// @brief Special PVREPGTag::SetUniqueBroadcastId value
568 ///
569 /// Special @ref kodi::addon::PVREPGTag::SetUniqueBroadcastId() value to
570 /// indicate that a tag has not a valid EPG event uid.
571 ///
572 #define EPG_TAG_INVALID_UID 0
573 //----------------------------------------------------------------------------
574
575 //============================================================================
576 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
577 /// @brief Special @ref kodi::addon::PVREPGTag::SetSeriesNumber(), @ref kodi::addon::PVREPGTag::SetEpisodeNumber()
578 /// and @ref kodi::addon::PVREPGTag::SetEpisodePartNumber() value to indicate
579 /// it is not to be used.
580 ///
581 #define EPG_TAG_INVALID_SERIES_EPISODE -1
582 //----------------------------------------------------------------------------
583
584 //============================================================================
585 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
586 /// @brief Timeframe value for use with @ref kodi::addon::CInstancePVRClient::SetEPGTimeFrame()
587 /// function to indicate "no timeframe".
588 ///
589 #define EPG_TIMEFRAME_UNLIMITED -1
590 //----------------------------------------------------------------------------
591
592 //============================================================================
593 /// @defgroup cpp_kodi_addon_pvr_Defs_epg_EPG_EVENT_STATE enum EPG_EVENT_STATE
594 /// @ingroup cpp_kodi_addon_pvr_Defs_epg
595 /// @brief **EPG event states.**\n
596 /// Used with @ref kodi::addon::CInstancePVRClient::EpgEventStateChange()
597 /// callback.
598 ///
599 ///@{
600 typedef enum EPG_EVENT_STATE
601 {
602 /// @brief __0__ : Event created.
603 EPG_EVENT_CREATED = 0,
604
605 /// @brief __1__ : Event updated.
606 EPG_EVENT_UPDATED = 1,
607
608 /// @brief __2__ : Event deleted.
609 EPG_EVENT_DELETED = 2,
610 } EPG_EVENT_STATE;
611 ///@}
612 //----------------------------------------------------------------------------
613
614 /*!
615 * @brief "C" PVR add-on channel group member.
616 *
617 * Structure used to interface in "C" between Kodi and Addon.
618 *
619 * See @ref kodi::addon::PVREPGTag for description of values.
620 */
621 typedef struct EPG_TAG
622 {
623 unsigned int iUniqueBroadcastId;
624 unsigned int iUniqueChannelId;
625 const char* strTitle;
626 time_t startTime;
627 time_t endTime;
628 const char* strPlotOutline;
629 const char* strPlot;
630 const char* strOriginalTitle;
631 const char* strCast;
632 const char* strDirector;
633 const char* strWriter;
634 int iYear;
635 const char* strIMDBNumber;
636 const char* strIconPath;
637 int iGenreType;
638 int iGenreSubType;
639 const char* strGenreDescription;
640 const char* strFirstAired;
641 int iParentalRating;
642 int iStarRating;
643 int iSeriesNumber;
644 int iEpisodeNumber;
645 int iEpisodePartNumber;
646 const char* strEpisodeName;
647 unsigned int iFlags;
648 const char* strSeriesLink;
649 } EPG_TAG;
650
651#ifdef __cplusplus
652}
653#endif /* __cplusplus */