ir_parser.c

来自「凌阳8202T的红外接收代码及LED屏的驱动代码」· C语言 代码 · 共 2,095 行 · 第 1/5 页

C
2,095
字号
                        FSGUI_Menu();
                   #ifdef PMP_UI
                   if((pFsJpeg->gifsState == FS_STATE_INIT)||
                      (pFsJpeg->gifsState == FS_STATE_MP3))
                    {
                        if(pFsJpeg->gifsState == FS_STATE_MP3)
                        update_current_file_index();
                     FSGUI_Refresh_PMP();
                     FSGUI_DirList(pFsJpeg->hdd_dir_current);
                     ShowHL(); 
                    }
                   #else
                    FSGUI_Refresh();
                   #endif
                   
                   
                    
                        
                }
            }
        }
        else
        {
            s_uiNeedReadFileInformation = FALSE;
        }
    }
    #endif//#ifndef USE_SETUP_SELECT_FONT//shenyj add for alco 11/28
}
#else
#define ChangeFontByAngleKey( rx )
#endif

#ifdef MONE_DSP24_SHOW_CODEC_NAME_BY_ANGLE_KEY  // 2005/02/18 yltseng
static inline void ShowDSPCodecNameByAngleKey( BYTE rx )
{
//Steven 2007/04/11 mark
//#ifdef SUPPORT_SCORE_GPIO_DETECT_MIC  /// for 8202l support score jiangxl 20070205
//		extern int mic_counter;
//		int testscore = 0 ;
//#endif
    if( rx == IRC_ANGLE )
    {     
        extern void DSP_GetCodecIDString( char* pBuf );
        extern void DSP_GetCodecVersionString( char* pBuf );
        
        char aID[32];
        DSP_GetCodecIDString( aID );
    
        char aVer[4];
        DSP_GetCodecVersionString( aVer );
        
        char aBuf[36];
        psprintf( aBuf, "%s %s", aID, aVer );
        
        psprintf(linebuf, "dsp info : %s\n", aBuf );
        io_write_wait(linebuf);
        ConvertLowerCaseToUpperCase( aBuf );
        osdshow( REGION1, aBuf );
    }
}
#else
#define ShowDSPCodecNameByAngleKey( rx )
#endif

#ifdef MONE_SHOW_JPEG_RESOLUTION_BY_ANGLE_KEY
static inline void ShowJpegResolutionByAngleKey( BYTE rx )
{
    if( rx == IRC_ANGLE )
    {   
        UINT16 w, h;  
        
        jpg_get_actual_resoluation(&w, &h);
        delay_1ms(20);
        
        char wBuf[12];
        psprintf( wBuf, "%d %c", w, 'X');
        
        char hBuf[6];
        psprintf( hBuf, "%d [%d %d]", h, jpg_get_downsample_rate()>>16, jpg_get_downsample_rate()&0xffff);
        
        strcat1(wBuf, hBuf);
        
        osdshow( REGION1, wBuf );
    }
}
#else
#define ShowJpegResolutionByAngleKey( rx )
#endif
static inline UINT32 RejectBySWD( BYTE rx __attribute__((unused)))
{
    BYTE res;
    res = FALSE;
    #ifdef SUPPORT_PLAY_SWD
    extern BYTE SWD_CheckIrcmd(BYTE rx);

    if( START_POLLING_SWD )
    {
        res = SWD_CheckIrcmd(rx);
    }
    #endif

    return res;
}
extern BYTE GetCurrentFileType();

#ifdef SUPPORT_DIVX6
//#include "divx6_if.h"
extern UINT32 divx6_menu_exist;
extern UINT32 divx6_menu_playback;
#endif    


#ifdef   SUPPORT_MALATA_INVALID_KEY//tianye 200607
#include "user_if.h"  

