fix digital+ (mhw2) epg (still disabled in epgcache.h!)
[enigma2.git] / lib / dvb / lowlevel / mhw.h
index 05d66ee8552c94ae5977f1c4a20947540d768d74..f06c86e897b317044d9f336c536d8ccdcc37025c 100644 (file)
@@ -19,6 +19,28 @@ typedef struct {
    u_char      name[15];
 } mhw_theme_name_t;
 
+struct summary_min {
+#if BYTE_ORDER == BIG_ENDIAN
+   u_char minutes                                :6;
+   u_char                                        :1;
+   u_char summary_available                      :1;
+#else
+   u_char summary_available                      :1;
+   u_char                                        :1;
+   u_char minutes                                :6;
+#endif
+};
+
+struct day_hours {
+#if BYTE_ORDER == BIG_ENDIAN
+   u_char day                                    :3;
+   u_char hours                                  :5;
+#else
+   u_char hours                                  :5;
+   u_char day                                    :3;
+#endif
+};
+
 typedef struct {
    u_char table_id                               :8;
 #if BYTE_ORDER == BIG_ENDIAN
@@ -34,24 +56,19 @@ typedef struct {
 #endif
    u_char section_length_lo                      :8;
    u_char channel_id                             :8;
-   u_char theme_id                               :8;
-#if BYTE_ORDER == BIG_ENDIAN
-   u_char day                                    :3;
-   u_char hours                                         :5;
-#else
-   u_char hours                                         :5;
-   u_char day                                    :3;
-#endif
-#if BYTE_ORDER == BIG_ENDIAN
-   u_char minutes                                :6;
-   u_char                                       :1;
-   u_char summary_available                      :1;
-#else
-   u_char summary_available                      :1;
-   u_char                                       :1;
-   u_char minutes                                :6;
-#endif
-   u_char                                        :8;
+   union {
+     u_char theme_id                             :8;
+     u_char mhw2_hours                           :8;
+   };
+   union {
+     struct day_hours dh;
+     u_char mhw2_minutes                         :8;
+   };
+   union {
+     struct summary_min ms;
+     u_char mhw2_seconds                         :8;
+   };
+   u_char                                        :8; // mhw2_title begin
    u_char                                        :8;
    u_char duration_hi                            :8;
    u_char duration_lo                            :8;
@@ -63,11 +80,11 @@ typedef struct {
    u_char program_id_hi                          :8;
    u_char program_id_mh                          :8;
    u_char program_id_ml                          :8;
-   u_char program_id_lo                          :8;
-   u_char                                        :8;
-   u_char                                        :8;
-   u_char                                        :8;
-   u_char                                        :8;
+   u_char program_id_lo                          :8; // mhw2_title end (35chars max)
+   u_char mhw2_mjd_hi                            :8;
+   u_char mhw2_mjd_lo                            :8;
+   u_char mhw2_duration_hi                       :8;
+   u_char mhw2_duration_lo                       :8;
 } mhw_title_t;
 
 typedef struct mhw_summary {