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

📄 ircmd.~c

📁 Sunplus 8202S source code.
💻 ~C
📖 第 1 页 / 共 4 页
字号:
/*************************************************************
** FILE
** ircmd.c
**
** DESCRIPTION
** splitted from ir.c, now all the IR (or global) functions
** are implemented here.
**
**   Create:   JJ
**   Maintain:   Kenny 2000/09/29
**               Terry 2003.02.24   move file header to ircmd_h.h
**                                  move util code to ircmd_util.c
**                                  move amp. code to ircmd_amp.c
**
****************************************************************/
#include "ircmd_h.h"
#include "gpio.h"
#include "asf_if.h"
#include "lbaif.h"
#include "sinf.h"
#include "timer.h"

//#ifdef OP_UI
//#include "menu_func.h"
//#include "infobanner_func.h"
//#include "infobanner_def.h"
//#endif//

#ifdef JPG_EFFECT
#include "jpegeffect.h"
#endif

#ifdef USER_LOGO
#include "userlogo.h"
#endif

#ifdef SDRAM_16Mb_Mode
#include "memmap.h"
#include "memmap0.h"
#endif

#ifdef SPHE8202_ALL_TYPE_CARD_WRITE
extern BYTE card_browse_sign;//dingzhy 4-11-18 9:40
#endif

//dtb in 20030915
#ifdef SUPPORT_MIDI
#include "fsmidi.h"
#ifdef SUPPORT_MIDI_MENU_SEL
#include "fsMidiUI.h"
#endif
#endif

#ifdef SUPPORT_MP4
//#include "drm.h"
    #ifdef DIVX_DRM
#include "DRM_UI.h"
    #endif

#include "avi_if.h"

#endif

#ifdef SUPPORT_MULTI_PARTITION//liweihua 2004-11-2 20:45
#include "playmode.h"
#endif

#ifdef DVB1000_OSD_MENU //Maoyong 2004-10-19 14:32
#include "dvbmenu.h"
#include "sp_dtv.h"
#endif

#ifdef VOL_LED//HIMAGE1251
BYTE nLed_index=0;
#endif

#ifdef  UPGRADE_TRAYOUT //joshua add    04-07-13
extern  int trayout_flag;
#endif

#ifdef ONLY_SOUND_FIELD_KEY//zhaoyanhua add 03-10-29 15:37
#include "dsp3_if.h"
#define MAX_PAGE_ITEM   4
#define MAX_ITEM_SEL    11
BYTE surround_type = 0;
extern  const UINT8 sound_item[MAX_PAGE_ITEM][MAX_ITEM_SEL];//include in sound.c
#endif

#ifdef ONLY_EQ_KEY//zhaoyanhua add 03-10-29 15:34
#include "dsp3_if.h"
#define MAX_PAGE_ITEM   4
#define MAX_ITEM_SEL    11
#define MAX_BAND        7
#define MAX_MUSIC       7
BYTE EQ_type = 0;
extern  const UINT8 sound_item[MAX_PAGE_ITEM][MAX_ITEM_SEL];//include in sound.c
extern  const UINT8 music_osd_set[MAX_MUSIC][MAX_BAND];
extern void SettingEqLevel(BYTE *);
extern void SettingEQType(BYTE type);
void SetEQ(void);
#endif

#if 0//def  CNTR_5SPK_VOLUME
static int tVolumeL,tVolumeR;   //wangfeng 2004-2-9 16:16
#endif

#ifdef MODIFY_OSD_SHOW_NEW_STYLE_WINDOW
extern void osd_init_newstyle_window_NTSC(void);
extern void osd_init_newstyle_window_PAL(void);
#endif

#ifdef IR_SWITCH_CD_USB_CF_OTHER  //dingzhy 04-10-22
EXTERN  BYTE now_valid_type;
#endif

#ifdef SUPPORT_PROLOGIC_II//zhaoyanhua add 2004-2-11 13:51
extern void setup_OffPrologic_II(void);    //setup_tab.c
extern int setup_IsPrologicOn();    
#endif// ifdef SUPPORT_PROLOGIC_II
   
#ifdef AUDIO_2CH_5_1CH//zhaoyanhua add 03-10-29 15:30
#define AUDIO_2CH  1
#define AUDIO_5_1CH  2
BYTE  ChannelFlag = AUDIO_2CH;
extern void AudioSet2chOutput(void);//setup_tab.c
extern void AudioSet5_1chOutput(void);//setup_tab.c
extern void AudioSetPrologic_IIOutput(void);//setup_tab.c
extern int setup_IsSpkDownmixOff(void);
extern int setup_IsSpkStereo(void);
extern UINT8 setup_GetPrologicII(void);
#endif

