📄 fs9660.c
字号:
/*
*/
#include "global.h"
#include "func.h"
#include "util.h"
#include "cd.h"
#include "hwsetup.h"
#include "fs9660.h"
#include "cdfs.h"
#include "graph.h"
#include "framebuf.h"
#include "macro.h"
#include "stc.h"
#include "cdfunc.h"
#include "osd.h"
#include "memmap.h"
#include "regmap.h"
#include "user_init.h"
#include "auctrl.h"
#include "stdlib.h"
#include "iop.h"
#include "irconfig.h"
#include "vfd.h"
#include "vpp.h"
#include "game.h"
#ifdef SUPPORT_FILE_SYSTEM_MODE
#include "dsa.h"
extern UINT16 unDriverFlag;
#endif
#ifdef SUPPORT_MP3STOP_SCREEN_SAFE
extern void Fs9660DrvInit(void);
#endif
#ifdef COMPRESS_MODULE
extern void LoadJpegDrv(void);
extern void LoadMp3drv(void);
#endif
#ifdef SUPPORT_ESP //zhg 2002/10/16
#define MP3_DIRECT_SELECT //zhg 2002/09/25 16:43
#endif
//#define MONE_READ_DIR
//#define MONE_READ_FILES
//#define MONE_ERR_CMD
//#define MONE_FLOW_CTRL
//#define DEBUG_MP3
//#define MSF_PVD 0x00000210 /*.. */
//#define SHADE 2 // ADD SHADE
//#define OFFSET_FONT_Y 3
#if VFD_DRIVER==SPL10 //zhyf 2002/10/25
#ifdef IR_INTRO_ON
extern BYTE Select_Dir_flag; //zhg 2002/10/2513:50
#endif
#endif
#ifdef SUPPORT_LYRICS
static BYTE buff[64];
char lyrics_text1[56];
#endif
#ifdef SUPPORT_UDF
#define _MSF2l(mm,ss,ff) (((mm)*60+(ss))*75+(ff)-150)
#endif
//#define iso9660_dir ((DIR_REC *)ISO9660_DIR_OFFSET)
//#define iso9660_file ((DIR_REC *)ISO9660_FILE_OFFSET)
const UINT16 folderFont[][12] = {
// folder unopened
{
0x1f00, 0x3180,
0x60c0, 0x7ffe,
0x4002, 0x4002,
0x4002, 0x4002,
0x4002, 0x4002,
0x4002, 0x7ffe,
},
// folder opened
{
0x1f80, 0x30c0,
0x607e, 0x4002,
0xffe2, 0x8022,
0x4012, 0x4012,
0x200a, 0x200a,
0x1006, 0x1ffe,
},
};
BYTE ReadPercent = 0;
#if 0
/********************************************************************/
/* Global variable declaration */
/********************************************************************/
//t_primary_volume_descriptor *pvd;
//move to global.h//static UINT16 Dir_entry[MAX_DIR_CNT]; /* map to real track number *///Jeff 20010805 BYTE->UINT16
static BYTE buf[64];
//extern BYTE isover256;
//extern unsigned char audio_step;
UINT32 drv_loc;
UINT32 drv_size;
#endif
/********************************************************************/
/* EXPORT FUNCTIONS */
/********************************************************************/
#ifdef SUPPORT_JPG //Jeff 20010806
#ifdef SUPPORT_JPG_DOUBLE_BUFFER
extern int Jpg_Main(UINT32 msf, UINT32 len, int jvid);
#else
extern int Jpg_Main(UINT32 msf, UINT32 len);
#endif
#endif /* */
extern void prog_next(void);
extern void ShowTitle(void);
extern int ReadSessionData(BYTE);
extern int load_game_drv(UINT32, int);
extern int load_game_code(UINT32, int);
extern void stop_video_engine(void);
extern void stop_audio_engine(void);
extern int cd_func_stop(void);
extern void ClearSystem(void);
extern void ircmd_3dsound(void);
extern void get_cdkit_time(BYTE);
/********************************************************************/
/* FUNCTIONS PROTOTYPE */
/********************************************************************/
char *file_ext_name(UINT16);
/*
** FUNCTION
**
** DESCRIPTION
**
*/
#ifdef SUPPORT_ESP
void esp_get_ID3(UINT16 mp3_trk_now_,UINT32 start_msf_,UINT32 end_msf_,UINT32 len_)
{
}
#endif
#if 1
void osd_flush_cache() /*jjding 02/20 */
{
volatile int i;
volatile BYTE *a = (BYTE *) (SDRAM_BASE + MEM_OSDYA_DEF * 1024);
for(i = 0; i < 1024 * (int)(OBV_H); i++)
{
*a = 0x0;
a++;
}
}
#endif
/*
** FUNCTION
**
** DESCRIPTION
**
*/
extern void stop_video_engine(void);
extern void stop_audio_engine(void);
void read_iso9660(void)
{
#if 1
int Res = 0;
//BYTE bErrMsf = 0;
ircmd_callback_check = NULL;//jhuang 2002/11/30 for 702 gamedisc eject->vcd ir select
t_disp = ON;
#if CONFIG==CONFIG_COMBO_VCD
Offset_line = 3; //3; //wyf /jhuang 708
CacheLineNs = 9; //MP3SECT_CACHE_LINES;//wyf/jhuang 708
#else
Offset_line = 3;
CacheLineNs = MP3SECT_CACHE_LINES;
#endif
#if !defined(FILE_SYS_DEBUG)
psprintf(linebuf, "Path TAB %x\n", Gmem.gmp3.extent_dir);
epp_write_slow(linebuf);
#endif /* */
//Clear CACHE Tag first
//JJDing 2002/05/07
{
int i;
for(i = 0; i < CacheLineNs; i++)
tag_msf[i] = -1;
}
#ifndef COMPRESS_MODULE
config_framebuffer(MEM_CONFIG_MP3);
clrFrameBuffer(FRAME_REF0);
#endif
//JJDing 2002/10/8 04:14PM
//OSD display uncompletely problem.
#if CONFIG==CONFIG_COMBO_SVCD//jhuang 2003/1/3 delete
//ABV_YS = MP3_EABYA_DEF;
//ABV_YE = MP3_AUDYA_DEF;
//ABV_YS = MP3_EABYA_START;//MP3_EABYA_DEF;
//ABV_YE = MP3_EABYA_END;//MP3_AUDYA_DEF;
#endif
osd_init();
#if CONFIG==CONFIG_COMBO_SVCD // panxing, 2002-3-25, blue background
FSGUI_FillFrameBuf(0, 0, 480, 576, BKG_Y, BKG_CRCB);
#else
FSGUI_FillFrameBuf(0, 0, 352, 288, BKG_Y, BKG_CRCB);
#endif
psd_st.psd_list_id = 0xffff;
if(Gmem.gmp3.mp3readfinish || ReadFile(&Res))
{
if(Gmem.gmp3.iso9660_file_cnt)
{
Gmem.gmp3.mp3readfinish = 1;
FSGUI_Menu();
mp3_select();
Gmem.gmp3.mp3readfinish = 0;
Gmem.gmp3.mp3_kbitrate = 0;
UISetNMNorm();
#ifdef MONE_FLOW_CTRL
epp_write("out mp3_select \n");
#endif
}
else
{
play_state = VCD_STATE_STOP;
}
}
//? ClearOsdRam ();
osd_flush_cache();
//HexDump(SDRAM_BASE+MEM_OSDYA_DEF*1024,128);
#ifdef POWER_KEY //zhyf test 2-9-12 17:13
if(GetCmdSrc(sys_cmd) == CMD_FUNC_POWER)
{
ClearOsdMsg(0);
//cd_func_stop();
}
else
#endif
do_cd_pause();
stop_video_engine();
stop_audio_engine();
//clrFrameBuffer(FRAME_REF0); //Tony 02/04/24 add//jhuang 2002/9/14 mark
#if 1 //jhuang 2002/9/14 reopen
/*******DON't Change************/
if(Gmem.gmp3.iso9660_file_cnt == 0) //jhuang 2002/8/22 for open logo皗脅//戈
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -