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

📄 sysmain2.c

📁 Sunplus 8202S source code.
💻 C
📖 第 1 页 / 共 3 页
字号:
/*
** FILE
** sysmain2.c
**
** DESCRIPTION
** Main entry of DVD system firmware
**
** Maintain by terry , 2003.03.07
**
*/
#include "sysmain2_h.h"
#include "gpio.h"
#include "user_init.h"
#include "kinf.h"
#include "sinf.h"
#include "user_if.h"
#include "timer.h"
#ifdef POWER_ON_MUTE_MIC   //axel 2004/2/26 04:10pm mute mic during initialization
#include "dsp3_if.h"
#endif

#ifdef TP6317_PANNEL   //yaowh add 04-10-25
   extern BYTE TP6317_Power ;   //flag
#endif

#ifdef SPHE1000

#ifdef  DVB1000_NON_OS
#include "TunerDrv.h"   //maoyong 2004-9-27 16:58
#include "sp_dtv.h"
#endif //DVB1000_NON_OS

//#define TEST_DVD
#define LINUX_USER_LOGO     //MIKEY 2004.07.01
#endif //SPHE1000

#ifdef LINUX_USER_LOGO  //MIKEY 2004.07.01
UINT8 f_check_user_logo=0;
UINT8 *user_logo_rom_addr=(UINT8 *)0x88080000;
UINT8 *user_logo_ram_addr=(UINT8 *)0x804e0000;
int user_logo_ram_size=(128*1024);
#define USER_LOGO_ROM_ADDR  (user_logo_rom_addr)
#define USER_LOGO_RAM_ADDR  (user_logo_ram_addr)
#define USER_LOGO_RAM_SIZE  (user_logo_ram_size)
#endif

#if 1//def TEST_SERVO//nono 2004-3-30 19:13
#include "ircode.h"
#endif
#include "srv_test.c"
extern UINT8 volume_value;

#ifdef SUPPORT_RECEIVER     //benson  2004/03/01
#include "dsp3_if.h"
#endif

#ifdef SUPPORT_APOGEE_AMP
#include "ddx8000.h"
#endif

#include "auddrv.h" //2004AUDDRV oliver 20041004 for using audio driver purpose
#ifdef SUPPORT_SPDIF_IN
#include "audif.h"
#endif

#ifdef SUPPORT_WMA          
#include "asf_if.h"
#endif

//jslin //for QSI PIPO  //20040901
#ifdef QSI_SHOW_ERR_RATE
#include "uart.h"
#endif

#ifdef DVB1000_OSD_MENU     //Maoyong 2004-10-12 11:28
#include "dvbmenu.h"
#endif

//=========================

#if defined(SUPPORT_WMA) || defined(SUPPORT_MP4)
extern UINT32 nGotoPck;
#endif

//Maoyong 2004.03.05, move some resume relative declare/def to "rsm_util.h"
#ifdef  CHECK_RECORD_DISK_PARENT_LVL    //Maoyong 2004.03.04
extern BYTE CheckDiscParentLvl(void); 
#endif
extern BYTE CheckLoadRsmInfo(void); 
extern void RecordRsmPlay(void);

#if defined(AUDIO_2CH_5_1CH)&&defined(SUPPORT_PROLOGIC_II)//axel modified 2004/3/16 10:53am zhaoyanhua add 2003-12-17 9:47
extern int setup_IsSpkDownmixOff(void);//setup_tab.c
extern void AudioSet2chOutput(void);//setup_tab.c
#endif

#ifdef  DYNAMIC_SPECTRUM //zhaoyanhua add 03-11-6 15:26
extern void Show3dspectrum(void); 
#endif

#ifdef USER_MPEG_LOGO
extern UINT8 Is_User_Mpeg_Logo();
#endif


#ifdef CORTROL_VCD_ONF
extern int setup_IsVCD_OFF();
#endif

#if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
extern BYTE IsCardMediaExist(void);
extern void SwitchMedia(BYTE direction);
#endif

#ifdef  SUPPORT_REP_READ
#include "read.h"
#endif

