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

📄 ircmd.c

📁 OSD显示,单片机实现,ICCAVR! 代码风格严谨,为高人所写.我仅为了上传换取资料
💻 C
📖 第 1 页 / 共 2 页
字号:
      {
        fun[j]();
        return;
      }
      j++;
      i <<= 1;
    }
}
*/

/*
** IRCMD
*/
UINT32  ircmd_callback_check_generic(UINT32 func)
{
    return func;
}
/*
** FUNCTION
** ircmd_post_func(UINT32 func)
**
** DESCRIPTION
** post a system command.
*/
//static    void    ircmd_post_func(UINT32 func)//kenny 2001/5/16 mark it
void    ircmd_post_func(UINT32 func)
{
    SetIDETimeOut(SHORT_TMOUT);//printf("set srv timeout tm = %d\n",SHORT_TMOUT);//terry,2003/7/17 11:17PM
#ifdef DISP_REGION_BOTTOM// feeling ,these funcs would change the disp region 
    if(func == ( (CMD_FUNC|CMD_FUNC_SELECT) )//these func would cause the display bottom to up, or  up to bottom
            ||(func == (CMD_FUNC|CMD_FUNC_PLAY)) 
            ||(func == (CMD_FUNC|CMD_FUNC_MENU)) 
            ||(func == (CMD_FUNC|CMD_FUNC_STOP)) 
            ||(func == (CMD_FUNC|CMD_FUNC_RETURN)) )
        {

        /*if ((pFsJpeg->ControlArea == CNT_AREA_FILE) && 
            ((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)
                #ifdef SUPPORT_NESGAME
                        || (pFsJpeg->gifsFuncBtn == FS_FUNC_GAME)
                #endif
                #ifdef SUPPORT_FILE_SYSTEM_MODE
                        || (pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER) 
                #endif
                #ifdef SUPPORT_MIDI
                        || (pFsJpeg->gifsFuncBtn==FS_FUNC_MIDI)
                #endif
            ))*/
            {
                    if(t_disp)
                    {
                        osd_init();
                        DispCookOSD0(1);
                    }
                }
            }//end if(func == ( (CMD_FUNC|CMD_FUNC_SELECT) )
#endif    
    if (func)
    {
        if (ircmd_callback_check==NULL)
            ircmd_callback_check = ircmd_callback_check_generic;
        func = ircmd_callback_check(func);

        #ifdef SUPPORT_MIDI_MENU_SEL   //dtb
        if(gIsMidiSelMenu) //(Is_MIDI_STATE())&&
        {
            //xlluo add for show invaild flag 04-5-9
            extern BYTE bIsShowInvalid; 
            if(bIsShowInvalid==TRUE)
            {
                ir_select_number=0;
                bIsShowInvalid =0;    
                invalid_key();
                show_dvd_err();
            }else if (bIsShowInvalid ==2)
            {//show nothing
                    ir_osd_post_show =0;
                    bIsShowInvalid =0;    
                  return;
            }
           // ;//null      //ouyang 2004.07.31
        } else
        #endif
        if(func==0)
        {
            ir_select_number=0;
            invalid_key();
            show_dvd_err();
        }
    }

    if( (func)&&(!(func&0x20000)) )
    {
        if(cd_type_loaded==CDROM)
            e_msf=0;

        #ifdef SUPPORT_WMA
        #if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)//liweihua 2004-9-7 11:27
        if((GetCurrentFileType() == CDROM_WMA) && (media_type == MEDIA_CARD))
            AVD_SetMediaTimeout();
        #endif
        if (GetCurrentFileType() != CDROM_WMA)
        #endif
        {
            #ifdef PMP_UI
            if(pFsJpeg->gifsState == FS_STATE_OTHER&& (func&CMD_FUNC_REPAB))//kenny 2005/7/9
            {
                 //printf("not ircmd_post_func timeout\n");
            }
            else
            {
                
            AVD_SetMediaTimeout();
            //printf("ircmd_post_func timeout\n");
            }
            
            
            #else
            AVD_SetMediaTimeout();//terry,2001/6/8 03:15PM ,we wait kernel code finish
            #endif
         }   

#ifdef MONE_TIMEOUR_SRC
        printf("ircmd_post_func timeout\n");
#endif
        if(play_state==VCD_STATE_PAUSE){ //Jeff 20011004
            chg2normal_play(PAUSE2NORM,TRANSFER);
        }


        if(!(func&0x10000))
            PostCommand(func);
    }
    SetIDETimeOut(PLAY_TMOUT);//printf("set srv timeout tm = %d\n",PLAY_TMOUT);//terry,2003/7/17 11:17PM
}