#ifdef DIV_GOTO_DISPLAY//zhaoyanhua add 03-10-24 20:12
BYTE SearchPage = 0;
extern void ShowSearchPage(BYTE page,BYTE need_hi);
#endif

#ifdef HANYANG_LR_CHANGE_PAGE
extern void FSGUI_File2DirArea(void);
#endif

#ifdef SETUP_ON_OPEN_VALID
BYTE OpenFlag=0;    //dingzhy for real open sign
#endif
 
#ifdef OFF_PROLIGIC_WHEN_TURN_KEY//zhaoyanhua add 2003-12-11 11:14
extern UINT8 setup_GetPrologicII(void);
#endif

#ifdef TWO_KEY_SWITCH_TWO_SUBTITLE  //added by wangwei,2004-9-29 13:47
extern void sup_select_subtitles(int n);
extern void sup_select_channel_2(int chn);
int twoSubTTFlag = 0;
int IDTWO = 0;
#endif  //TWO_KEY_SWITCH_TWO_SUBTITLE

#ifdef DYNAMIC_SPECTRUM    //fengjl 3-10-29 20:56
extern BYTE band_onoff;  
#endif

#ifdef NEW_PARENTAL_GUI//zhaoyanhua 2003-11-29 9:40
BYTE one_key_pass_play = 0;
#endif

#ifdef ROTATE_NOT_ZOOM//zhaoyanhua 2003-12-9 16:38
extern UINT8  Is_Rotate_State(void);
#endif

#if defined(SUPPORT_BASS_TREBLE)//xyy 2004-3-8
extern void ddx_ircmd_BassAdjust(int updown);
extern void ddx_ircmd_TrebleAdjust(int updown);
#endif

#ifdef JPEG_THUMBNAIL_MENU  //Maoyong 2004-8-13 20:09
extern BYTE ThunmnailChkValidPrevNext(BYTE rx);
#endif

#ifdef USER_MPEG_LOGO       //maoyong 2004.02.20
extern  BYTE    mpeg_logo_onoff;
#endif

#ifdef  POLLING_10MS_SAVE_RESUME    //Maoyong 2004.03.01
#define DVD_RSM_WRITE_SIZE  (sizeof(same_disc_vob11_pos) + sizeof(pDSV->rsm_info[0]) + sizeof(resumeMSF) )
BYTE    rsm_I2c_write_cnt = DVD_RSM_WRITE_SIZE;     
#endif

#ifndef DVDRELEASE
//#define IRCMD_DBG       1
#endif

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


#include "ircmd_util.c"
#include "rsm_util.h"

#ifdef SUPPORT_REP_READ    //Maoyong 2004.06.07
#include "read.h"
#include "func.h"
#endif

#ifdef  DYNAMIC_SPECTRUM //zhaoyanhua add 03-11-1 15:30
void ClearShowSpectrum(void);
#endif

#ifdef NEWSTYLE_WINDOW
#include "osd_arc.h"
#endif

#if defined(SUPPORT_CARD_STORAGE)||defined(SUPPORT_USB)||defined(SPHE8202_CARD_STORAGE)
#include "cardfs.h"
extern CARD_FILE    cardFile;//liweihua 2004-4-5
extern CARD_INFO    cardP;
#if defined(CF_CARD_WRITE) || defined(FAT_Write_UI)//|| defined(WRITE_USB)//liweihua mod 20031219
BYTE Select_Media;
BYTE pressnum_flag;
extern void show_switch(BYTE Select_Media);  //wuxiaofeng
//extern void show_switch(void);  //wuxiaofeng
#endif
#endif

#ifdef FAT_FILE_MODE
extern UINT16 fat_play_mode;
extern BYTE mode_menu_id;
#endif

#ifdef SUPPORT_SPI
#include "spi.h"
#endif

extern int setup_IsSpkDownmixOff(void);
extern void osd_init_prog(void);
extern void sound_init(void);
extern void sound_init_2(void);//wanghaoying 20030910
extern void run_save_total_sel(void);
extern void run_set_variable(void);
extern void run_set_variable(void);
extern void set_default_value(void);
extern void setup_SetPScan(void);
extern void SetIDETimeOut(UINT);    //wanghaoying 2003-8-12 16:08 to declaration
extern void setup_eq_display(UINT8 val);
extern void sound_set_EQ_again(void);//nono 4-7-22 18:09