#ifdef PROVIEW_GPIO_KEY
void set_proview_gpio_key(void);
#endif
void system_check_media_switch(void);
void system_check_source_switch(void);// for QSI disc\card switch   //added by JS   //20040727


#ifdef PMP_DVD //wthsin, 2004/11/9 07:19
 UINT8 PMP_ENABLE=0;
 extern void pc_usb_access_mode();
#endif //#ifdef PMP_DVD 

#ifdef SUPPORT_Auo_2inch_Digital_panel
extern void init_auo_digital_panel(void);
#endif

#ifdef SUPPORT_Auo_UPS053_Digital_panel

extern void init_auo_ups053_digital_panel(void);                                

#endif

#ifdef FILE_MODE_WRITE//added by wangwei,2005-1-9 21:40
extern unsigned int detect_CD;
#endif

#if defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)  //modefied by wangwei,2004-11-19 17:31(for storage no files screen refresh problem)
extern UINT8 MediaIsEmpty;
//#define MEDIA_EMPTY 1         //dingzhy moved to gb_def.h
//#define MEDIA_NOT_EMPTY 0
#endif

//=====================================================
//* debug option
//=====================================================
#ifndef DVDRELEASE
//#define SYSMAIN2_DBG        1
//#define MONE_LOGO
#endif

#undef FORCE_SKIP_VCD_MOSAIC//nono 4-6-9 0:35

#ifndef SYSMAIN2_DBG
#undef printf
#undef print_block
#define printf(f, a...) do {} while (0)
#define print_block(x,y) do {} while (0)
#endif

//=====================================================
//* var. and extern function decalare
//=====================================================
#include "sysmain2.h"

extern UINT8 Subp_stream_Chg(UINT8,int);
extern UINT16 Audio_stream_Chg_SVCD(UINT8);
//2004AUDDRV extern void init_mp3(void);
extern void do_mp3(void);
extern int AUDIF_Set_Play();//2004AUDDRV AudioSetPlay();  //huziqin 2004-2-26
extern int AUDIF_Set_Stop();//2004AUDDRV AudioSetStop();  //change type to int
extern void RsmInfo2Flash(int);
extern void LoadRsmInfo(void);
extern void LoadModual(UINT16);
extern void RS42Init();
extern void RS2420Init();
extern void DisplayScreenSaver();
#ifdef DVD_SERVO
extern UINT8 cServoWrongDataPass;
#endif
void SetDeInterlace(BYTE nVal);
extern void setup_SetSPDIFConfig();//nono 3-8-18 15:45
#ifdef CD_PLAYER    //liweihua 2003-9-3    
extern void show_cdplayer(void);
#endif
#if defined(CF_CARD_WRITE) || defined(SPHE8202_FAT_Write_Function)//|| defined(WRITE_USB)
extern BYTE read_card_sign,flag_cf2cd,flag_cd2cf;          //xulf
#endif
#ifdef VIRTUAL_KEYBOARD//liweihua 2003-9-18
extern BYTE KeyID;
void hl_keyboard_button(BYTE SelectID);
void osd_draw_virtual_keyboard(int xStart, int yStart,BYTE r);
#endif

#ifdef LOGO_PLAY_MP3
 int playindex;
#endif 

BYTE logo_play_mp3_flag;
extern UINT8 power_on_mute;//terry 20030805
extern void set_video_default_offset(void);//wanghaoying 2003-8-12 20:21
extern void save_cmp_disc_info(UINT32 info1);//wanghaoying 2003-8-12 20:22

#ifdef SUPPORT_HDD_ACCESS
    UINT8 f_force_browser=0;
    UINT8 f_browser_mode=0;
#endif

#ifdef USE_PIN31_CONTROL_POWER_LED      //gerry,2004-3-9 19:41
int gbm_gpio_led_flag;
#endif//USE_PIN31_CONTROL_POWER_LED

