📄 sysmain2.c
字号:
#ifdef SUPPORT_REP_READ //Maoyong 2004.06.03
InitRead();
#endif
#ifdef SUPPORT_BOOK
init_book();
#endif
goto_time = 0;//4-4-13 16:22
//#ifdef OP_UI//zhaoyanhua 2004-5-24 17:35
// prog_cnt = 0;
//#endif
//nono move from ap_mian(): SYSTEM_READ_TITTLE.2004-2-27 12:00
coding_mode_now=AUDIF_CODING_MODE_NONE;//wangfeng 2003-12-19 17:44
#ifdef USE_PIN31_CONTROL_POWER_LED //gerry,2004-3-9 19:42
gbm_gpio_led_flag=0;
#endif//USE_PIN31_CONTROL_POWER_LED
nOldFst = 0; //Maoyong 2004.05.25 move from labif.c
#ifdef SUPPORT_WMA //Maoyong 2004.05.31 for WMA
asf_resume_pck = 0;
#endif
#if defined(SUPPORT_WMA) || defined(SUPPORT_MP4)
nGotoPck = 0;
#endif
//FS SWD
#ifdef SUPPORT_PLAY_SWD
START_POLLING_SWD = 0;
#endif
//OSD 16bit direct color
#ifdef SUPPORT_PS2
OSD_buffer_16bit = 0;
#endif
//initiate PS2 mouse
#ifdef SUPPORT_PS2
START_POLLING_PS2 = 0; //hold polling
mouse_pos_x = 180;
mouse_pos_y = 120;
mouse_btn_status = 0x0;
PS2_INIT_DONE = 0x0;
#endif
//==============================================
//for QSI source switch //added by JS //20040726
#if defined(QSI_PORTABLE_DVD) && defined(SUPPORT_CARD_STORAGE)
#ifdef SUPPORT_QSI_SOURCE_SWITCH
source_type_now = source_disc;
source_type_old = source_disc;
#endif
#endif
//==============================================
}
extern char _stextf[];
extern char _text_drv[], _text_drv_dvd[], _text_drv_ap[], _text_drv_iop[], _text_other[], _text_drv_cdrom[];
extern char _text_drv_srvdp[], _text_drv_ap2[], _text_drv_free[];
#include "kernel.h"
#define CUSTM_LOGO 0
#define SETUP_LOGO 1
UINT8 logo_type=CUSTM_LOGO;
extern const unsigned char Setup_Logo[];
//
// show logo
//
// Terry,2003/9/13 12:20AM
// integration mpeg logo/new style setup logo function
void ShowTitle()
{
BYTE *p;
UINT32 unOffset;
#ifdef NEW_STYLE_SETUP //terry,2004/2/17 11:09AM
UINT8 setup;
#endif
#ifdef MONE_LOGO
printf("logo in\n");
#endif
#ifdef LINUX_USER_LOGO //MIKEY 2004.07.01
if(f_check_user_logo==0) {
printf("INFO: f_check_user_logo USER_LOGO_ROM_ADDR=[%x]\n", USER_LOGO_ROM_ADDR);
f_check_user_logo=1;
p = (BYTE *) USER_LOGO_ROM_ADDR;
memset((BYTE *) USER_LOGO_RAM_ADDR, 0, USER_LOGO_RAM_SIZE);
if(*(p+0x80)=='T' && *(p+0x81)=='M') {
//printf("INFO: cp USER_LOGO_RAM_ADDR=[%x] USER_LOGO_RAM_SIZE=[%x]\n", USER_LOGO_ROM_ADDR, USER_LOGO_RAM_SIZE);
memcpyS((BYTE *) USER_LOGO_RAM_ADDR, (BYTE *) USER_LOGO_ROM_ADDR, USER_LOGO_RAM_SIZE);
//printf("INFO: cp USER_LOGO_RAM_ADDR=[%x] USER_LOGO_RAM_SIZE=[%x] OK!!\n", USER_LOGO_ROM_ADDR, USER_LOGO_RAM_SIZE);
f_check_user_logo=2;
}
}
#endif
LoadModual(MODUAL_MPEG);
show_logo=1;
Abort();
unOffset = ((UINT32 *)_stextf)[MODUAL_ROM3];
#ifdef NEW_STYLE_SETUP
#ifdef SDRAM_16Mb_Mode//zhaoyanhua add 2003-8-7 10:12
if((prog_state == 4 )||(prog_state == 5))
#else
if((setup_state == 1 )||(setup_state == 3))
#endif//SDRAM_16Mb_Mode
setup =1;
else
setup =0;
#endif//NEW_STYLE_SETUP
set_vpp_disp_size(0,0);
#ifdef NEW_STYLE_SETUP
if(setup)
{
set_video_aspect();
p = Setup_Logo;
logo_type = SETUP_LOGO;
printf("==============>display setup logo\n");
}
else
#endif
#ifdef USER_MPEG_LOGO
// alan, 2003/9/24 11:33AM
if(Is_User_Mpeg_Logo()) p=(UINT8 *)(ROM_BASE_UNCACHED+768*1024); //Flash offset addr 0x90000(for 080)
else
#endif
{
#ifdef LINUX_USER_LOGO //MIKEY 2004.07.01
p = (BYTE *) USER_LOGO_RAM_ADDR;
if(*(p+0x80)=='T' && *(p+0x81)=='M')
f_check_user_logo=3;
else
#endif
p = DVDTitle;
printf("Manufacture Logo\n");
#ifdef DOUBLE_LOGO
if(OsdIsEnglish()) p=DVDTitle1;
#endif
#ifdef CD_PLAYER //liweihua 2003-9-3
if((cd_type_loaded==CDDA)&&(play_state!=VCD_STATE_OPEN))
p=CDPlayerTitle;
#endif
}
PlayRomSlide(p);
#ifdef LOGO_STARTUP_VPP_NOW
startup_vpp_now();//nono 4-6-10 0:25 for ZOOMING IN,show logo startup_vpp_now.
#endif//LOGO_STARTUP_VPP_NOW
MediaMainLoop();
PlayRomSlide(p);
MediaMainLoop();
#ifdef NEW_STYLE_SETUP // alan, 2003/8/13 11:44PM
if(setup)
{//terry,0813
if(getVPP_TVsystem()) set_vpp_disp_size(720,540);
else set_vpp_disp_size(0,0);
}
#endif
#ifdef NEW_STYLE_SETUP
if(logo_type == CUSTM_LOGO)
#endif
tv_setup_misc(0);
reset_sup();
Sync();
show_logo=0;
set_video_default_offset();
startup_vpp();
#ifdef NEW_STYLE_SETUP
if(setup==0)
logo_type = CUSTM_LOGO;
#endif//#ifdef NEW_STYLE_SETUP
#ifdef MONE_LOGO
printf("logo out\n");
#endif
}
#ifdef LOGO_PLAY_MP3
void Show_Logo_Play_MP3()
{
extern const unsigned char LOGO_MP3[];
int a;
/*Play Background MP3*/
#define PlayLen 3
//b=sizeof(LOGO_MP3);
//printf("MP3 size=%d\n",b);
for(a=0;a<PlayLen;a++)
{
stream_ptr = (BYTE*)(LOGO_MP3 + playindex*PlayLen*1024+a*1024);
//print_block(stream_ptr,1024);
dma_iptr = 0;
dma_ilen = 1024;
logo_play_mp3_flag=0;
do_mp3();
logo_play_mp3_flag=1;
}
playindex++;
if(playindex==MaxPlayLen/PlayLen) playindex=0;
}
#endif
/****************************************************/
/* initial subroutine */
/****************************************************/
void volume_init(void)
{
#if !defined(Ti3001_OSD_UI_1)
#ifdef VOLUME_RECODE
{
//audio_volume = VOL_VALUE; //set to maximum volume
int read_volume=0;
int i=0;
#ifdef CNTR_5SPK_VOLUME
for (i=0; i<7; i++) {
#endif
read_volume=ReadFromI2c(0xa0,ADDR_I2C_VOLUME+i,(BYTE *)&audio_volume,sizeof(audio_volume));
if(read_volume!=1)
{
//#if 1//def ROTARY_VOL_HUAJIA1251
#ifdef CNTR_5SPK_VOLUME// defined(HIMAGE1251) || defined(HIMAGE1250_03_185W)//wangfeng 2003-10-31 21:11
#ifdef SW_VOL_63
if(i==6){
audio_volume = SUB_DEFAULT;
}
else
#endif
audio_volume = DEFAULT_VOL;
#else
audio_volume = DEFAULT_VOL;
#endif
//#else
// audio_volume = VOL_VALUE;
//#endif
}
audio_volume = (audio_volume<=DEFAULT_VOL)?audio_volume:DEFAULT_VOL;
#ifdef CNTR_5SPK_VOLUME
volume_5SPK[i] = audio_volume;//VOL_VALUE; //set to maximum volume
if(i==0)//wangfeng 2003-11-03 15:33
idVolume_5SPK[i] = Volume_Font_ID;
else
idVolume_5SPK[i] = VOL_FL_ID+i-1;
} //for
audio_volume = volume_5SPK[0] ;
volume_Switch = 0; //set to main volume
#endif
}
#else //VOLUME_RECODE
#if 1//def ROTARY_VOL_HUAJIA1251
audio_volume = DEFAULT_VOL;//VOL_VALUE; //set to maximum volume
#else
audio_volume = VOL_VALUE;
#endif
#endif //VOLUME_RECODE
#else
//ti_set_volume(SET_TOTAL_VOLUME,TI_VOL_VALUE);
ti_set_volume(SET_ALL_VALUE);//2002 0918
#endif
#if 0 //def TAS3001_AMP // jason mark 2-10-5 16:29
// tas3001_vol = TI_VOL_VALUE;//2002 0918
iBalance=10;
ti_set_volume(SET_TOTAL_VOLUME,TI_VOL_VALUE);//2002 0918
#endif
#ifdef TAS5026_AMP
tas5026_vol = TI_VOL_VALUE;
iBalance=10;
#endif
}
/* The main initial function */
static inline void VCD_init()
{
psd_state = PSD_PLAY_TRACK; //for cdda vcd1.0 &1.1
psd_st.psd_list_id = 0xffff;
playmode_sel(CLEAR_ALL);
}
/*
** FUNCTION
** ReadCDTitle
**
** DESCRIPTION
** reading DISC information.
*/
int ReadCDTitle(void)
{
extern UINT8 DiscType;
int Res;
//
// reset hardware
//
cd_type_loaded=CDUNKNOWN;
if (CDOpened())
return -1;
if(system_state==SYSTEM_POWER)
return -3;
//
// setup interrupt-mask
//
SetIntrMask(INTR_MASK_READTOC);
//
// READTOC
//
pbcoff();
play_state = VCD_STATE_READTOC;
#ifdef DVD_SERVO
Res=read_toc();
#endif
disc_init();
if (!is_user_opened())
{
//if (cd_type_loaded != CDDVD)
if ( (cd_type_loaded != CDDVD) || ( (cd_type_loaded==CDDVD) && (dVMG_LSN==0) ) ) //add more DVD-video checking, Jeff 20031124
{
get_disc_info();
//CSSEnable = 0;
//
// software reset and initial variable
//
VCD_init();
#ifndef DVD_SERVO
Res=read_toc();
#endif
#ifdef DVD_SERVO
if( (Res>=0)||(DiscType == CDDVD) )
#else
if(Res>=0)
#endif
{
Res=check_cdtype();
#ifdef SYSMAIN2_DBG
if (cd_type_loaded != CDDVD) {
printf("check_cdtype:after disc_init, DVD xxx, dVMG_LSN=%x\n", dVMG_LSN);
} else {
printf("check_cdtype:after disc_init, DVD ooo, dVMG_LSN=%x\n", dVMG_LSN);
}
printf("check_cdtype:Res=%d, cd_type_loaded=%x\n", Res, cd_type_loaded);
#endif//SYSMAIN2_DBG
disc_time=M2I(gettrkmsf_leadout()); //terry 891004
if(cd_type_loaded!=CDDVD)//terry,2003/8/7 03:57PM
save_cmp_disc_info(disc_time);
}
}else
{
Res=0;
}
}
if (is_user_opened())
Res = -1;
#ifdef SUPPORT_CD_TEXT
else
read_cd_text();
#endif
#ifdef DIP_CFG_ENABLE
SetDeInterlace(dip_sel);
#else
dip_enable = 0;
#endif
if( (cd_type_loaded==CDVCD10)&&( (cd_trk_hi<1)||(cd_trk_hi>100) ) )
{//terrry,2003/12/30 11:00AM
printf("toc err\n");
cd_trk_hi = 1;
cd_type_loaded=CDROM;
}
return Res;
}
//detect tray function subroutin
UINT8 is_user_opened(void)
{
//printf("no_disk_cnt:%x s:%x p:%x\n",no_disk_cnt,system_state,play_state);
if( (no_disk_cnt==DETECT_TIMES)||(system_state==SYSTEM_POWER) )
return TRUE;
else
{
return FALSE;
}
}
UINT8 is_test_unit(void)//2001/10/23
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -