openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
mhw.h
Go to the documentation of this file.
1 #ifndef __MHW_H__
2 #define __MHW_H__
3 
4 #include <sys/types.h>
5 
6 /* Structures for MHW-EPG tables parsing */
7 
8 typedef struct {
9  u_char network_id_hi;
10  u_char network_id_lo;
13  u_char channel_id_hi;
14  u_char channel_id_lo;
15  u_char name[16];
16 
17  int getNetworkId() const { return network_id_hi << 8 | network_id_lo; };
18  int getTransportStreamId() const { return transport_stream_id_hi << 8 | transport_stream_id_lo; };
19  int getChannelId() const { return channel_id_hi << 8 | channel_id_lo; };
21 
22 typedef struct {
23  u_char name[15];
25 
26 struct summary_min {
27 #if BYTE_ORDER == BIG_ENDIAN
28  u_char minutes :6;
29  u_char :1;
30  u_char summary_available :1;
31 #else
32  u_char summary_available :1;
33  u_char :1;
34  u_char minutes :6;
35 #endif
36 };
37 
38 struct day_hours {
39 #if BYTE_ORDER == BIG_ENDIAN
40  u_char day :3;
41  u_char hours :5;
42 #else
43  u_char hours :5;
44  u_char day :3;
45 #endif
46 };
47 
48 typedef struct {
49  u_char table_id :8;
50 #if BYTE_ORDER == BIG_ENDIAN
52  u_char dummy :1;
53  u_char :2;
54  u_char section_length_hi :4;
55 #else
56  u_char section_length_hi :4;
57  u_char :2;
58  u_char dummy :1;
59  u_char section_syntax_indicator :1;
60 #endif
61  union {
62  u_char section_length_lo :8;
63  u_char mhw2_theme :8;
64  };
65  u_char channel_id :8;
66  union {
67  u_char theme_id :8;
68  u_char mhw2_hours :8;
69  };
70  union {
71  struct day_hours dh;
72  u_char mhw2_minutes :8;
73  };
74  union {
75  struct summary_min ms;
76  u_char mhw2_seconds :8;
77  };
78  u_char :8; // mhw2_title begin
79  u_char :8;
80  u_char duration_hi :8;
81  u_char duration_lo :8;
82  u_char title [23];
83  u_char ppv_id_hi :8;
84  u_char ppv_id_mh :8;
85  u_char ppv_id_ml :8;
86  u_char ppv_id_lo :8;
87  u_char program_id_hi :8;
88  u_char program_id_mh :8;
89  u_char program_id_ml :8;
90  u_char program_id_lo :8; // mhw2_title end (35chars max)
91  u_char mhw2_mjd_hi :8;
92  u_char mhw2_mjd_lo :8;
93  u_char mhw2_duration_hi :8;
94  u_char mhw2_duration_lo :8;
95 
96  int getDuration() const { return duration_hi << 8 | duration_lo; };
97  int getMhw2Duration() const { return mhw2_duration_hi << 8 | mhw2_duration_lo; };
98 } mhw_title_t;
99 
100 typedef struct mhw_summary {
101  u_char table_id :8;
102 #if BYTE_ORDER == BIG_ENDIAN
104  u_char dummy :1;
105  u_char :2;
106  u_char section_length_hi :4;
107 #else
108  u_char section_length_hi :4;
109  u_char :2;
110  u_char dummy :1;
111  u_char section_syntax_indicator :1;
112 #endif
113  u_char section_length_lo :8;
114  u_char program_id_hi :8;
115  u_char program_id_mh :8;
116  u_char program_id_ml :8;
117  u_char program_id_lo :8;
118  u_char :8;
119  u_char :8;
120  u_char :8;
121  u_char nb_replays :8;
123 
124 #endif
125 
struct mhw_summary mhw_summary_t
name
Definition: newplugin.py:9
Definition: mhw.h:38
u_char hours
Definition: mhw.h:41
u_char day
Definition: mhw.h:40
Definition: mhw.h:8
u_char transport_stream_id_hi
Definition: mhw.h:11
int getNetworkId() const
Definition: mhw.h:17
int getTransportStreamId() const
Definition: mhw.h:18
u_char channel_id_lo
Definition: mhw.h:14
u_char channel_id_hi
Definition: mhw.h:13
u_char network_id_hi
Definition: mhw.h:9
int getChannelId() const
Definition: mhw.h:19
u_char network_id_lo
Definition: mhw.h:10
u_char transport_stream_id_lo
Definition: mhw.h:12
Definition: mhw.h:100
u_char section_length_hi
Definition: mhw.h:106
u_char section_syntax_indicator
Definition: mhw.h:103
u_char table_id
Definition: mhw.h:101
u_char program_id_mh
Definition: mhw.h:115
u_char section_length_lo
Definition: mhw.h:113
u_char program_id_ml
Definition: mhw.h:116
u_char dummy
Definition: mhw.h:104
u_char program_id_hi
Definition: mhw.h:114
u_char nb_replays
Definition: mhw.h:121
u_char program_id_lo
Definition: mhw.h:117
Definition: mhw.h:22
Definition: mhw.h:48
u_char program_id_lo
Definition: mhw.h:90
u_char ppv_id_hi
Definition: mhw.h:83
u_char section_length_lo
Definition: mhw.h:62
u_char channel_id
Definition: mhw.h:65
u_char section_syntax_indicator
Definition: mhw.h:51
u_char program_id_mh
Definition: mhw.h:88
int getDuration() const
Definition: mhw.h:96
u_char program_id_hi
Definition: mhw.h:87
u_char ppv_id_mh
Definition: mhw.h:84
u_char mhw2_seconds
Definition: mhw.h:76
u_char program_id_ml
Definition: mhw.h:89
u_char duration_hi
Definition: mhw.h:80
u_char section_length_hi
Definition: mhw.h:54
u_char ppv_id_ml
Definition: mhw.h:85
u_char ppv_id_lo
Definition: mhw.h:86
u_char mhw2_duration_lo
Definition: mhw.h:94
u_char theme_id
Definition: mhw.h:67
u_char duration_lo
Definition: mhw.h:81
u_char mhw2_theme
Definition: mhw.h:63
u_char mhw2_mjd_lo
Definition: mhw.h:92
u_char mhw2_minutes
Definition: mhw.h:72
int getMhw2Duration() const
Definition: mhw.h:97
u_char dummy
Definition: mhw.h:52
u_char mhw2_duration_hi
Definition: mhw.h:93
u_char mhw2_mjd_hi
Definition: mhw.h:91
u_char table_id
Definition: mhw.h:49
Definition: mhw.h:26
u_char minutes
Definition: mhw.h:28
u_char summary_available
Definition: mhw.h:30