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

📄 sysmain2.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 3 页
字号:
    #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 + -