00001 /* 00002 * Copyright (C) David C.J. Matthews 2005, 2006 00003 * Derived from libdsmcc by Richard Palmer 00004 */ 00005 #ifndef DSMCC_RECEIVER_H 00006 #define DSMCC_RECEIVER_H 00007 00008 #include "dsmccbiop.h" 00009 00010 class DsmccDii 00011 { 00012 public: 00013 DsmccDii() : 00014 download_id(0), block_size(0), 00015 tc_download_scenario(0), number_modules(0), 00016 private_data_len(0), 00017 modules(NULL), private_data(NULL) {} 00018 00019 ~DsmccDii() 00020 { 00021 if (modules) 00022 delete[] modules; 00023 } 00024 00025 unsigned long download_id; 00026 unsigned short block_size; 00027 unsigned long tc_download_scenario; 00028 unsigned short number_modules; 00029 unsigned short private_data_len; 00030 DsmccModuleInfo *modules; 00031 unsigned char *private_data; 00032 }; 00033 00034 class DsmccSectionHeader 00035 { 00036 public: 00037 char table_id; /* always 0x3B */ 00038 00039 unsigned char flags[2]; 00040 00041 unsigned short table_id_extension; 00042 00043 /* 00044 * unsigned int section_syntax_indicator : 1; UKProfile - always 1 00045 * unsigned int private_indicator : 1; UKProfile - hence always 0 00046 * unsigned int reserved : 2; always 11b 00047 * unsigned int dsmcc_section_length : 12; 00048 */ 00049 00050 unsigned char flags2; 00051 00052 /* 00053 * unsigned int reserved : 2; always 11b 00054 * unsigned int version_number : 5; 00000b 00055 * unsigned int current_next_indicator : 1 1b 00056 */ 00057 00058 unsigned long crc; /* UKProfile */ 00059 }; 00060 00061 class DsmccDb 00062 { 00063 public: 00064 DsmccDb() : 00065 module_id(0), module_version(0), 00066 block_number(0), len (0) {} 00067 00068 ~DsmccDb() {} 00069 00070 unsigned short module_id; 00071 unsigned char module_version; 00072 unsigned short block_number; 00073 unsigned int len; 00074 }; 00075 00076 #endif 00077
1.5.5