DVBCore  20.3.0
DVBCore Documentation
ap_ci_int.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2016 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  *
4  * This file is part of a DTVKit Software Component
5  * You are permitted to copy, modify or distribute this file subject to the terms
6  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
7  *
8  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
9  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
10  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
11  *
12  * If you or your organisation is not a member of DTVKit then you have access
13  * to this source code outside of the terms of the licence agreement
14  * and you are expected to delete this and any associated files immediately.
15  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
16  *******************************************************************************/
24 #ifndef AP_CI_INT_H
25 #define AP_CI_INT_H
26 
27 /*---includes for this file--------------------------------------------------*/
28 
29 /* compiler library header files */
30 
31 /* third party header files */
32 
33 /* DVBCore header files */
34 #include "techtype.h"
35 #include "stbsitab.h"
36 #include "ap_ci.h"
37 
38 /*---Constant and macro definitions for public use-----------------------------*/
39 
40 /*---Enumerations for public use-----------------------------------------------*/
41 
42 typedef enum e_cip_tuner_status
43 {
44  CIP_TUNER_LOCKED, /* STB_CI_TUNE_OK */
45  CIP_TUNER_UNSUPPORTED_SYSTEM,
46  CIP_TUNER_NOTLOCKED,
47  CIP_TUNER_BUSY,
48  CIP_TUNER_BAD_PARAMETER,
49  CIP_TUNER_SERVICE_NOT_FOUND,
50  CIP_TUNER_UNDEFINED_ERROR
51 } E_CIP_TUNER_STATUS;
52 
53 /*---Global type defs for public use-------------------------------------------*/
54 
55 typedef struct
56 {
57  U32BIT module;
58  U8BIT reply;
59  U8BIT path;
61 
62 typedef struct adb_event_desc * pADB_EVENT_DESC;
63 
64 typedef struct ci_tune_del_sys_desc
65 {
66  SI_DELIVERY_SYS_DESC_TYPE type;
68  U16BIT service_id;
69  U8BIT *pmt;
70  U8BIT service_type;
71  SI_STRING_DESC *service_name;
72  pADB_EVENT_DESC event_desc;
74 
75 /*---Global Function prototypes for public use---------------------------------*/
76 
80 void ACI_Initialise(void);
81 
88 BOOLEAN ACI_HandlePrivateTimer(U32BIT timer_handle);
89 
94 BOOLEAN ACI_SetSecureRouting(U8BIT path);
95 
100 void ACI_UsageRulesStatusChanged(U8BIT path);
101 
106 void ACI_ProgramMapTableChanged(U8BIT *pmt);
107 
114 BOOLEAN ACI_IsTrustedPath(U8BIT path);
115 
121 void ACI_UseCiModuleOnPath(U8BIT path, U32BIT module);
122 
128 BOOLEAN ACI_PathOwnedByModule(U8BIT path, U32BIT module);
129 
135 void ACI_TuneToTransport(U32BIT module, void *t_ptr);
136 
143 void ACI_TuneToService(U32BIT module, void *s_ptr, E_CIP_TUNE_FLAGS flags);
144 
152 void ACI_TuneToDelSysDesc(U32BIT module, S_CIP_TUNE_DEL_SYS_DESC *tune, E_CIP_TUNE_FLAGS flags);
153 
160 BOOLEAN ACI_AskRelease(U32BIT module);
161 
162 
170 void ACI_TuneReply(U8BIT path, U32BIT module, E_CIP_TUNER_STATUS status);
171 
172 #endif /* AP_CI_INT_H */
173 
174 /******************************************************************************
175 ** End of file
176 ******************************************************************************/
Application level CI control functions.
void ACI_UseCiModuleOnPath(U8BIT path, U32BIT module)
Use the CI module with the given path.
Definition: ap_ci.c:2257
void ACI_TuneToService(U32BIT module, void *s_ptr, E_CIP_TUNE_FLAGS flags)
Schedule a tune to a service.
Definition: ap_ci.c:2020
BOOLEAN ACI_PathOwnedByModule(U8BIT path, U32BIT module)
Checks whether path is owned by CI module.
Definition: ap_ci.c:2324
BOOLEAN ACI_IsTrustedPath(U8BIT path)
The given decode path is only trusted if it doesn't include a CI slot or the CI slot contains a CI+ C...
Definition: ap_ci.c:1688
void ACI_ProgramMapTableChanged(U8BIT *pmt)
Handle PMT change.
Definition: ap_ci.c:1638
BOOLEAN ACI_HandlePrivateTimer(U32BIT timer_handle)
Checks whether the given timer is associated with any of the CI+ profiles and starts the operator sea...
Definition: ap_ci.c:1292
void ACI_UsageRulesStatusChanged(U8BIT path)
Re-evaluate current state follwing a change related to usage rules.
Definition: ap_ci.c:1612
Header file - macros and function prototypes for public use.
System Wide Global Technical Data Type Definitions.
void ACI_TuneToDelSysDesc(U32BIT module, S_CIP_TUNE_DEL_SYS_DESC *tune, E_CIP_TUNE_FLAGS flags)
Tune to a service/transport defined by a delivery system descriptor, possibly with PMT data...
Definition: ap_ci.c:2044
BOOLEAN ACI_SetSecureRouting(U8BIT path)
Ensures the TS is routed securely for CI+, either by setting the TS to pass through if a CI slot cont...
Definition: ap_ci.c:1380
BOOLEAN ACI_AskRelease(U32BIT module)
Ask the host control module to restore replaced PIDs and to close the session with the host control r...
Definition: ap_ci.c:2218
void ACI_Initialise(void)
Initialise CI Host Control support.
Definition: ap_ci.c:994
void ACI_TuneReply(U8BIT path, U32BIT module, E_CIP_TUNER_STATUS status)
This function is called by the host to send the status of the tune operation to the module...
Definition: ap_ci.c:2242
void ACI_TuneToTransport(U32BIT module, void *t_ptr)
Schedule a tune to a transport.
Definition: ap_ci.c:2000