//terry,2004/4/6 07:44PM
//void ircmd_sub_picture(void)
#include "ircmd_subtitle.c"

#ifdef NEW_INPUT_MENU
extern void input_str_clear_variable(void);
#endif

#ifdef CNTR_5SPK_VOLUME     //linrc add 2004-10-11 11:02 -->when main volume change,other volume change too
#ifdef CNTR_5SPK_TYPE_2     //but the other volume can change to big sound
inline void Set_5SPK(void)  //ESS is like this type 
{
    if(IS_AUDIF_CODING_MODE_LPCM || IS_AUDIF_CODING_MODE_DTS 
        || IS_AUDIF_CODING_MODE_PCM || IS_AUDIF_CODING_MODE_WMA
        || IS_AUDIF_CODING_MODE_DTSCD)
    {
        AUDIF_Set_Volume(volume_5SPK[0]);//2004AUDDRV AudioSetVolume(volume_5SPK[0]);
    }   
    else  AUDIF_Set_Volume(15);//2004AUDDRV AudioSetVolume(15);  
}
#endif
#endif

#ifdef OP_PLAYMODE
extern int u;
extern int r;//libing for display&OP_MENU 
void ircmd_mode(void)//libing 2005-4-21 21:25
{
    //  printf("===================ircmd_mode=============\n");
    if(full_scrn & OP_MENU)
    {
        
        exit_op_menu();
        //osd_init();       
    }else
    {                                     
#if 0//SDRAM_16Mb_Mode
        if(play_state==VCD_STATE_STOP)
        {
            if((cd_type_loaded==CDVCD10)||(cd_type_loaded==CDVCD20)||(cd_type_loaded==CDSVCD))
            {
                if(IsPBCOn())
                {
                    show_op_menu();    
                    SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                             op_func_right, op_func_select);
                }
                else
                {
                    invalid_key();
                    return;
                }   
            }   
            else if(resumeMSF)
            {
                show_op_menu();    
                SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                         op_func_right, op_func_select);
            }   
            else
            {       
                show_op_menu();    
                SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                         op_func_right, op_func_select);
            }
        }
        else
        {
            invalid_key();
        }
#else//#ifdef SDRAM_16Mb_Mode
#ifdef SDRAM_16Mb_Mode
    if((full_scrn==MARK)||(full_scrn==GOTO))
    {
        old_t_disp=t_disp;
        osd_tog_region(0,OSD_OFF);
        DispFadeOut();
        t_disp=0;
        return;  
    }  
if(t_disp==1)//libing for display&OP_MENU  
{
    u=1;
    DispFadeOut();
    r=1;
    //t_disp=1;
}
else if(t_disp==2)
{    
    u=1;
    DispFadeOut();
    r=2;
    //t_disp=2;
}
else
{
    r=0;
    u=0;
} 
#endif 
        if(cd_type_loaded==CDDVD)
        {
            if(is_menu())//dont'n show op_menu when is_menu on DVD disc
            {
                invalid_key();
            }
            else
            {
                show_op_menu();    
                SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                         op_func_right, op_func_select);
            }   
        }
        else if((cd_type_loaded==CDVCD20)||(cd_type_loaded==CDVCD10)||(cd_type_loaded==CDSVCD))
        {
            if(!IsPBCOn())
            {
                show_op_menu();    
                SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                         op_func_right, op_func_select);
            }
            else
            {
                invalid_key();
            }
        }
        else    
        {       
            //if(play_state==VCD_STATE_STOP)
            show_op_menu();    
            SetFullscrnCmdFuncPtr(op_func_up, op_func_down,  op_func_left,
                         op_func_right, op_func_select);
        }