#ifdef NEWSTYLE_WINDOW
extern void browse_DrawRightItem(void);
extern void osd_draw_region_arc(ARC_REGION_LOC *loc_var,BYTE updown);
extern void osd_init_newstyle_window(void);
extern void exe_show_time(void);
extern void osd_draw_rect(UINT32 xStart, UINT32 yStart, UINT32 xLen, UINT32 yLen, BYTE bkColor);
extern void exit_browse_func(void);
//zhaoyanhua add 2003-12-7 19:01
extern void updateAudioLanguage(void);
extern void updateSubtitle(void);
extern void updateRepeatMode(void);
extern void UpdateAngleInfo(void);
#ifdef  CLEAR_KEY_IN_WINDOW         //Maoyong add 2004.02.18
extern void browse_func_clear(void);
#endif
#endif

#ifdef CD_PLAYER        //liweihua add 2003-8-19 20:25
extern void show_cdplayer(void);
extern void osd_init_cdplayer(void);
#endif

#ifdef VIRTUAL_KEYBOARD     //liweihua 2003-9-16
extern void show_virtual_keyboard(void);
extern void hl_keyboard_button(BYTE SelectID);
extern void osd_draw_virtual_keyboard(int xStart, int yStart,BYTE r);
#endif

#ifdef USE_PROLOGIC_II_KEY
extern BYTE prologic_val;//clead 2003-8-7 
extern set_prologic_val(BYTE prologic_mode);
#endif

#ifdef IR_KEY_SET_VIDEO_MODE
extern void set_video_val(BYTE video_mode);
#endif//IR_KEY_SET_VIDEO_MODE

#ifdef CF_GPIO_CONTROL_COLOR
BYTE vfd_color; //wangap 20031031
#endif

#if defined(DISPLAY_REMAIN_TIME) //shawn 0227
int display_and_time=0;
BYTE display_flag = 0;
#endif

#ifdef SUPPORT_MIDI
extern int     iMidiSpeed;
#endif


#ifdef DVD_SEQ_PLAY
extern  BYTE   dvd_menu_play;//wanghaoying for warning msg//terry,2002/5/2 04:02PM,new dvd play mode
#endif

#ifdef DOUBLE_TITLE//susu add 2003-8-22 9:03
extern void exe_double_title(void);
extern void exit_double_title(void);
#endif

#ifdef SPHE1000
extern BYTE from4189;
extern BYTE	support_dvb_flag;
#endif

#ifdef DVB_SETUP
extern void SP_SetVolume(UINT8 volume);
#endif

#ifdef EASTWIN
extern UINT8 bINVERTER_POWER , bAMP_IS_ON, bPOWER_ON_MUTE_EXE;
#endif
/*Here deleted by xyy 2004-8-5*/

#if defined(NEXT_FORWARD_IN_A_KEY)||defined(NEW_NEXT_FORWARD_IN_A_KEY)
extern int rep_ir_times;
extern BYTE key_data_flag;
#endif



#ifdef SUPPORT_MP4

#include "irconfig.h"


int IsUserControlDisabledByTrickyPlay( UINT32 uiKey )
{   // 2004/10/07 yltseng
    if( ( GetCurrentFileType() == CDROM_MP4 ) && ( !AVI_SUPPORT_TRICKY_PLAY() ) &&
        ( ( play_state >= VCD_STATE_NORMAL ) && ( play_state <= VCD_STATE_SLOW ) ) )
    {       
        UINT16 aInvalidKey[] = { 
            IRC_BW_SLOW, IRC_AB, IRC_GOTO
            #ifdef TWO_FUN_IN_ONE_VFD_KEY
            IRC_VFD_NEXT, IRC_VFD_PREV, 
            #endif 
        };

        int i = 0;
        for( ; i <(int)(sizeof( aInvalidKey ) / sizeof( UINT16 )); i++ )
        {
            if( uiKey == aInvalidKey[i] )
                return 1;
        }
    }

    return 0;
}
#endif

/*Marked by maoyong 2004-9-24 9:51
//terry,2004/1/30 03:14PM
void call_full_scrn_fun(IRCMDFUNC *fun)
{
    UINT32 i = 0x01, j;

    for(j = 0; i < FULLOSD_MASK;)
    {
      #ifdef SUPPORT_FUNCTION_MENU
      if((full_scrn & SETUP_PLUS) || (setup_menu_plus_timer))
      {
          fun[2]();
          return;
      }
      else
      #endif //end #ifdef SUPPORT_FUNCTION_MENU
      if(full_scrn & i)
      {
        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
            AVD_SetMediaTimeout();//terry,2001/6/8 03:15PM ,we wait kernel code finish

#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);

⌨️ 快捷键说明

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