void dump_cg2_channel(struct cg2_channel * p) { int i; dump_group_start ("Channel Lineup"); dump_time ("Modification Time", p->mod_time); dump_u32 ("TMS ID", p->tmsid); dump_u32 ("Data Length", p->data_len); for (i = 0; i < p->num_programs; i++) dump_fixed_program_record(&p->programs[i]); dump_group_end (); }
void dump_program(struct program * p) { if (!p->isvalid) return; dump_group_start ("Program"); dump_u32 ("Struct Size", p->struct_size); dump_u32 ("Unknown1", p->unknown1); dump_u32 ("Is Valid", p->isvalid); dump_u32 ("Tuning", p->tuning); dump_fixed_program_record( &p->fixed_program_record); dump_group_end (); }
static int dump_programset_file(FILE * fp) { unsigned char header[256]; unsigned char buffer[256]; unsigned char * bigbuf; unsigned char * p; struct fixed_program_record r; u32 tms_id; u32 length; int i = 0; while (fread(buffer, 8, 1, fp)) { p = buffer; tms_id = rtv_to_u32(&p); length = rtv_to_u32(&p); bigbuf = malloc(length); expect(bigbuf != NULL); dump_group_start("Programset Channel"); dump_u32 ("TMS ID", tms_id); dump_u32 ("Length", length); fread(bigbuf, length, 1, fp); for (p = bigbuf, parse_fixed_program_record(&p, &r, 1); p < bigbuf + length; parse_fixed_program_record(&p, &r, 1)) { sprintf(header, "FPR #%d", i); dump_group_start(header); dump_fixed_program_record(&r); dump_group_end(); i++; } dump_group_end (); free(bigbuf); } return 0; }
static void dump_block(int64_t blkno, int blksize, char *buf) { size_t i; uint32_t *vals = (uint32_t *)buf; fprintf(stdout, "Dumping block %"PRId64" (%d bytes):\n", blkno, blksize); for (i = 0; i < (blksize / sizeof(uint32_t)); i++) { if (!(i % 4)) { if (i) fprintf(stdout, "\n"); fprintf(stdout, "0x%08zu\t", i * sizeof(uint32_t)); } dump_u32(&vals[i]); fprintf(stdout, " "); } fprintf(stdout, "\n"); }
void dump_fixed_program_record(struct fixed_program_record * p) { dump_group_start ("Program"); dump_bitmapping ("Flags", p->flags, program_flags_mapping); dump_time ("Event Time", p->event_time); dump_u32 ("TMS ID", p->tmsid); dump_u16 ("Minutes", p->minutes); if (p->genre1) dump_mapping ("Genre 1", p->genre1, genre_mapping); if (p->genre2) dump_mapping ("Genre 2", p->genre2, genre_mapping); if (p->genre3) dump_mapping ("Genre 3", p->genre3, genre_mapping); if (p->genre4) dump_mapping ("Genre 4", p->genre4, genre_mapping); dump_u16 ("Record Length",p->record_len); if (p->flags & 0x0040) dump_parts ( &p->parts); if (p->flags & 0x0020) dump_movie ( &p->movie); if (p->title_len > 1) dump_string ("Title", p->datablock + p->title_offset); if (p->episode_len > 1) dump_string ("Episode", p->datablock + p->episode_offset); if (p->description_len > 1) dump_string ("Description", p->datablock + p->description_offset); if (p->actor_len > 1) dump_string ("Actor", p->datablock + p->actor_offset); if (p->guest_len > 1) dump_string ("Guest", p->datablock + p->guest_offset); if (p->suzuki_len > 1) dump_string ("Suzuki", p->datablock + p->suzuki_offset); if (p->producer_len > 1) dump_string ("Producer", p->datablock + p->producer_offset); if (p->director_len > 1) dump_string ("Director", p->datablock + p->director_offset); dump_group_end (); }