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 + -
显示快捷键?