int mlata_ircmd_pre_paser(BYTE rx);
int mlata_ircmd_pre_paser(BYTE rx)
{
	 int check_result = 0;
   
	#ifdef  CDROM_TITLE_MENU_INVALID_KEY  
	if((cd_type_loaded == CDROM)&&(
		(rx == IRC_TITLEMENU)||((rx == IRC_PBC)) ))
    	{
		check_result  = 1;
    	}
    	#endif//end=> #ifdef  CDROM_TITLE_MENU_INVALID_KEY

       #ifdef  SOME_KEY_INVALID_WHEN_WRONG_REGION
       else  if((dvd_error==REGION_ERR)&&
	   	       ((rx == IRC_PAUSEPLAY)||(rx == IRC_GOTO)||(rx == IRC_TITLEMENU)
	   	       ||(rx == IRC_DISPLAY)||(rx == IRC_P10)||(rx == IRC_PBC)))
    	{
       	check_result  = 1;
    	}
	#endif//end=> #ifdef  SOME_KEY_INVALID_WHEN_WRONG_REGION   

       #ifdef  SOME_KEY_INVALID_WHEN_TITLE_MENU
       else  if(cd_type_loaded==CDDVD)
    	{
       	if(((disp_time ==0)||(get_tt_info(DISP_TT) == 0)||(get_tt_info(DISP_CH)==0)||(HL_exist))
			&&((rx == IRC_PREV)||(rx == IRC_GOTO)||(rx == IRC_AB)/*||(rx == IRC_STOP)*/
	   	       ||(rx == IRC_SLOW)||(rx == IRC_ZOOM)))
    		{
       		check_result  = 1;
    		}
    	}
	#endif//end=> #ifdef  SOME_KEY_INVALID_WHEN_TITLE_MENU   

   	return   check_result;

}
#endif//endif=> #ifdef   SUPPORT_MALATA_INVALID_KEY
#ifdef SUPPORT_iPOD_DOCKING
void call_ir_func_ipod(UINT8 rx)
{
    UINT8 inputKey = IPOD_INPUT_KEY_NONE;

    if((system_state == SYSTEM_DOING_IPOD_MODE)&&(!(full_scrn & SOUND))) 
    {    
        //menu control key
        if (rx == IRC_RETURN)
            inputKey = IPOD_INPUT_KEY_MENU;   
        else if (rx == IRC_UP)
            inputKey = IPOD_INPUT_KEY_UP;
        else if (rx == IRC_DOWN)
            inputKey = IPOD_INPUT_KEY_DOWN;
        else if ( rx == IRC_LEFT )
        	inputKey = IPOD_INPUT_KEY_LEFT;
        else if ( rx == IRC_RIGHT )
        	inputKey = IPOD_INPUT_KEY_RIGHT;
        else if (rx == IRC_SELECT)
            inputKey = IPOD_INPUT_KEY_ENTER;
        //play control key
        else if (rx == IRC_PAUSE)
            //inputKey = IPOD_INPUT_KEY_PLAYPAUSE;
            inputKey = IPOD_INPUT_KEY_PAUSE;
        else if ( (rx == IRC_PLAY)||(rx == IRC_PLAY_RESUME) )
            inputKey = IPOD_INPUT_KEY_PLAY;
        else if (rx == IRC_PREV)
            inputKey = IPOD_INPUT_KEY_PREV_TRACK;
        else if (rx == IRC_NEXT)
            inputKey = IPOD_INPUT_KEY_NEXT_TRACK;
        else if (rx == IRC_FORWARD)
            inputKey = IPOD_INPUT_KEY_STR_FF;    
        else if (rx == IRC_BACKWARD)
            inputKey = IPOD_INPUT_KEY_STR_FB;
        else if (rx == IRC_SETUP)                     //stop ff or fb
            inputKey = IPOD_INPUT_KEY_END_REW; 
        else if (rx == IRC_STOP)   
            inputKey = IPOD_INPUT_KEY_STOP;
        else if (rx == IRC_SUBP)
            inputKey = IPOD_INPUT_KEY_CHNAGE_MODE;
        else if(rx == IRC_POWER)
        	   inputKey = IPOD_INPUT_KEY_POWER;
    
        ipod_handle_input(inputKey);
    }
}
#endif

extern int do_USB_init(void);
extern int do_SD_MMC_init(void);
extern int do_MS_init(void);

#ifdef MP4KOK_FUNCTION_SELECT //tanhuan
extern BYTE Filekok_Gui_Ir_hander(BYTE bIrvalue);
#endif

#ifdef SUPPORT_FILEKOK
int filekok_not_open;
#endif

