⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cdg.h

📁 ESS3890+SL原代码(1*16内存)
💻 H
字号:
/* Copyright 2001, ESS Technology, Inc.                                 *//* SCCSID @(#)cdg.h	4.6 03/18/04 */#ifdef CDG#ifndef _CDG_H_#define _CDG_H_#include "common.h"#ifdef GDTSERVOGBLDEF(int is_ess3727, 1);#elseGBLDEF(int is_ess3727, 0);#endif/*=============LOCAL DEFININATION IN CDG.C ===================*//*If you want to use CDG in full screen, define it            */#define FRESH_BCKGRND/*I just use the BACK mem to do right and left scrolling, if  *//*don't have enough memory, undefine it, one block of memory  *//*about 16416kDW(304*216/4),                                  */#define NOUSE_BACK_MEM/*If the block of screec to be displayed is > 2 lines, please *//*define MORE_2_LINES, now is use 48*4(w*h), current code is  *//* 5 blks to do it                                            */#define MORE_2_LINES    /*If it is VCD plat_form, define it                           */#define VCD_CDG/*If use Reed-Solomon error correction,define it              */#define RS_DECODE/*================CONST FOR CODE CONTROL =============*/#define ON                              1#define OFF                             0#define NULL_POINTER                   -1#define DATA_ERROR                     -2#define SUCCESS                         0#define READY                           1#define NO_READY                        0 /*=================CONST FOR SYMBOLS ==================*/#define CDG_PACKET_SIZE                (96)#define CDG_PACK_SIZE                  (24)#define CDG_PACK_NUM                   (96)#define CDG_FIFO_SIZE                  (CDG_PACK_SIZE*CDG_PACK_NUM)/*=================CONST FOR CDG_MODE ==================*/#define CDG_ZERO_MODE                   0x00#define CDG_LINE_MODE                   0x08#define CDG_TV_MODE                     0x09#define CDG_EXTTV_MODE                  0x0A#define CDG_MIDI_MODE                   0x18#define CDG_USER_MODE                   0x38/*=================CONST FOR DISPLAY===================*/#define CDG_NTSC_HEIGHT                 240#define CDG_PAL_HEIGHT                  288#define TOTAL_MEM_BLKS                  1 #define BACK_SHFT_BLKS                  0 #define TOTAL_SCRL_CNT                  (BACK_SHFT_BLKS*48)#define CDG_SCRN_WIDTH                  352#define CDG_SCRN_DWIDTH                 88#define CDG_SCRN_UVDWIDTH               44#define TV_MEM_WIDTH                    (304)#define TV_MEM_DWIDTH                   (TV_MEM_WIDTH>>2)#define TV_DISPMEM_WIDTH                (TV_MEM_WIDTH*TOTAL_MEM_BLKS)#define TV_DISPMEM_DWIDTH               (TV_DISPMEM_WIDTH>>2) #define ROW_BYTES                       (TV_DISPMEM_WIDTH*FONT_HEIGHT)#define ROW_DWORDS                      (ROW_BYTES>>2) #define WIDTH_IN_BLKS                   (TV_MEM_WIDTH*BACK_SHFT_BLKS)#define DWIDTH_IN_BLKS                  (WIDTH_IN_BLKS>>2)#define TV_DISP2MEM_OFF                 (2)#define TV_SCRN_OFF                     (12*TV_DISPMEM_WIDTH)#define TV_SCRN_DWOFF                   (12*TV_DISPMEM_DWIDTH)#define TV_SCRN_X                       (TV_DISP2MEM_OFF + FONT_WIDTH) #define TV_SCRN_DX                      ((TV_SCRN_X)>>2)  #define FONT_WIDTH_BYTES                6 #define DISP_WIDTH_BYTES                300#define DISP_WIDTH_DWORDS               75 #define TV_DISP_MEM_SIZE                64800 /*bytes*/#define FONT_WIDTH                      6#define FONT_HEIGHT                     12#define LINE_DISP_HEIGHT                48#define LINE_SCRN_HEIGHT                24#define LINE_DISP_COLUMN                50#define LINE_DSIP_ROW                   4#define LINE_SCRN_COLUMN                48#define LINE_SCRN_ROW                   2#define LINE_DISP_MEM_SIZE              600#define TV_DISP_HEIGHT                  216#define TV_SCRN_HEIGHT                  192#define TV_SCRN_WIDTH                   288#define TV_DISP_COLUMN                  50#define TV_DISP_ROW                     18#define TV_SCRN_COLUMN                  48#define TV_SCRN_ROW                     16/*=================CONST FOR SCROLL=====================*/#define SCROLL_RIGHT                    1#define SCROLL_LEFT                     2 #define SCROLL_DOWN                     3 #define SCROLL_UP                       4#define SCRLL_COPY                      0x01#define SCRLL_PRESET                    0x02  /*======MEMORY CONTROL VALUE IN TV AND EXT_TV GRAPHICS===*/#ifdef  CDG_EXTTV_USED#define DISP_8BIT                       0x00#define NO_OPERATION1                   0x01#define NO_OPERATION2                   0x02#define DISP_8BIT_WRK_BTH               0x03#define DISP_PRM                        0x04#define DISP_PRM_WRK_PRM                0x05#define DISP_PRM_WRK_SCND               0x06#define DISP_PRM_WRK_BTH                0x07#define DISP_SCND                       0x08#define DISP_SCND_WRK_PRM               0x09#define DISP_SCND_WRK_SCND              0x0A#define DISP_SCND_WRK_BTH               0x0B#define DISP_2MIX                       0x0C#define DISP_2MIX_WRK_PRM               0x0D#define DISP_2MIX_WRK_SCND              0x0E#define DISP_2MIX_WRK_BTH               0x0F#endif/*=============== TV MODE INSTRUCTIONS ==================*/#define TV_PRESET_MEM                   0x01#define TV_PRESET_BORDER                0x02#define TV_WR_FONT                      0x06#define TV_SCRLL_IN_PRESET              0x14#define TV_SCRLL_IN_COPY                0x18#define TV_DF_CLR_TRNSPRNC              0x1C#define TV_LD_FRST_CLUT                 0x1E#define TV_LD_SCND_CLUT                 0x1F#define TV_EXOR_FONT                    0x26/*================== TV MODE FONT ======================*/#define FILL_FONT                       0#define XOR_FONT                        1#define PRIMARY_SECTION                 0#define ADDITIONAL_SECTION              1#define TV_CLUT0                        0#define TV_CLUT1                        1/*==================CONST FOR CDG SHOW ==================*/#define CDG_RGB1_START                  ((30 * 32) / 2)#define CDG_RGB2_START                  ((32 * 32) / 2)#define CDG_RGB3_START                  ((34 * 32) / 2)#define CDG_RGB4_START                  ((32 * 32) / 2)#define CDG_RGB5_START                  ((34 * 32) / 2)#define CDG_Y1_START                    0#define CDG_Y2_START                    (( 2 * 32) / 2)#define CDG_U420_START                  ((34 * 32) / 2)#define CDG_V420_START                  ((35 * 32) / 2)#define CDG_BLKW                        48 #define CDG_BLKDW                       (CDG_BLKW >> 2) #define CDG_BLKH                        32 #define CDG_BLKW_CNT                    (TV_SCRN_WIDTH/CDG_BLKW)#define CDG_BLKH_CNT                    (TV_SCRN_HEIGHT/CDG_BLKH)#define TV_DISP1BLKH_MEM                (CDG_BLKH*TV_DISPMEM_WIDTH)/*============MACRO FUNCTION ============================*/#define CDG_SWITCH_BYTE(A,B,TEMP)        {\                             (TEMP) = (B);\                             (B) = (A);   \                             (A) = (TEMP);\                             }    #define CDG_SWAP_BYTES           {\        CDG_SWITCH_BYTE(cdg->pack[1], cdg->pack[18], temp);\        CDG_SWITCH_BYTE(cdg->pack[2], cdg->pack[5], temp);\        CDG_SWITCH_BYTE(cdg->pack[3], cdg->pack[23], temp);\        }#define CDG_MEMSET(dest_p, value, size)          {\        int st_i;                                           \        for(st_i=0;st_i<size;st_i++) *(dest_p+st_i) = value;\        }#define CDG_MEMMOVE_R(d_p, s_p, size)            {\        int r_i;                                     \        for(r_i=(size-1); r_i>=0; r_i--) *(d_p+r_i) = *(s_p+r_i);\        }#define CDG_MEMMOVE_L(d_p, s_p, size)            {\        int l_i;                                    \        for(l_i=0; l_i<size; l_i++) *(d_p+l_i) = *(s_p+l_i);\        }#define CDG_MEMCOPY(d_p, s_p, size)              {\        int cp_i;                                       \        for(cp_i=0; cp_i<size; cp_i++)*(d_p+cp_i) = *(s_p+cp_i); \        }             /*This size of CDGP should be less than 16K bytes*/typedef struct {       unsigned char fifo[CDG_FIFO_SIZE];       unsigned char pack[CDG_PACK_SIZE+8];       int flag[CDG_BLKW_CNT][CDG_BLKH_CNT];       int mode;       int error;       int channel;       int ph;       int pv;       int tv_clut[256];       unsigned char tv_transparency[16];       unsigned char *fifo_p;      /* Indicate symbols fifo start address*/       unsigned char *disp_mem_p;  /* Indicate disp buffer start address */       unsigned char *scrn_mem_p;       unsigned char *show_p;       int *startY;       int *startU;       int *startV;       int *disp_dwp;       int dispmem_start;       int bckgrnd_color;        int scrl_cnt;       int clut_num;       /*Don't insert any below this*/       int show_h;       int show_w;       int Y_w;       int UV_w;       int Y_h;       int UV_h;       int mem_w;       int mem_h;       /*Don't insert any UP this*/       int cur_time;       } *CDGP;GBLDEF0(int *cdg_yuv_pal);GBLDEF0(int CDG_rdptr);GBLDEF0(CDGP cdg);GBLDEF0(int cdg_data_is_ready);GBLDEF0(int cdg_pause);GBLDEF0(int cdg_fresh_scrn);GBLDEF0(int cdg_tv_type);GBLDEF0(int cdg_show_cnt);GBLDEF0(int cdg_dispmem_start);GBLDEF0(int cdg_stack_start);GBLDEF0(int cdg_yuv_start);GBLDEF0(int cdg_blk_start);GBLDEF0(int cdg_goto_key);GBLDEF0(int cdg_fast_mode);GBLDEF0(int cdg_time);#ifdef MP3CDGGBLDEF(int mp3cdg_abv_size, MP3CDG_ABV_size);GBLDEF0(int mcg_need_data);GBLDEF0(int mp3_cdg_frame);GBLDEF0(int mp3cdg_samples);void MP3CDG_fast_restore();void MP3CDG_pause();void MCG_get_data();void MP3CDG_set(int, int, int);int MP3CDG_file_detect(int mp3_item, int *start_time, int *end_time);#endif/*=====================================================*//* it is to start to process CDDA/CDG data             *//* 1. Called in Initialization() to colse WFCK intrrpt *//* 2. Called in av_play_cdda_audio() to start CDG      *//* 3. Called in av_reset() to close CDG                *//* on = 0; close CDG                                   *//* on = 1; start CDG                                   *//*=====================================================*/void CDG_init(int on);int CDG_main();int CDG_show();#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -