OSDN Git Service

暫定登録
[iptd/iPTd.git] / src / b25 / arib_std_b25.h
1 #ifndef ARIB_STD_B25_H
2 #define ARIB_STD_B25_H
3
4 #include "portable.h"
5 #include "b_cas_card.h"
6
7 typedef struct {
8         uint8_t *data;
9         int32_t  size;
10 } ARIB_STD_B25_BUFFER;
11
12 typedef struct {
13
14         int32_t  program_number; /* channel */
15         
16         int32_t  ecm_unpurchased_count;
17         int32_t  last_ecm_error_code;
18
19         int32_t  padding;
20
21         int64_t  total_packet_count;
22         int64_t  undecrypted_packet_count;
23         
24 } ARIB_STD_B25_PROGRAM_INFO;
25
26 typedef struct {
27
28         void *private_data;
29
30         void (* release)(void *std_b25);
31
32         int (* set_multi2_round)(void *std_b25, int32_t round);
33         int (* set_strip)(void *std_b25, int32_t strip);
34         int (* set_emm_proc)(void *std_b25, int32_t on);
35         
36         int (* set_b_cas_card)(void *std_b25, B_CAS_CARD *bcas);
37         
38         int (* reset)(void *std_b25);
39         int (* flush)(void *std_b25);
40
41         int (* put)(void *std_b25, ARIB_STD_B25_BUFFER *buf);
42         int (* get)(void *std_b25, ARIB_STD_B25_BUFFER *buf);
43
44         int (* get_program_count)(void *std_b25);
45         int (* get_program_info)(void *std_b25, ARIB_STD_B25_PROGRAM_INFO *info, int32_t idx);
46
47 } ARIB_STD_B25;
48
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52
53 extern ARIB_STD_B25 *create_arib_std_b25();
54
55 #ifdef __cplusplus
56 }
57 #endif
58
59 #endif /* ARIB_STD_B25_H */
60