diff options
Diffstat (limited to 'mcast/common/.svn/text-base/ciparser.h.svn-base')
-rw-r--r-- | mcast/common/.svn/text-base/ciparser.h.svn-base | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/mcast/common/.svn/text-base/ciparser.h.svn-base b/mcast/common/.svn/text-base/ciparser.h.svn-base new file mode 100644 index 0000000..44cb810 --- /dev/null +++ b/mcast/common/.svn/text-base/ciparser.h.svn-base @@ -0,0 +1,140 @@ +/* + * (c) BayCom GmbH, http://www.baycom.de, info@baycom.de + * + * See the COPYING file for copyright information and + * how to reach the author. + * + */ + +#define ntohs16(data) ((u_int16_t)data[0]<<8 | (u_int16_t)data[1]) +typedef struct { + u_int16_t len; + u_int8_t *data; +} ci_pdu_t; + +typedef struct +{ + u_int8_t slot; + u_int8_t tcid; + u_int32_t length; + u_int8_t *data; +} ci_ll_t; + +typedef struct +{ + ci_ll_t *ll; + u_int8_t c_tpdu_tag; + u_int32_t length; + u_int8_t tcid; + u_int8_t *data; +} ci_tl_t; + +typedef struct +{ + ci_tl_t *tl; + u_int8_t tag; + u_int32_t length; + u_int32_t object_value; + u_int8_t *data; +} ci_sl_t; + +typedef struct +{ + ci_sl_t *sl; + u_int32_t tag; + u_int32_t length; + u_int8_t *data; +} ci_al_t; + +typedef struct +{ + u_int16_t ca_id; + u_int16_t ca_pid; +} ca_desc_t; + +typedef struct +{ + u_int8_t stream_type; + u_int16_t pid; + u_int16_t es_info_length; + u_int8_t ca_pmt_cmd_id; + ca_desc_t *cadescr; +} pidinfo_t; + +typedef struct +{ + u_int8_t ca_pmt_list_management; + u_int16_t program_number; + u_int8_t version_number; + u_int8_t current_next; + u_int16_t program_info_length; + u_int8_t ca_pmt_cmd_id; + ca_desc_t *cadescr; + pidinfo_t *pidinfo; +} ca_pmt_t; + +typedef struct +{ + u_int16_t pid; + u_int8_t ca_enable; +} pid_ca_enable_t; + +typedef struct +{ + u_int16_t program_number; + u_int8_t version_number; + u_int8_t current_next; + u_int8_t ca_enable; + pid_ca_enable_t *pidcaenable; +} ca_pmt_reply_t; + + +#define LENGTH_SIZE_INDICATOR 0x80 + +#define CPLM_MORE 0x00 +#define CPLM_FIRST 0x01 +#define CPLM_LAST 0x02 +#define CPLM_ONLY 0x03 +#define CPLM_ADD 0x04 +#define CPLM_UPDATE 0x05 + +#define CPCI_OK_DESCRAMBLING 0x01 +#define CPCI_OK_MMI 0x02 +#define CPCI_QUERY 0x03 +#define CPCI_NOT_SELECTED 0x04 + +#define AOT_CA_INFO_ENQ 0x9F8030 +#define AOT_CA_INFO 0x9F8031 +#define AOT_CA_PMT 0x9F8032 +#define AOT_CA_PMT_REPLY 0x9F8033 + +#define ST_SESSION_NUMBER 0x90 +#define ST_OPEN_SESSION_REQUEST 0x91 +#define ST_OPEN_SESSION_RESPONSE 0x92 +#define ST_CREATE_SESSION 0x93 +#define ST_CREATE_SESSION_RESPONSE 0x94 +#define ST_CLOSE_SESSION_REQUEST 0x95 +#define ST_CLOSE_SESSION_RESPONSE 0x96 + +#define DATA_INDICATOR 0x80 + +#define T_SB 0x80 +#define T_RCV 0x81 +#define T_CREATE_TC 0x82 +#define T_CTC_REPLY 0x83 +#define T_DELETE_TC 0x84 +#define T_DTC_REPLY 0x85 +#define T_REQUEST_TC 0x86 +#define T_NEW_TC 0x87 +#define T_TC_ERROR 0x88 +#define T_DATA_LAST 0xA0 +#define T_DATA_MORE 0xA1 + + +DLL_SYMBOL int ci_cpl_find_caid_by_pid (int pid); +DLL_SYMBOL int ci_cpl_find_slot_by_caid_and_pid (int caid, int pid); +DLL_SYMBOL int ci_cpl_clear (int slot); +DLL_SYMBOL int ci_cpl_clear_pids (int slot); +DLL_SYMBOL int ci_cpl_clear_caids (int slot); +DLL_SYMBOL int ci_cpl_clear_capids (int slot); +DLL_SYMBOL int ci_decode_ll (uint8_t * data, int len); |