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
#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;
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 {