void show_osd_disc_type(void)
{//terry,2003/12/29 08:25PM
    #if defined(JUST_SHOW_CD_TYPE)||defined(NOSHOW_CDROM_WHEN_DISP)||defined(BEAUTIFUL_STYLE)       //Not show CD Icon for NINTAUS Maoyong 2004.02.12
    #if defined(NOSHOW_CDROM_WHEN_DISP)||defined(BEAUTIFUL_STYLE)//nono 2004-6-15 0:02    //dingzhy for beautiful
    if(cd_type_loaded == CDROM)
    #else
    if(cd_type_loaded == CDDA)
    #endif
    {
        osd_tog_region(REGION1, OSD_OFF);       
        return;
    }
    #endif
    
    #ifdef GBM_DVD
    PrintOsdMsg(osd_cd_id[cd_type_loaded],REGION1,2,0);
    #elif defined(DVD_AUDIO)    // alan, 2003/8/15 04:23PM, to distinguish DVD-VIDEO or DVD-AUDIO

#ifdef SHOW_DVD_ROM//NONO 4-2-10 19:08  
    if( (is_svo_dvd())&&(cd_type_loaded==CDROM) ) 
        {
            OSD1000ISP_STATUS(OSDISP_TYPE_DVDROM, OSDIR_CDTYPE);

            psprintf(RegionValStr[REGION1], "DVDROM");
            PrintOsdMsg(STR_OS_SPACE,REGION1, 1, 1);
        }
    else 
#endif//SHOW_DVD_ROM
    
    if (cd_type_loaded==CDDVD)  
    {
        if (dAMG_LSN==0)
            psprintf(RegionValStr[REGION1], "DVD-VIDEO");     
        else
            psprintf(RegionValStr[REGION1], "DVD-AUDIO");

        OSD1000ISP_STATUS(OSDISP_TYPE_DVD, OSDIR_CDTYPE);

        PrintOsdMsg(STR_OS_SPACE,REGION1, 1, 1);
    } else {
#ifdef DVD_SERVO
        if ((cd_type_loaded == CDVCD10) && (is_svo_dvd()))
#else
        if (cd_type_loaded == CDVCD10)
#endif
{
            OSD1000ISP_STATUS(OSDISP_TYPE_DVD, OSDIR_CDTYPE);

            PrintOsdMsg(osd_cd_id[CDDVD],REGION1,1,0);
}
        else
        {
            OSD1000ISP_STATUS(cd_type_loaded, OSDIR_CDTYPE);

            PrintOsdMsg(osd_cd_id[cd_type_loaded],REGION1,1,0);        
        }
    }
    #elif defined (FENGKAI_DVD)
    ///////clead 2003-8-27 17:31
    printf("**--- cd_type_loaded:%d  bDiscType:%d ---**\n",cd_type_loaded,bDiscType);
    
    if((cd_type_loaded==CDSVCD)&&(bDiscType == CD_CVD))
    {
        OSD1000ISP_STATUS(OSDISP_TYPE_CVD, OSDIR_CDTYPE);

        psprintf(RegionValStr[REGION1], "CVD");
        PrintOsdMsg(STR_OS_SPACE,REGION1, 1, 1);
    }else 
    {
        OSD1000ISP_STATUS(cd_type_loaded, OSDIR_CDTYPE);

        PrintOsdMsg(osd_cd_id[cd_type_loaded],REGION1,1,0);
    }
    #elif defined(SKYWORTH_DVD)
        if(cd_type_loaded!=CDROM)
        {
            OSD1000ISP_STATUS(cd_type_loaded, OSDIR_CDTYPE);

            PrintOsdMsg(osd_cd_id[cd_type_loaded],REGION1,1,0);
        }
        else
        PrintOsdMsg(STR_OS_SPACE,REGION1,1,0);

    #else//#ifdef GBM_DVD
    #ifdef DVD_SERVO
        if ((cd_type_loaded == CDVCD10) && (is_svo_dvd()))
    #else
        if (cd_type_loaded == CDVCD10)
    #endif
        {
            OSD1000ISP_STATUS(OSDISP_TYPE_DVD, OSDIR_CDTYPE);

            PrintOsdMsg(osd_cd_id[CDDVD],REGION1,1,0);
        }
        else
        {
            OSD1000ISP_STATUS(cd_type_loaded, OSDIR_CDTYPE);

            PrintOsdMsg(osd_cd_id[cd_type_loaded],REGION1,1,0);        
        }

    #endif//#ifdef GBM_DVD
}
//*******init ce2746 dac ******** wangap 2004/4/21
#ifdef CE2746
#define Chip_addr 0x6a     
#define Register_addr 0x00  
void init_ce2746()  
{
   int I2c_data1=0x01,I2c_data2=0x80;
   WriteI2c(Chip_addr,Register_addr,I2c_data1,1);
   delay_1ms(10);
   WriteI2c(Chip_addr,Register_addr+1,I2c_data2,1);
}
#endif