void ircmd_pre_paser(BYTE rx)
{
	
	
#ifdef MP4KOK_FUNCTION_SELECT //tanhuan
	

	
	 if( Is_FileKok_Gui() )
   {
   
       if(Filekok_Gui_Ir_hander( rx )) return;
   }
#endif

#ifdef SUPPORT_FILEKOK
extern BYTE mp4_kok_disc;
	if ((rx == IRC_RETURN)&&(play_state == VCD_STATE_MP3_FILELIST) && (GetCurrentFileType()== CDROM_MP4)&&(mp4_kok_disc==1))
{

extern void FileKok_MainLoop();

filekok_not_open=1;
  
ircmd_trayout();
    
filekok_not_open=0;
return;
   
}		
#endif	
/* BEGIN: Added by xgqi, 2007/7/11 */
#ifdef SUPPORT_FILESEARCH
extern  BYTE bUiRefreshFinished;
  if(FileSearch_Gui_IsOn())
  {
        if(FileSearch_Ircmd_API(rx))
        {
            return;
        }
  }
  if ((rx == IRC_ZOOM)&&( ((cd_type_loaded == CDROM)||(media_type == MEDIA_CARD))/*&& (((system_state == SYSTEM_SETUP_BROWSE))||(system_state >= SYSTEM_BROWSE))*/
		&& FileSearch_Gui_IsOff( )&&(!jpg_is_decoding_process()))&&!FileSearch_Is_NotPermitIn())
	
    {
        FileSearch_Gui_Entrance();
        return;
    }
#endif
/* END:   Added by xgqi,2007/7/11 */

#ifdef SUPPORT_FILE_COPYING
#ifdef FILE_COPYING_USE_GUI
   if( Is_FileCopy_Gui() )
   {
       if(Filecopy_Gui_Ir_hander( rx )) return;
   }
   if (((rx == IRC_SUBP) && (cd_type_loaded == CDROM) && (media_type == MEDIA_CD))
   )
    {
        if((pFsJpeg->ControlArea == CNT_AREA_DIR)||(pFsJpeg->ControlArea == CNT_AREA_FILE))//wangmin 061221
        {
            if(!((((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_FULL_SCREEN_MODE))||(pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER))&&(play_state != VCD_STATE_MP3_FILELIST)))
            {
                 if(pFsJpeg->g_nJpegMode == JPEG_THUMBNAIL_MODE)
          	   {
          	       invalid_key();
          	       return;
                 }
                  #ifdef DIRECT_ACCESS_MEDIA//added by wangwei, 2006-10-10 17:10
                  if( is_usb_media_exists())
                  {
	                  if( FileCopy_check_device() >=0 )
	                  {
	                      Filecopy_Gui_Enterance();
	                  }                    
		    }  
		    else
		    {
                      psprintf(RegionValStr[REGION2], "NO DEVICE");
                      PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
                      return;
                   }	
				  return;
		    /*
				  
                      if (is_usb_media_exists())
                      {
                          UsbTestReady();
						  Filecopy_Gui_Enterance();
                      }
                      else
                      {
                          psprintf(RegionValStr[REGION2], "NO DEVICE");
                          PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
                          return;
                      }
                      */
                  #else     		  
                  if( FileCopy_check_device() == 1)
                  {
                  
                      Filecopy_Gui_Enterance();
                  }                 
      	           return;
                 #endif
            }
        }
    }
#else
    printf_w("wangmin rx =%d  .cd_type_loaded=%d .media_type =%d.\n",rx,cd_type_loaded,media_type);
    if(((rx == IRC_SUBP)||(rx == IRC_RIPPING)) && (cd_type_loaded == CDROM))//&& (media_type == MEDIA_CD))
    {
        if(pFsJpeg->gifsState != FS_STATE_INIT)//muwei add ,when in PreStop or Stop,(Break from the FS GUI State),Don't Copy
        if((pFsJpeg->ControlArea == CNT_AREA_DIR)||(pFsJpeg->ControlArea == CNT_AREA_FILE))//wangmin 061221
        {
            if(!((((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_FULL_SCREEN_MODE))||(pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER))&&(play_state != VCD_STATE_MP3_FILELIST)))
            {     
            #ifdef DIRECT_ACCESS_MEDIA//added by wangwei, 2006-10-10 17:10
/* BEGIN: Modified by xg.qi, 2007/5/24 */
		// printf("Current  media_status is %d\n",media_status);
	        if(media_status ==STATUS_DISC)
	        {
                   if ( is_usb_media_exists( ) )
                   {	               
                       UsbTestReady();
                   }
/* BEGIN: Added by xg.qi, 2007/5/17 */
#ifdef SUPPORT_CD2CARD_COPY
		     else if (is_card_media_exists())
                   {
                       card_test_ready_notBrowse();
                   }
#endif
/* END:   Added by xg.qi, 2007.5.17 */
                   else
                   {
                        psprintf(RegionValStr[REGION2], "NO DEVICE");    
			   PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);

                        return;
                    }
	        }
#ifdef SPHE8202_CARD_STORAGE
		 else if(media_status == STATUS_CARD)
		 {
		     		Record_MediaInfo();
                     SLAVE_ENUMERATED = 0;       //when do usb init ,it be setted to true.
                     if (is_usb_media_exists())
                    {	               
                        UsbTestReady();
                    }   
                    else
                    {
                        psprintf(RegionValStr[REGION2], "NO DEVICE");    
			   			PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);

                        return;
                    }

		 }
#endif
		 else
		 {
                    invalid_key();
                    return;		     
		 }
/* END: Modified by xg.qi, 2007/5/24 */		 
            #endif//DIRECT_ACCESS_MEDIA
                
        fs_activate_copy();
                
        if (fs_is_activated_copy())
        {
            funcBtn =  pFsJpeg->gifsFuncBtn;
            /*wangmin add for jpeg copy flow*/
            if((pFsJpeg->gifsFuncBtn == FS_FUNC_JPEG)&&(pFsJpeg->g_nJpegMode == JPEG_PREVIEW_MODE))
            {
               pFsJpeg->gbfsJpgBreak = 1;
               pFsJpeg->gifsFuncBtn = FS_FUNC_COPYING;
            }
            else
            {
                pFsJpeg->gifsFuncBtn = FS_FUNC_COPYING;
                AVD_SetMediaInterrupt();
            }
        }
                
        return;
    }
        }
    }

#endif

#endif

    UINT8 need_run_cmd=1,display_again=0;//terry,0513 
    UINT32 invalid=ir_invalid_state[rx];
    #ifdef IR_DBG
    //printf("ir pre-parser in\n");    
    #endif

    #ifdef IPTV_MODEL   //temp added 08/03/10 for all key pass
    invalid = 0;
    #endif

⌨️ 快捷键说明

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