#endif//#ifdef SDRAM_16Mb_Mode
    }
}
#endif//OP_PLAYMODE

void ircmd_angle(void)
{
#ifdef SUPPORT_UNICODE_FONT
    osd_fill_region(2, 1);
    coordinate start;
    start.x = 0;
    start.y = 0;   //This is a legacy-formula for back-compatible
            
    uni_subtitle_language++;
    
    if(uni_subtitle_language>3)
    {
        uni_subtitle_language =0;
    }    
    
    printf_w("<uni_subtitle_language=%d>\n",uni_subtitle_language);
    
    if(uni_subtitle_language==0)
    {
        char2uni_translation = char2uni_cp950;
        osd_draw_string(&start, "BIG5", 2, 1, 2, 0);
        osd_tog_region(2, OSD_ON);
    }
    else if(uni_subtitle_language==1)
    {
        char2uni_translation = char2uni_cp949;
        osd_draw_string(&start, "KSC", 2, 1, 2, 0);
        osd_tog_region(2, OSD_ON);
    }
    else if(uni_subtitle_language==2)
    {
        char2uni_translation = char2uni_cp932;
        osd_draw_string(&start, "JIS", 2, 1, 2, 0);
        osd_tog_region(2, OSD_ON);
    }
    else if(uni_subtitle_language==3)
    {
        char2uni_translation = char2uni_cp936;
        osd_draw_string(&start, "GB", 2, 1, 2, 0);
        osd_tog_region(2, OSD_ON);
    }
    return;
#endif    
     
#ifdef ANGLE_PBC_IN_ONE_KEY//libing 2005-4-21 20:52
if((cd_type_loaded==CDVCD10 ||cd_type_loaded==CDVCD20||cd_type_loaded==CDSVCD))
{
    ircmd_playmode_toggle();
    return;
}
#endif
    
#ifdef OP_IR//LIBNIG 2005-7-6 22:02    
#ifdef ANGLE_ROTATE_IN_ONE_KEY//libing 2005-6-28 14:47
if(pFsJpeg->gifsState == FS_STATE_JPEG)
    {
        OSD1000ISP_STATUS(OSDISP_DIR_ROTATE, OSDIR_RIGHT);

        ircmd_post_func(CMD_SELECT | CMD_FUNC_GAME_R);  
        return; 
    }else 
#endif  
    if(cd_type_loaded==CDROM)
    {   
        invalid_key();
        return;
    }
#endif
    
#ifndef MAKE_ONLY_UPDATE_CODE
//MAKE_ONLY_UPDATE_CODE:20050305 linrc only for make romA.bin(BootLoad).
//  printf("===================ircmd_angle=============\n");
#ifdef ANGLE_GOTO_IN_A_KEY
    
    if( (bIrSkipState1!=1) )//2004-5-5 15:16
    {
         bIrSkipState1 = 1;
         rep_ir_times = 0;
         bIrSkipCnt1 = 0;
         return;
    }
    else
    {
         bIrSkipState1 = 0;
         rep_ir_times = 0;
         bIrSkipCnt1 = 0;
    }
#endif//NEXT_FORWARD_IN_A_KEY

#ifdef PROGRAM_ANGLE_IN_ONE_KEY
 if ((cd_type_loaded == CDROM)||(cd_type_loaded == CDVCD10)
    ||(cd_type_loaded == CDVCD20)||(cd_type_loaded == CDSVCD)
     ||(cd_type_loaded == CDDA))
    {
    invalid_key();
    return;
    }
#endif 

#if defined(DIVX_DRM) && !defined(DIVX_DRM_AES_ONLY)
    if( cd_type_loaded == CDROM )
    {
        if( ( play_state == VCD_STATE_MP3_FILELIST )&&(GetCurrentFileType()== CDROM_MP4) )
        {
            osd_divx_drm_display(1,0);
            return;
        }else
        {
            invalid_key();
            return;
        }
    }

#endif  

#ifdef ANGLE_PAGE_DOWN   //zhongshan 050718 action:divx angle for register
     if(( cd_type_loaded == CDROM )&&((play_state == VCD_STATE_MP3_FILELIST)||(Is_MP3_STATE())))
     {
        FSGUI_UpdownFilePage(1);
        return;
     }
#endif

    UINT16 id; 

#ifdef USE_ANGLE_SWITCH_CHANNEL//xyy 2004-8-5 
/*huziqin 2004-4-29.set channel volume*/
#ifdef SUPPORT_APOGEE_AMP
#ifdef DOLBY_AMP_VOLUME_CTRL
    subvol_next_channel();
    return;
#endif  //DOLBY_AMP_VOLUME_CTRL
#endif
#endif

#if defined(FAT_Write_UI)||defined(CF_CARD_WRITE)//||defined(WRITE_USB)//liweihua 2003-10-30 10:30
    if((cd_type_loaded==CDROM)&&(pFsJpeg->ControlArea == CNT_AREA_FILE))
    {
        if (full_scrn & PERIPHERAL)
        {
            #ifdef NEW_INPUT_MENU
            input_str_clear_variable();
            #endif
            
            full_scrn &= (~PERIPHERAL);
            osd_init();
            pressnum_flag=0;
            #ifdef SPHE8202_ALL_TYPE_CARD_WRITE
            card_browse_sign = 1;   //dingzhy
            #endif
        }
        else
        {
            full_scrn |= PERIPHERAL;
            #if defined(SUPPORT_FILE_SYSTEM_MODE)||defined(SUPPORT_MP4)  //sunzhh add 041124
            if(IsOtherStatePlayMode())            
                ircmd_return();
            #endif 
#if defined(FAT_Write_UI)//sunzhh 20041126
            if ((pFsJpeg->gbfsSlide)&& (pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG))
            {
  
                ircmd_return();
                FSChangeGraphMode();                     
                FS_Return2Menu();

            }                         
#endif
            #if defined(STORAGE_WRITE_GUI)||defined(CARD_WRITE_GUI)            
                if((((detect_type&USB_DEVICE)&&(detect_type&0x1E))   //||((detect_type&CF_CARD_DEVICE!=0)&&(detect_type&0x1C!=0)))&&(media_type == MEDIA_CD))
                #ifdef CARD_SETUP_TYPE_3
                    ||((detect_type&CF_CARD_DEVICE)&&(detect_type&0x1C))
                #endif
               )&&(media_type != MEDIA_CARD)) 
            {
                     show_mediaswitch();
            }
            else
            #endif    
                show_switch(Select_Media);
            //Maoyong added for IR U/D/L/R/Sel proc func setting 2004-9-24 9:54
            SetFullscrnCmdFuncPtr( switch_up, switch_down, switch_left,
                                   switch_right, switch_select);
        }
        return;
    }
#endif

    /*
    #if defined(ADJUSTING_ACTION_VALID_RIGHT_NOW)
        #ifdef NEWSTYLE_WINDOW
            if ( (full_scrn&MESSAGE) && (action_click==2) ) // alan, 2003/8/28 05:32PM
                action_click = 0;
            else
        #endif
        action_click = 1; //Jeff 20030506
    #endif
    */
    #if defined(ADJUSTING_ACTION_VALID_RIGHT_NOW)
        #ifdef NEWSTYLE_WINDOW
            if ( (full_scrn&MESSAGE) && (action_click==2) )  
                action_click = 0;
            else
        #endif
        action_click = 1; //Jeff 20030506
    #else
        #ifdef NEWSTYLE_WINDOW
            if ( (full_scrn&MESSAGE) && (action_click==2) ) // alan, 2003/8/28 05:32PM
                action_click = 0;
        #endif
    #endif

    if(get_angle_Ns()>1)
    {//terry,2005/4/5 01:58

⌨️ 快捷键说明

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