DVBCore  22.11.0
Open Source DVB Engine
hbbtv_api.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2017 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2011 Ocean Blue Software Ltd
4  *
5  * This file is part of a DTVKit Software Component
6  * You are permitted to copy, modify or distribute this file subject to the terms
7  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
8  *
9  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
10  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
11  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
12  *
13  * If you or your organisation is not a member of DTVKit then you have access
14  * to this source code outside of the terms of the licence agreement
15  * and you are expected to delete this and any associated files immediately.
16  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
17  *******************************************************************************/
24 // pre-processor mechanism so multiple inclusions don't cause compilation error
25 #ifndef _HBBTV_API_H
26 #define _HBBTV_API_H
27 
28 #include "techtype.h"
29 
30 //---Constant and macro definitions for public use-----------------------------
31 
32 //---Enumerations for public use-----------------------------------------------
33 
34 typedef enum
35 {
36  /* Following status values are consistent with error state table in OIPF spec Vol 5, section 7.13.1.2 */
37  HBBTV_CHANNEL_CHANGE_WRONG_TUNER,
38  HBBTV_CHANNEL_CHANGE_NO_SIGNAL,
39  HBBTV_CHANNEL_CHANGE_TUNER_IN_USE,
40  HBBTV_CHANNEL_CHANGE_PARENTAL_LOCKED,
41  HBBTV_CHANNEL_CHANGE_ENCRYPTED,
42  HBBTV_CHANNEL_CHANGE_UNKNOWN_CHANNEL,
43  HBBTV_CHANNEL_CHANGE_INTERRUPTED,
44  HBBTV_CHANNEL_CHANGE_RECORDING_IN_PROGRESS,
45  HBBTV_CHANNEL_CHANGE_CANNOT_RESOLVE_URI,
46  HBBTV_CHANNEL_CHANGE_INSUFFICIENT_BANDWIDTH,
47  HBBTV_CHANNEL_CHANGE_CANNOT_BE_CHANGED,
48  HBBTV_CHANNEL_CHANGE_INSUFFICIENT_RESOURCES,
49  HBBTV_CHANNEL_CHANGE_CHANNEL_NOT_IN_TS,
50  HBBTV_CHANNEL_CHANGE_UNKNOWN_ERROR = 100,
51  HBBTV_CHANNEL_CHANGE_BAD_SIGNAL,
52  /* Remaining status values relate to play state table in OIPF spec Vol 5, section 7.13.1.2 (values offset by 128) */
53  HBBTV_CHANNEL_CHANGE_RECOVERING = 128,
54  HBBTV_CHANNEL_CHANGE_STARTING = 129,
55  HBBTV_CHANNEL_CHANGE_SUCCEEDED = 130,
56  HBBTV_CHANNEL_CHANGE_STOPPED = 131,
57 } E_HBBTV_CHANNEL_CHANGE_STATUS;
58 
59 typedef enum
60 {
61  HBBTV_RECORDING_NEWLY_SCHEDULED,
62  HBBTV_RECORDING_ABOUT_TO_START,
63  HBBTV_RECORDING_ACQUIRING_RESOURCES,
64  HBBTV_RECORDING_STARTED,
65  HBBTV_RECORDING_UPDATED,
66  HBBTV_RECORDING_COMPLETED,
67  HBBTV_RECORDING_PART_COMPLETED,
68  HBBTV_RECORDING_FAILED_RESOURCE_LIMITATION,
69  HBBTV_RECORDING_FAILED_INSUFFICIENT_STORAGE,
70  HBBTV_RECORDING_FAILED_TUNER_CONFLICT,
71  HBBTV_RECORDING_FAILED_NOT_ALLOWED,
72  HBBTV_RECORDING_FAILED_UNKNOWN_ERROR,
73  HBBTV_RECORDING_DELETED,
74  HBBTV_RECORDING_TS_STARTING, /* Timeshift related events */
75  HBBTV_RECORDING_TS_STARTED,
76  HBBTV_RECORDING_TS_STOPPED,
77  HBBTV_RECORDING_TS_NOT_POSSIBLE,
78  HBBTV_RECORDING_TS_NOT_ALLOWED,
79  HBBTV_RECORDING_TS_FAILED
80 } E_HBBTV_RECORDING_EVENT;
81 
82 typedef enum
83 {
84  HBBTV_COMPONENT_TYPE_VIDEO = 0x1,
85  HBBTV_COMPONENT_TYPE_AUDIO = 0x2,
86  HBBTV_COMPONENT_TYPE_SUBTITLE = 0x4,
87  HBBTV_COMPONENT_TYPE_OTHER = 0x8
88 } E_HBBTV_COMPONENT_TYPE;
89 
90 //---Global type defs for public use-------------------------------------------
91 
92 //---Global Function prototypes for public use---------------------------------
93 
107 void HBBTV_ProcessAitSection(U16BIT ait_pid, U16BIT service_id, U8BIT *data, U32BIT nbytes);
108 
114 
120 void HBBTV_NotifyParentalRatingChange(BOOLEAN blocked);
121 
130 void HBBTV_NotifyChannelChangeStatus(U16BIT onet_id, U16BIT trans_id, U16BIT serv_id,
131  E_HBBTV_CHANNEL_CHANGE_STATUS status);
132 
141 void HBBTV_NotifyStreamsChange(U16BIT onet_id, U16BIT trans_id, U16BIT serv_id,
142  E_HBBTV_COMPONENT_TYPE component_type);
143 
149 
155 void HBBTV_NotifyRecordingEvent(U32BIT id, E_HBBTV_RECORDING_EVENT event);
156 
161 void HBBTV_NotifyPlaySpeedChanged(S16BIT speed);
162 
163 #endif
void HBBTV_NotifyChannelChangeStatus(U16BIT onet_id, U16BIT trans_id, U16BIT serv_id, E_HBBTV_CHANNEL_CHANGE_STATUS status)
Notifies the HbbTV engine of a change in the status of the service identified by the specified DVB tr...
void HBBTV_NotifyProgrammeChanged(void)
Notifies the HbbTV engine that the present/following events have changed on the current service...
void HBBTV_NotifyParentalRatingChange(BOOLEAN blocked)
Notifies the HbbTV engine that the parental rating of the currently playing service has changed...
void HBBTV_NotifyServiceListChange(void)
Notifies the HbbTV ending that it must update Service list. This will cause the engine to subsequentl...
System Wide Global Technical Data Type Definitions.
void HBBTV_NotifyPlaySpeedChanged(S16BIT speed)
Notify the video broadcast object that the timeshift play speed has changed.
void HBBTV_NotifyRecordingEvent(U32BIT id, E_HBBTV_RECORDING_EVENT event)
Notifies the HbbTV engine of a recording event.
void HBBTV_NotifyStreamsChange(U16BIT onet_id, U16BIT trans_id, U16BIT serv_id, E_HBBTV_COMPONENT_TYPE component_type)
Notifies the HbbTV engine of a possible change in streams for the service identified by specified DVB...
void HBBTV_ProcessAitSection(U16BIT ait_pid, U16BIT service_id, U8BIT *data, U32BIT nbytes)
Requests the HbbTV engine to process the specified AIT. The HbbTV engine expects the relevant AITs on...