//=====================================================
//* function decalare
//=====================================================
void InitVar(void)
{
    //init pe engine
    pe_run = 0;
//    dVts_iso9600_addr = 0;//terry,2003/8/6 04:01PM
#ifdef TP6317_PANNEL   //yaowh add  04-10-25
    TP6317_Power = 0 ;
#endif
    PE_ClearNav();
    mpeg_audio=0;
    dspWatchDog=DSP_WD_INIT;
    
#ifdef BAD_DISC_AUTO_STOP //terry,2003/8/31 12:00AM                   
    bad_disc_auto_stop=0;
#endif 

    //init navigation
    cd_subtype = CDROM_UNSUPPORT;
    bDiscType=CDUNKNOWN;
    still_timer=0;

    //#ifdef SUPPORT_MIX_MP3_CDDA   //linrc change "SUPPORT_MIX_MP3_CDDA" to "SUPPORT_MIX_DATA_CDDA_DISC"
    #ifdef SUPPORT_MIX_DATA_CDDA_DISC //because we not only support this type mix mode disc 2004-12-15 15:53
    mp3_cd_end_trk = 0;
    #endif
    play_dir = 0;

    Mp3ReadFinish=0;//mp3 ........
    logo_play_mp3_flag=1;
    fore_disp_time=-1;

    jpg_slide_time = JPEG_SLIDE_TIME;//jpeg .......... wanghaoying 2003-8-26 20:21
    
#ifdef NO_BLACK_for_PIC_CD    
    pic_cd_first_play = 0;
#endif    

    bPbcOff=0; //vcd ..........
    cd_trk_now=0;
    cd_trk_hi=0xff;
    cd_trk_lo_now=0;
    cd_trk_lo=0;

    dVMG_LSN = 0; //dvd.......
    HL_exist=0;
    read_sector=0;
    dvd_error=0;
    min_astn_id=0;//terry,2003/12/15 02:33PM
    dvd_karaoke_mode = 0; //terry,2004/2/16 11:11AM

    #ifdef DVD_AUDIO
    dAMG_LSN = 0;
    #endif

    #ifdef TUNR_OFF_PARENTAL_LVL
    bTurnOffParentalLVL=0; //terry,2002/9/20 11:40PM
    #endif

    #ifdef JUST_SHOW_CD_TYPE    //Maoyong 2004.02.26
    track_play_diff_time = 0;
    #endif
    
#ifdef DVD_SEQ_PLAY
#ifdef AUTO_PLAY
    extern BYTE auto_play_on();
    if (auto_play_on())
        dvd_menu_play = 0;
    else
        dvd_menu_play = 1;
#else
    dvd_menu_play = 0;
#endif
#endif

    // 2004/07/16 yltseng
    wb_tag_init();          
    
    //init UI
    init_ir_num();
    goto_active=0;
    mp3_user_select=0;
    pFsJpeg->iso9660_file_cnt = 0;
    disp_trk_now = 0;
    Mp3_kbitrate=0;
    bIntro=0;
    //keep_cmd_code=0;
    keep_cmd_code=IR_CODE_MAX_NUM;//2004-3-30 19:14
    disc_st_time=0;

    #if defined(IR_PLAY_RESUME) && defined(POWER_RESUME)  //yw 021003
    power_resumeflag = 0;
    #endif
    

⌨️ 快捷键说明

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