📄 navdata.h
字号:
#define TRACK_INFO_MAX (0x66)
typedef struct
{
UINT32 track_info[TRACK_INFO_MAX+1];
UINT32 oko_trk_end[TRACK_INFO_MAX];
}tCDROM;
//==================================================================================== CDG
#define gf_gen 67 //define generating poly of Galois field
//primitive poly is a must
//polynomial coef. set bitwise
#define gf_order 64 //number of element in Galois field
//equals to 2^(highest order of
//generating poly)
#define gen_power 6 //highes order of generating poly
typedef unsigned char gf2m_format; //gf2m_format as the storage format for
//field elements. one may redefine it to
//other type for enlarging the range for
//presentaion of field elements.
typedef struct
{
gf2m_format exp2vec[gf_order]; //table to covert field element of
//exponential form to vector form
gf2m_format vec2exp[gf_order]; //table to convet field element of
//vector form to exponential form
gf2m_format generator2420[24]; //declare memory for generator poly
gf2m_format encodedseq2420[24]; //declare memory to store encoded
//codeword
gf2m_format decodedseq2420[20]; //declare memory to store decoded
//sequece
gf2m_format generator42[4];
gf2m_format encodedseq42[4];
gf2m_format decodedseq42[2];
gf2m_format rootbasis2420[5];
}tCDG;
//=============================================================================== FS & JPEG
#ifndef NEW_JPEG
#include "jpeglib.h"
#endif
typedef struct
{
tCDG cdg;
#ifdef SUPPORT_MULTI_PARTITION //wanghaoying 2004-8-9 17:28
BYTE count_part; //number of multi-partition in the storage (esp. HDD)
BYTE part_current;
BYTE part_will;
#ifdef FAT_FILE_MODE
UINT16 hdd_dir_current;
UINT16 card_dir_current;
#endif
#endif
#ifdef FILE_MODE_WRITE
BYTE count_media; //number of existing media
BYTE media_current;
BYTE media_will;
UINT16 srce_dir_current;
UINT16 dest_dir_current;
#endif
// File Structure part
UINT16 count_dir[5];
UINT16 first_dir[5];
UINT16 count_file[5];
UINT16 Dir_entry[ISO_DIR_MAX]; // map to real track number
UINT16 file_specify_in_dir; // number of specify style file in current directory
BYTE gifsFuncBtn; // indicate which button that we choose(FS_FUNC_MP3, FS_FUNC_JPEG, FS_FUNC_GAME)
BYTE gifsState;
UINT16 gifsMP3Count; // # of MP3 files in current disc
UINT16 gifsJPEGCount; // .jpg
#ifdef SUPPORT_NESGAME
UINT16 gifsGAMECount; // .nes
#endif
#ifdef SUPPORT_FILE_SYSTEM_MODE
UINT16 gifsOtherCount;
#endif
#ifdef SUPPORT_MIDI
UINT16 gifsMidiCount; //.mid
#endif
#ifdef SUPPORT_MP4_SUBTITLE
UINT16 uiMP4SubtitleCount; // mp4 subtitle
#endif
UINT32 gifsMSFDVDRom; //system upgrade image
UINT32 gifsDVDRomSize; //system-image file size
UINT32 gbfsPictureCD; //is Picture CD or not
#if defined(MP4_DISC_DIRECT_PLAY) || defined(CDROM_MOVIE_DIRECT_PLAY) //Maoyong 2004.05.12, for disc only has MP4 or/MP4+MPG files
BYTE gbfsSpecialMovieCD;
#endif
/* nes driver is put into ROM, Robert 03/04/29
UINT32 gifsMSFNESDrv; //NES driver image
UINT32 gifsNESDrvSize; //NES-driver-image file size
BYTE bNesDrvError;
*/
BYTE gbfsSlide;
BYTE gifsbPreview;
BYTE gifsbZoomOK;
BYTE gfsnot2NormalSpeed;
BYTE iGraphMode; //0:small graph, 1:NTSC graph
BYTE gbInJpeg;
UINT16 iso9660_dir_cnt;
UINT16 iso9660_file_cnt;
UINT16 fsnav_dir_cnt;
UINT16 first_mp3_entry;
UINT16 last_mp3_entry;
UINT16 first_mp3_seq; // sequece of first file in gifsFuncBtn group
UINT16 file_array[PER_PAGE]; //store file index of iso9660_file[index], PER_PAGE defined in fsGUIx.h
UINT16 dir_array[PER_PAGE]; //store file index of iso9660_dir[index]
// fs GUI part
UINT16 ControlArea;
UINT16 scroll_len;
UINT16 scroll_step;
UINT16 File_Page_Count; // number of file page in current directory
UINT16 Dir_Count;
UINT16 File_Count; // number of file in current page
UINT16 file_page_now; // index of current page
UINT16 file_page_will; // index of file page will be, panxing,2002-4-12
UINT16 dir_page_now;
UINT16 dir_current;
UINT16 file_current; // index of current file in current page
UINT16 file_will; // index of file will in current page,panxing,2002-4-13
UINT16 fsnav_trk_now;
UINT16 fsnav_dir_now;
UINT16 fsnav_trk_will;
UINT16 fsnav_dir_will;
#if defined(FAT_FILE_MODE)||defined(FILE_MODE_WRITE)//liweihua 2004-11-2//zhaoyanhua add 2004-4-9 9:34//lijd2005-1-8 13:04
UINT16 file_index_in_dir; //index of all files and subdirs in a dir
UINT16 file_count_in_dir; //number of all files and subdirs in a dir
UINT16 file_current_in_page; //file offset in current page
UINT16 file_page_index;
#endif
// JPEG thumbnail slide show
UINT16 g_nJpegMode;
UINT16 g_nPageCount; // the page amount
UINT16 g_nPageIndex;
UINT16 g_nThumbnailIndex;
UINT16 g_nAmountInPage;
#ifndef NEW_JPEG
// JPEG part
int DCHuffmanTable_cw[2][16]; //DC Huffman Code Word
int DCHuffmanTable_cl[2][16]; //DC Huffman Code Length
int DCHuffmanTable_rv[2][16]; //DC Huffman Value
int ACHuffmanTable_cw[2][176]; //AC Huffman Code Word
int ACHuffmanTable_cl[2][176]; //AC Huffman Code Length
int ACHuffmanTable_rv[2][176]; //AC Huffman Value
int QTable[2][64]; //Quantization Table
BYTE bufJPEG[1024]; //Temp buffer for read from origional data
INT16 gVID;
BYTE bJpgBreak;
BYTE bJpgVFDPause; //Jeff 20020523
BYTE jpg_Qdl_once;
int gQT[2][64];
MYJPEG jpg;
T_DHT dht;
T_SOS sos;
T_ECS ecs;
T_SOF0 sof0;
UINT16 jpg_framesize;
//int LastDC[3]; //for DPCM, we store previous DC values, [0]:Y [1]:Cb [2]:Cr
int LastDC[64];
int gbDCT[64];
int gbIDCT[64];
JPGTEMP p;
#endif
tCDROM cdrom;
union
{
t_selection_list s;
t_play_list p;
t_end_list e;
}List;
}FSJPEGDATA;
typedef union
{
FSJPEGDATA JPEG;
DataSaved DSV;
} share;
// for sim only
//extern UINT8 is_pe_show;
//extern UINT8 is_pg_print;
//extern UINT8 is_bsread_print;
//extern UINT8 dKEY_Ns, CurrKEY;
//extern int dKEYS[256];
extern share *pshare;
extern DataSaved *pDSV;
extern share share_data;
extern FSJPEGDATA *pFsJpeg;
//extern tVCD *pFsJpeg.cdg;
// param, prefix NP_ (nav param)
#define NP_GPRM(i) (pDSV->GPRM[(i)])
#define NP_GPRM_mode (pDSV->GPRM_mode)
#define NP_SPRM(i) (pDSV->SPRM[(i)])
//video player
#define NP_M_LCD (pDSV->SPRM[0])
#define NP_ASTN (pDSV->SPRM[1])
#define NP_SPSTN (pDSV->SPRM[2])
#define NP_AGLN (pDSV->SPRM[3])
#define NP_TTN (pDSV->SPRM[4])
#define NP_VTS_TTN (pDSV->SPRM[5])
#define NP_TT_PGCN (pDSV->SPRM[6])
#define NP_PTTN (pDSV->SPRM[7])
#define NP_HL_BTNN (pDSV->SPRM[8])
#define NP_NV_TMR (pDSV->SPRM[9])
#define NP_TT_PGCN_for_NV_TMR (pDSV->SPRM[10])
#define NP_P_AMXMD (pDSV->SPRM[11])
#define NP_CTY_CD (pDSV->SPRM[12])
#define NP_PTL_LVL (pDSV->SPRM[13])
#define NP_P_CFG_for_Video (pDSV->SPRM[14])
#define NP_P_CFG_for_Audio (pDSV->SPRM[15])
#define NP_INI_LCD_for_AST (pDSV->SPRM[16])
#define NP_INI_LCD_EXT_for_AST (pDSV->SPRM[17])
#define NP_INI_LCD_for_SPST (pDSV->SPRM[18])
#define NP_INI_LCD_EXT_for_SPST (pDSV->SPRM[19])
#define NP_P_RCD (pDSV->SPRM[20])
#ifdef DVD_AUDIO
//audio player ,AU9-4
#define NP_AMGM_LCD (pDSV->SPRM[0]) //AMGM Language code
#define NP_ASLN (pDSV->SPRM[1]) // audio selection number
//#define NP_AMGM_LCD (pDSV->SPRM[2])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[3])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[4])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[5])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[6])//reserved
#define NP_PGN (pDSV->SPRM[7]) //PG number for TT_GP_DOM
#define NP_HL_BTNN (pDSV->SPRM[8]) //Highlighted Button number for Selection state
//#define NP_AMGM_LCD (pDSV->SPRM[9])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[10])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[11])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[12])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[13])//reserved
#define NP_VCAP_CFG_Video (pDSV->SPRM[14]) //Video Capable audio player configuration for video
#define NP_VCAP_CFG_Audio (pDSV->SPRM[15]) //Video Capable audio player configuration for audio
//#define NP_AMGM_LCD (pDSV->SPRM[16])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[17])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[18])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[19])//reserved
//#define NP_AMGM_LCD (pDSV->SPRM[20])//reserved
#define NP_ATT_GRN (pDSV->SPRM[21]) //ATT Group number
#define NP_ATTN (pDSV->SPRM[22]) //ATT number for TT_GP_DOM
#define NP_TKN (pDSV->SPRM[23]) //Track number for TT_GP_DOM
#define NP_ASVN (pDSV->SPRM[24]) //ASV number
//#define NP_AMGM_LCD (pDSV->SPRM[25])//reserved
//share varible between audio and video
//#define dTS_Ns dVTS_Ns
#define dAMGM_VOBS_SA dVMGM_VOBS_SA
#define dATT_SRPT_SA dTT_SRPT_SA
#endif
#define FP_DOM (0)
#define VMGM_DOM (1)
#define VTSM_DOM (2)
#define VMGM_DOM_PGCN (3)
#define TT_DOM (4)
#define STOP_STATE (5)
#define TITLE_MENU (2)
#define ROOT_MENU (3)
#define SUB_PICTURE_MENU (4)
#define AUDIO_MENU (5)
#define ANGLE_MENU (6)
#define PTT_MENU (7)
// list of all navigator states
enum {
NAV_INIT=0,
NAV_STOP=1,
NAV_NEW_PGC,
NAV_PGC_PLAY,
NAV_PG_PLAY,
NAV_CELL_PLAY,
NAV_PE_PROC,
NAV_CELL_POST,
NAV_IDLE,
NAV_PGC_POST,
NAV_POWER,
NAV_PREVIEW//terry,2004/2/7 07:18PM
};
//======================================================================
#define SYS_PARAM 0x01
#define GEN_PARAM 0x02
//======================================================================
#define set_search_video() pDSV->ChkVideo|=0x01
#define clr_search_video() pDSV->ChkVideo&=(~0x01)
#define is_search_video() (pDSV->ChkVideo&0x01)
#define set_menu_exist_hl() pDSV->ChkVideo|=0x02
#define clr_menu_exist_hl() pDSV->ChkVideo&=(~0x02)
#define is_menu_exist_hl() (pDSV->ChkVideo&0x02)
#endif /*__NAVDATA_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -