Kodi Development 22.0
for Binary and Script based Add-Ons
 
Loading...
Searching...
No Matches
pvr_timers.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#ifndef C_API_ADDONINSTANCE_PVR_TIMERS_H
10#define C_API_ADDONINSTANCE_PVR_TIMERS_H
11
12#include "pvr_defines.h"
13
14#include <stdbool.h>
15#include <stdint.h>
16#include <time.h>
17
18//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
19// "C" Definitions group 6 - PVR timers
20#ifdef __cplusplus
21extern "C"
22{
23#endif /* __cplusplus */
24
25 //============================================================================
33
34 //============================================================================
39#define PVR_TIMER_TYPE_NONE 0
40 //----------------------------------------------------------------------------
41
42 //============================================================================
47#define PVR_TIMER_NO_CLIENT_INDEX 0
48 //----------------------------------------------------------------------------
49
50 //============================================================================
55#define PVR_TIMER_NO_PARENT PVR_TIMER_NO_CLIENT_INDEX
56 //----------------------------------------------------------------------------
57
58 //============================================================================
63#define PVR_TIMER_NO_EPG_UID EPG_TAG_INVALID_UID
64 //----------------------------------------------------------------------------
65
66 //============================================================================
72#define PVR_TIMER_ANY_CHANNEL -1
73 //----------------------------------------------------------------------------
74
75 //============================================================================
79#define PVR_TIMER_VALUE_NOT_AVAILABLE -1
80 //----------------------------------------------------------------------------
81
83 //----------------------------------------------------------------------------
84
85 //============================================================================
101 typedef enum PVR_TIMER_TYPES
102 {
105
109
113
117
121
126
130
134
138
144
148
152
156
160
163
166
170
174
177
181
185
189
193
197
210
214
219
222
225
228
233 //----------------------------------------------------------------------------
234
235 //============================================================================
281 //----------------------------------------------------------------------------
282
283 //============================================================================
327 //----------------------------------------------------------------------------
328
337 typedef struct PVR_TIMER
338 {
339 unsigned int iClientIndex;
340 unsigned int iParentClientIndex;
341 int iClientChannelUid;
342 time_t startTime;
343 time_t endTime;
344 bool bStartAnyTime;
345 bool bEndAnyTime;
346 enum PVR_TIMER_STATE state;
347 unsigned int iTimerType;
348 const char* strTitle;
349 const char* strEpgSearchString;
350 bool bFullTextEpgSearch;
351 const char* strDirectory;
352 const char* strSummary;
353 int iPriority;
354 int iLifetime;
355 int iMaxRecordings;
356 unsigned int iRecordingGroup;
357 time_t firstDay;
358 unsigned int iWeekdays;
359 unsigned int iPreventDuplicateEpisodes;
360 unsigned int iEpgUid;
361 unsigned int iMarginStart;
362 unsigned int iMarginEnd;
363 int iGenreType;
364 int iGenreSubType;
365 const char* strSeriesLink;
366 unsigned int iCustomPropsSize;
367 struct PVR_SETTING_KEY_VALUE_PAIR* customProps;
368 } PVR_TIMER;
369
378 typedef struct PVR_TIMER_TYPE
379 {
380 unsigned int iId;
381 uint64_t iAttributes;
382 const char* strDescription;
383
384 unsigned int iPrioritiesSize;
385 struct PVR_ATTRIBUTE_INT_VALUE* priorities;
386 int iPrioritiesDefault;
387
388 unsigned int iLifetimesSize;
389 struct PVR_ATTRIBUTE_INT_VALUE* lifetimes;
390 int iLifetimesDefault;
391
392 unsigned int iPreventDuplicateEpisodesSize;
393 struct PVR_ATTRIBUTE_INT_VALUE* preventDuplicateEpisodes;
394 unsigned int iPreventDuplicateEpisodesDefault;
395
396 unsigned int iRecordingGroupSize;
397 struct PVR_ATTRIBUTE_INT_VALUE* recordingGroup;
398 unsigned int iRecordingGroupDefault;
399
400 unsigned int iMaxRecordingsSize;
401 struct PVR_ATTRIBUTE_INT_VALUE* maxRecordings;
402 int iMaxRecordingsDefault;
403
404 unsigned int iCustomSettingDefsSize;
405 struct PVR_SETTING_DEFINITION** customSettingDefs;
407
408#ifdef __cplusplus
409}
410#endif /* __cplusplus */
411
412#endif /* !C_API_ADDONINSTANCE_PVR_TIMERS_H */
PVR_TIMER_STATE
Definition pvr_timers.h:292
@ PVR_TIMER_STATE_NEW
0 : The timer was just created on the backend and is not yet active.
Definition pvr_timers.h:296
@ PVR_TIMER_STATE_CONFLICT_NOK
7 : The scheduled timer conflicts with another one and won't be recorded.
Definition pvr_timers.h:317
@ PVR_TIMER_STATE_CONFLICT_OK
6 : The scheduled timer conflicts with another one, but will be recorded.
Definition pvr_timers.h:314
@ PVR_TIMER_STATE_DISABLED
9 : The timer was disabled by the user, can be enabled via setting the state to PVR_TIMER_STATE_SCHED...
Definition pvr_timers.h:324
@ PVR_TIMER_STATE_RECORDING
2 : The timer is currently recording.
Definition pvr_timers.h:302
@ PVR_TIMER_STATE_ERROR
8 : The timer is scheduled, but can't be recorded for some reason.
Definition pvr_timers.h:320
@ PVR_TIMER_STATE_COMPLETED
3 : The recording completed successfully.
Definition pvr_timers.h:305
@ PVR_TIMER_STATE_SCHEDULED
1 : The timer is scheduled for recording.
Definition pvr_timers.h:299
@ PVR_TIMER_STATE_ABORTED
4 : Recording started, but was aborted.
Definition pvr_timers.h:308
@ PVR_TIMER_STATE_CANCELLED
5 : The timer was scheduled, but was canceled.
Definition pvr_timers.h:311
PVR_TIMER_TYPES
Definition pvr_timers.h:102
@ PVR_TIMER_TYPE_FORBIDS_EPG_TAG_ON_CREATE
0000 0000 0100 0000 0000 0000 0000 0000 : This type should not appear on any create menus which prov...
Definition pvr_timers.h:196
@ PVR_TIMER_TYPE_SUPPORTS_RECORDING_GROUP
0000 0000 0000 0001 0000 0000 0000 0000 : This type supports a list of recording groups (kodi::addon...
Definition pvr_timers.h:173
@ PVR_TIMER_TYPE_FORBIDS_NEW_INSTANCES
0000 0000 0000 0000 0000 0000 0000 1000 : Timers of this type must not be created by Kodi....
Definition pvr_timers.h:120
@ PVR_TIMER_TYPE_SUPPORTS_START_END_MARGIN
0000 0000 0000 0000 0001 0000 0000 0000 : This type supports pre and post record time (kodi::addon::...
Definition pvr_timers.h:159
@ PVR_TIMER_TYPE_SUPPORTS_END_ANYTIME
0000 0000 0000 1000 0000 0000 0000 0000 : Enables a separate 'Any Time' over-ride for end time (usin...
Definition pvr_timers.h:184
@ PVR_TIMER_TYPE_SUPPORTS_TITLE_EPG_MATCH
0000 0000 0000 0000 0000 0000 1000 0000 : This type supports matching epg episode title usingkodi::a...
Definition pvr_timers.h:137
@ PVR_TIMER_TYPE_SUPPORTS_START_TIME
0000 0000 0000 0000 0000 0000 0100 0000 : This type supports a recording start time (kodi::addon::PV...
Definition pvr_timers.h:133
@ PVR_TIMER_TYPE_SUPPORTS_RECORDING_FOLDERS
0000 0000 0000 0000 1000 0000 0000 0000 : This type supports placing recordings in user defined fold...
Definition pvr_timers.h:169
@ PVR_TIMER_TYPE_REQUIRES_EPG_TAG_ON_CREATE
0000 0000 0010 0000 0000 0000 0000 0000 : This type should not appear on any create menus which don'...
Definition pvr_timers.h:192
@ PVR_TIMER_TYPE_SUPPORTS_ENABLE_DISABLE
0000 0000 0000 0000 0000 0000 0001 0000 : This type supports enabling/disabling of the timer (kodi::...
Definition pvr_timers.h:125
@ PVR_TIMER_TYPE_REQUIRES_EPG_SERIES_ON_CREATE
0000 0000 1000 0000 0000 0000 0000 0000 : This type should not appear on any create menus unless ass...
Definition pvr_timers.h:209
@ PVR_TIMER_TYPE_SUPPORTS_WEEKDAYS
0000 0000 0000 0000 0000 0100 0000 0000 : This type supports weekdays for defining the recording sch...
Definition pvr_timers.h:151
@ PVR_TIMER_TYPE_SUPPORTS_RECORD_ONLY_NEW_EPISODES
0000 0000 0000 0000 0000 1000 0000 0000 : This type supports the "record only new episodes" feature ...
Definition pvr_timers.h:155
@ PVR_TIMER_TYPE_IS_REPEATING
0000 0000 0000 0000 0000 0000 0000 0010 : Defines whether this is a type for repeating or one-shot t...
Definition pvr_timers.h:112
@ PVR_TIMER_TYPE_SUPPORTS_MAX_RECORDINGS
0000 0000 0001 0000 0000 0000 0000 0000 : This type supports specifying a maximum recordings setting...
Definition pvr_timers.h:188
@ PVR_TIMER_TYPE_SUPPORTS_CHANNELS
0000 0000 0000 0000 0000 0000 0010 0000 : This type supports channels (kodi::addon::PVRTimer::SetCli...
Definition pvr_timers.h:129
@ PVR_TIMER_TYPE_SUPPORTS_FULLTEXT_EPG_MATCH
0000 0000 0000 0000 0000 0001 0000 0000 : This type supports matching "more" epg data (not just epis...
Definition pvr_timers.h:143
@ PVR_TIMER_TYPE_SUPPORTS_LIFETIME
0000 0000 0000 0000 0100 0000 0000 0000 : This type supports recording lifetime (kodi::addon::PVRTim...
Definition pvr_timers.h:165
@ PVR_TIMER_TYPE_SUPPORTS_END_TIME
0000 0000 0000 0010 0000 0000 0000 0000 : This type supports a recording end time (kodi::addon::PVRT...
Definition pvr_timers.h:176
@ PVR_TIMER_TYPE_SUPPORTS_PRIORITY
0000 0000 0000 0000 0010 0000 0000 0000 : This type supports recording priority (kodi::addon::PVRTim...
Definition pvr_timers.h:162
@ PVR_TIMER_TYPE_IS_MANUAL
0000 0000 0000 0000 0000 0000 0000 0001 : Defines whether this is a type for manual (time-based) or ...
Definition pvr_timers.h:108
@ PVR_TIMER_TYPE_SUPPORTS_READONLY_DELETE
0000 0100 0000 0000 0000 0000 0000 0000 : This type allows deletion of an otherwise read-only timer.
Definition pvr_timers.h:221
@ PVR_TIMER_TYPE_SUPPORTS_ANY_CHANNEL
0000 0001 0000 0000 0000 0000 0000 0000 : This type supports 'any channel', for example when definin...
Definition pvr_timers.h:213
@ PVR_TIMER_TYPE_IS_READONLY
0000 0000 0000 0000 0000 0000 0000 0100 : Timers of this type must not be edited by Kodi.
Definition pvr_timers.h:116
@ PVR_TIMER_TYPE_SUPPORTS_END_MARGIN
0010 0000 0000 0000 0000 0000 0000 0000 : This type supports post record time (kodi::addon::PVRTimer...
Definition pvr_timers.h:230
@ PVR_TIMER_TYPE_SUPPORTS_START_ANYTIME
0000 0000 0000 0100 0000 0000 0000 0000 : Enables an 'Any Time' over-ride option for start time (usi...
Definition pvr_timers.h:180
@ PVR_TIMER_TYPE_SUPPORTS_START_MARGIN
0001 0000 0000 0000 0000 0000 0000 0000 : This type supports pre record time (kodi::addon::PVRTimer:...
Definition pvr_timers.h:227
@ PVR_TIMER_TYPE_SUPPORTS_FIRST_DAY
0000 0000 0000 0000 0000 0010 0000 0000 : This type supports a first day the timer gets active (kodi...
Definition pvr_timers.h:147
@ PVR_TIMER_TYPE_IS_REMINDER
0000 1000 0000 0000 0000 0000 0000 0000 : Timers of this type do trigger a reminder if time is up.
Definition pvr_timers.h:224
@ PVR_TIMER_TYPE_REQUIRES_EPG_SERIESLINK_ON_CREATE
0000 0010 0000 0000 0000 0000 0000 0000 : This type should not appear on any create menus which don'...
Definition pvr_timers.h:218
@ PVR_TIMER_TYPE_ATTRIBUTE_NONE
0000 0000 0000 0000 0000 0000 0000 0000 : Empty attribute value.
Definition pvr_timers.h:104
PVR_WEEKDAY
Definition pvr_timers.h:250
@ PVR_WEEKDAY_SATURDAY
0010 0000 : To select Saturday.
Definition pvr_timers.h:270
@ PVR_WEEKDAY_FRIDAY
0001 0000 : To select Friday.
Definition pvr_timers.h:267
@ PVR_WEEKDAY_ALLDAYS
0111 1111 : To select all days of week.
Definition pvr_timers.h:276
@ PVR_WEEKDAY_WEDNESDAY
0000 0100 : To select Wednesday.
Definition pvr_timers.h:261
@ PVR_WEEKDAY_NONE
0000 0000 : Nothing selected.
Definition pvr_timers.h:252
@ PVR_WEEKDAY_MONDAY
0000 0001 : To select Monday.
Definition pvr_timers.h:255
@ PVR_WEEKDAY_TUESDAY
0000 0010 : To select Tuesday.
Definition pvr_timers.h:258
@ PVR_WEEKDAY_THURSDAY
0000 1000 : To select Thursday.
Definition pvr_timers.h:264
@ PVR_WEEKDAY_SUNDAY
0100 0000 : To select Sunday.
Definition pvr_timers.h:273
"C" Representation of an integer value, including a description.
Definition pvr_defines.h:26
"C" Representation of a setting definition.
Definition pvr_general.h:422
"C" Representation of a key-value pair, either {int,int} or {int,string}, depending on the type set.
Definition pvr_general.h:441
"C" PVR add-on timer type.
Definition pvr_timers.h:379
"C" PVR add-on timer event.
Definition pvr_timers.h:338