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