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