mktable.c
来自「ESS3890+SL原代码(1*16内存)」· C语言 代码 · 共 1,775 行 · 第 1/4 页
C
1,775 行
/* Copyright 1998-1999, ESS Technology, Inc. *//* SCCSID @(#)mktable.c 4.34.1.1 12/15/04 *//* * $Log$ *//* Automatically generate: const.h : all micro define and pointer define const.dat: table data file init_t.c : initial subroutine constdat : const.dat's ascii file, which can be included in init_t.c , if you define -DSRAM. This file is generated only when you want your const.dat merged into your .sun file. *//* Automatically put all table data together, named const.dat. * and generate one initial routine to initial array's data pointer. * which is called by top.c. When add table in, pay attention: * 1. put array name in the first field of the table array. This name is the array name which you want to use in your function. * 2. T_$(name) is defined as the initial value of the array. * 3. T_$(name)_SZ define the array's size(byte) * 4. put array's type in the last field of table array. CHAR char UCHAR unsigned char INT int UINT unsigned int LONG long ULONG unsigned long SHORT short USHORT unsigned short * 5. All pointer in this table will be declared automatically in const.h, and will be initialized in init_t.c. So, when you use the pointer, just include "const.h", and use it freely. The pointer should have been initialized before you use it. * 6. Don't use pointer[][]. *//* * SERVO command tables was also included */#include <stdio.h>#include <ctype.h>#include <string.h>#define PRIVATE static#define SIZEOF(x) ((sizeof(x) & 3) ? ((sizeof(x) + 4) & ~3) : sizeof(x))#define SIZE(x) ((x & 3) ? (x + 4) & ~3 : x)#define MAX_TBL_NUM (sizeof(tables)/sizeof(tables[0]))#define MKTABLE#define ushort unsigned short#define uchar unsigned char/* define array 's type */#define INT 1#define SHORT 2#define CHAR 3#define LONG 4#define USHORT 5#define UCHAR 6#define ULONG 7#define UINT 8#define FILTER_SET 9#define OSDMESSAGE 10#define FONT 11 /* Uncompressed OSD data (ushort) */#define COMPFONTDATA 12 /* Compressed OSD data (uchar) */#define COMPFONTCODE 13 /* Code table (uchar) */#define COMPFONTOFFSET 14 /* Offset table (uint/ushort) */#define VFDMSG 15 /* 7 segment message */#define VFDICON 16 /* Icon message */#define ICONTBL 17 /* Table of icons */#ifdef FLASH_UPDATE#define LOGO_4_UPDATE 18 /* Reserve Logo size for flash update */#endif FLASH_UPDATE#ifdef COMPRESS_ALL_UCODE#define CTYPE_ZERO 30#define C1TYPE_ZERO 30#define CTYPE_BASE CTYPE_ZERO#elif defined(COMPRESS_MP3_UCODE) /* For LC code */#define CTYPE_ZERO 0#define C1TYPE_ZERO 30#define CTYPE_BASE C1TYPE_ZERO#else#define CTYPE_ZERO 0#define C1TYPE_ZERO 0#define CTYPE_BASE 0#endif#define C_INT INT + CTYPE_ZERO#define C_SHORT SHORT + CTYPE_ZERO#define C_CHAR CHAR + CTYPE_ZERO#define C_LONG LONG + CTYPE_ZERO#define C_USHORT USHORT + CTYPE_ZERO#define C_UCHAR UCHAR + CTYPE_ZERO#define C_ULONG ULONG + CTYPE_ZERO#define C_UINT UINT + CTYPE_ZERO#define C1_INT INT + C1TYPE_ZERO#ifdef COMPRESS_MKTBL_DATA#define MAX_COMPRESS_GROUP_NUM 5#define MAX_COMPRESS_ITEM_NUM 40#define MAX_CHAR_NUM_IN_NAME 40typedef struct { char name[MAX_CHAR_NUM_IN_NAME]; int type; int offset; char *data; int size;} COMPRESS_ITEM;typedef struct { char name[MAX_CHAR_NUM_IN_NAME]; COMPRESS_ITEM item_table[MAX_COMPRESS_ITEM_NUM]; int item_num; int table_size; int compress_size;} COMPRESS_GROUP;COMPRESS_GROUP compress_group[MAX_COMPRESS_GROUP_NUM];int compress_group_num=0;void register_for_compress(int index);int register_item(COMPRESS_ITEM *c_item, int index);void output_compress_group(int index, FILE *fp);int gzip(char* in, char* out);#endif#include "wj.h"#include "hufftab.h"#include "xpucode.h"#include "audio.h"#include "vpucode.h"#ifdef MP3#include "mp3audio.h"#include "huffcode.h"#endif#ifdef TWO_FIELDS_OSD#include "font2032.c"#include "icondata.c"#else#ifdef USE_VWCOMP#include "font2416.c"#else#include "smfont.c"#endif /* USE_VWCOMP */#endif /* TWO_FIELDS_OSD */#include "dgs_fnt.c" #include "bcdhex.c"#ifdef MPEG1#include "e1logo.c"#ifdef MEMORY_DEVICE#include "e2logo.c"#endif#endif /* MPEG1 */#include "vfdspec.c"#ifdef GAMMA#include "gammaval.h"#endif#include "custfilt.c"#include "osdmsg.c"#include "irkey.c"#include "misctbl.c"#ifdef TCSERVO#include "servocmd.c"#endif TCSERVO#ifdef GDTSERVO#include "gdt_cmd.c"#endif#ifdef CD7II#include "servop.h"#endif#ifdef GAMEBOY#include "gbtables.h"#endif#ifdef WMA_DEC#include "wma/wma_tab.c"#endif#ifdef MP3_LOGO#include "mp3logo.c"#endif/* for font compression */typedef struct { unsigned char *osd_comp_font; /* pointers to compressed fonts */ int szCompFont; /* Size of compressed data (in * * bytes) */ unsigned char *code_book; /* Actual code book */ int szCodeBook; /* Nubmer of bytes in code book */ unsigned int *osd_offset_tbl; /* Offset table for all fonts */ int szOffsetTbl; /* Size of offset tables (in * * Words) */} COMPFONT;PRIVATE COMPFONT fonts[FONT_LANGUAGES];#ifdef TWO_FIELDS_OSDPRIVATE COMPFONT newiconfonts;#endif /************************************************************************ * Imported functions * ************************************************************************/#ifndef USE_VWCOMP#ifdef USE_CN_HEADERextern void process_osdx2(int, int, int, unsigned int *, unsigned short *, COMPFONT *);#elseextern void process_osd(int, int, int, unsigned int *, unsigned int *, unsigned short *, unsigned short *);#endif /* USE_CN_HEADER */#endif /* USE_VWCOMP *//************************************************************************ * Imported variables * ************************************************************************/#ifndef USE_VWCOMP#ifdef USE_CN_HEADERextern unsigned short *raw_font, *raw_cfont;#elseextern unsigned short *osd_font, *osd_cfont;#endif /* USE_CN_HEADER */extern unsigned char * osd_comp_font;extern int szCompFont, szCompCFont;extern int szCodeBook;extern unsigned char *code_book;extern unsigned short * osd_offset_tbl;extern int szOffsetTbl;#endif /* !USE_VWCOMP *//************************************************************************ * Global variables * ************************************************************************/#ifndef USE_VWCOMPint size_osd_font00 = sizeof(osd_font00);int size_osd_cfont00 = sizeof(osd_cfont00);#endif/************************************************************************ * Local variables * ************************************************************************/PRIVATE unsigned short icontbl[256];PRIVATE unsigned char tbl_len; /************************************************************************ * Local functions * ************************************************************************/PRIVATE unsigned long write_long(unsigned long *data, long count, FILE *fp);PRIVATE unsigned long write_short(unsigned short *data, long count, FILE *fp);unsigned long write_short_dw(unsigned long *dataptr, long count, FILE *fp);PRIVATE unsigned long write_char(unsigned char *data, long count, FILE *fp);PRIVATE unsigned long write_osdmsg(OSDMSG *, int, FILE *);PRIVATE unsigned long write_vfdmsg(VFD_MSG *, int, FILE *);PRIVATE unsigned long write_vfdicon(VFD_ICON *, int, FILE *);PRIVATE unsigned long write_icontbl(unsigned short *, int, FILE *);PRIVATE void write_message_defines(int, FILE *);#ifdef FLASH_UPDATE#define MAX_LOGO_SZ 20000 /* Bytes */PRIVATE unsigned long write_logo(unsigned char *data, long count, FILE *fp);#endif FLASH_UPDATEPRIVATE unsigned long output_table(int tb, FILE *fp);PRIVATE struct { int genvar; /* 1 to generate variable; 0 to save DRAM */ char * name; /* Use to #define name of array T_$(name) is used to define array's initial pointer, and T_$(name)_SZ define array's size */ char * table; /* Use to #define pointer of array */ unsigned long size; int type; int entries; /* used by OSD messages & compression */ char *group_name; /* Only used by compressin data by group */} tables[] = {/*************************************************************************** Misc. ***************************************************************************/ {1, "MSG_array", (char *)osdmsg, 0, OSDMESSAGE, sizeof(osdmsg)/sizeof(OSDMSG)}, {1, "VFDMSG_array", (char *)VFD_msg, 0, VFDMSG, sizeof(VFD_msg)/sizeof(VFD_MSG)}, {1, "VFDICON_array", (char *)VFD_iconmsg, 0, VFDICON, sizeof(VFD_iconmsg)/sizeof(VFD_ICON)}, {0, "VFDICON_tbl", (char *)icontbl, 0, ICONTBL, 0}, {0, "dgs_font",(char *)dgs_font,sizeof(dgs_font), ULONG}, /* dgs_fnt.c */ {1, "hex2bcd", (char *) hex2bcd, sizeof(hex2bcd), UCHAR}, {1, "bcd2hex", (char *) bcd2hex, sizeof(bcd2hex), UCHAR}, {0, "digit2ascii", (char *) digit2ascii, sizeof(digit2ascii), UCHAR}, {1, "ptrLshift", (char *) ptrLshift, sizeof(ptrLshift), USHORT}, {0, "IR_key_tbl", (char *) IR_KEY_TABLE, sizeof(IR_KEY_TABLE), UCHAR}, {0, "VFD_key_tbl", (char *) VFD_key_tbl, sizeof(VFD_key_tbl), UCHAR}, {0, "VFD_refresh_tbl", (char *) VFD_refresh_address, sizeof(VFD_refresh_address), UCHAR}, {0, "VFD_char_segments", (char *) VFD_char_segments, sizeof(VFD_char_segments), USHORT}, {0, "VFD_msg_position", (char *) VFD_msg_position, sizeof(VFD_msg_position), UCHAR}, {0, "VFD_calendar_tbl", (char *) VFD_calendar_table, sizeof(VFD_calendar_table), USHORT}, {0, "VFD_digit_tbl", (char *) VFD_digit_table, sizeof(VFD_digit_table), USHORT}, {0, "VFD_mode", (char *) VFD_mode, sizeof(VFD_mode), UINT}, {0, "VFD_char_segment_size", (char *) VFD_char_segment_size, sizeof(VFD_char_segment_size), UINT}, {0, "VFD_wheel", (char *) VFD_wheel, sizeof(VFD_wheel), USHORT}, {0, "VFD_ring", (char *) VFD_ring, sizeof(VFD_ring), USHORT},#ifdef MN12510 {0, "VFD_12510_cmd", (char *) VFD_12510_cmd, sizeof(VFD_12510_cmd), UCHAR}, {0, "VFD_12510_dat", (char *) VFD_12510_dat, sizeof(VFD_12510_dat), UCHAR},#endif#ifdef IR_GAMEPAD {0, "DANCER_key_tbl", (char *) DANCER_key_table, sizeof(DANCER_key_table), UCHAR}, {0, "DANCER_syscode", (char *) DANCER_syscode, sizeof(DANCER_syscode), UINT},#endif {1, "filter_sharp",(char *)filter_sharp, sizeof(filter_sharp), USHORT}, {1, "filter_uv_sharp",(char *)filter_uv_sharp, sizeof(filter_uv_sharp), USHORT}, {1, "filter_34",(char *)filter_34, sizeof(filter_34), USHORT}, {1, "filter_23",(char *)filter_23, sizeof(filter_23), USHORT}, {1, "filter_uv_23",(char *)filter_uv_23, sizeof(filter_uv_23), USHORT}, {1, "filter_5",(char *)filter_5, sizeof(filter_5), USHORT},#ifdef GAMMA {1, "GammaCoef",(char *)GammaCoef, sizeof(GammaCoef), INT},#endif {0, "huffman_high_table", (char *)huffman_high_table, sizeof(huffman_high_table), LONG},#ifndef MEMORY_DEVICE {0, "tdmsettings", (char*)tdmsettings, sizeof(tdmsettings), USHORT},#endif {1, "palette_std", (char*)palette_std, sizeof(palette_std), UCHAR},#ifdef IR {0, "IR_powerup_tbl", (char*)IR_powerup_tbl, sizeof(IR_powerup_tbl), UINT},#ifndef DSC_IRQ {0, "IR_powerdn_tbl", (char*)IR_powerdn_tbl, sizeof(IR_powerdn_tbl), UINT},#endif#endif#ifdef DSC {0, "DSC_audiosettings", (char *)DSC_audiosettings, sizeof(DSC_audiosettings), UCHAR},#endif#ifdef PRE_EMPHASIS {0, "bp_demp", (char*)bp_demp, sizeof(bp_demp), UINT},#endif#ifdef GAMEBOY {1, "bp_gbsnd", (char*)bp_gbsnd, sizeof(bp_gbsnd), UINT},#endif#ifdef REVERB {1, "rvb_amp", (char*)rvb_amp, sizeof(rvb_amp), USHORT}, {1, "rvb_del", (char*)rvb_del, sizeof(rvb_del), USHORT}, {1, "rvb_vp_code", (char*)rvb_vp_code, sizeof(rvb_vp_code), UINT}, {1, "rvb_vp_offset", (char*)rvb_vp_offset, sizeof(rvb_vp_offset), USHORT},#endif {1, "bp_ham", (char*)bp_ham, sizeof(bp_ham), UINT},/* KARASC in echo.c */#ifdef KARAOKE {1, "vp_key_port", (char *)vp_key_port, sizeof(vp_key_port), INT},#endif {1, "e20log", (char *)e20log, sizeof(e20log), USHORT}, {1, "ecoeff_a", (char *)ecoeff_a, sizeof(ecoeff_a), USHORT},#ifdef TCSERVO {1, "TINIT_9432", (char *) TINIT_9432, sizeof(TINIT_9432), UINT}, {1, "TINIT9296EQ", (char *) TINIT9296EQ, sizeof(TINIT9296EQ), UINT}, {1, "AMinuteTrack", (char *) AMinuteTrack, sizeof(AMinuteTrack), UINT},#endif TCSERVO#ifdef GDTSERVO {1,"GDT3000_EQ_init",(char*)GDT3000_EQ_init,sizeof(GDT3000_EQ_init),USHORT}, {1,"GDT3000_EQ_1X",(char*)GDT3000_EQ_1X,sizeof(GDT3000_EQ_1X),USHORT}, {1,"GDT3000_EQ_2X",(char*)GDT3000_EQ_2X,sizeof(GDT3000_EQ_2X),USHORT}, {1,"GDT3000_DSP_init",(char*)GDT3000_DSP_init,sizeof(GDT3000_DSP_init), USHORT}, {1,"GDT3000_DSP_1X",(char*)GDT3000_DSP_1X,sizeof(GDT3000_DSP_1X), USHORT}, {1,"GDT3000_DSP_2X",(char*)GDT3000_DSP_2X,sizeof(GDT3000_DSP_2X), USHORT}, {1, "Minute2Track", (char *) Minute2Track, sizeof(Minute2Track), USHORT}, {1, "MIN2TRK_ADJ", (char *) MIN2TRK_ADJ, sizeof(MIN2TRK_ADJ), SHORT},#endif GDTSERVO/*************************************************************************** VP ucode. ***************************************************************************/#ifdef MPEG1#ifdef MIC_RECORD#ifdef ECHO_HALF#ifdef ECHO_ANALOG_BYPASS /* Analog by pass, MIC/2+CD/2 */ {0, "echo_ucode", (char *)echo4_ucode, sizeof(echo4_ucode), C_INT, echo4_OFFSET, "ucode_data"},#else /* Digital by pass, MIC/2+CD/2 */ {0, "echo_ucode", (char *)echo2_ucode, sizeof(echo2_ucode), C_INT, echo2_OFFSET, "ucode_data"},#endif /* Digital by pass, MIC/2+CD/2 */ {0, "echo_dp_ucode", (char *)echo2_ucode, sizeof(echo2_ucode), C_INT, echo2_OFFSET, "ucode_data"},#else#ifdef ECHO_ANALOG_BYPASS /* Analog by pass, MIC+CD */ {0, "echo_ucode", (char *)echo3_ucode, sizeof(echo3_ucode), C_INT, echo3_OFFSET, "ucode_data"},#else#if (defined IO3890 || defined IO3898) /* Digital by pass, 2 * MIC+CD */ {0, "echo_ucode", (char *)echo5_ucode, sizeof(echo5_ucode), C_INT, echo1_OFFSET, "ucode_data"},#else /* Digital by pass, MIC+CD */ {0, "echo_ucode", (char *)echo1_ucode, sizeof(echo1_ucode), C_INT, echo1_OFFSET, "ucode_data"},
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?