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

📄 ir.c

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 C
字号:


#include "config.h"
#include "global.h"

#ifdef  SUPPORT_IR

#include "regmap.h"

//#include "cfont.h"//no used
#include "mon.h"
#include "dsa.h"
#include "util.h"
#include "func.h"
#include "epp.h"
#include "sio.h"
#include "vfd.h"
#include "vfd.h"
#include "ir.h"
#include "ircmd.h"
#include "ircode.h"
#include "irdef.h"
#include "osd.h"
#include "auctrl.h"
#include "user_init.h"         //ZHX 032603
#include  "game.h"

extern void ReturnDesktop(void);

#define  IR_REPEAT_CODE

#ifdef SUPPORT_MP3STOP_SCREEN_SAFE 
extern void ReturnDesktop(void); 
#endif 
#ifdef DEBUG_VFDSEG
extern int vfd_digital;
#endif

//move to config.h
/*
*1.3:first time to release with Kernel 1.0
*1.4:4th release to NINTAUS and standard code
*/
#ifdef PASSWORD
const BYTE Password[5] = { IRC_FORWARD, IRC_BACKWARD, IRC_PREV, IRC_NEXT , IRC_NEXT};
#if CONFIG == CONFIG_COMBO_SVCD
const BYTE CustmVer[24] = { "718-1.14.01-STD.00-SDRAM" };   
#else
const BYTE CustmVer[22] = { "DIXIN718EDO V2.06.03" }; 
#endif
#endif

UINT32  delay_cnt;
extern UINT32 Servo_command(BYTE, BYTE, BYTE, BYTE);

extern void ShowTitle(void);         //ZHX 032603

#ifdef COMPRESS_MODULE
extern  void    LoadPrevProgDrv(void);
#endif

/*
**
*/
void ircmd_null()
{
}

const IRFUNC irc_func_table[IR_CODE_MAX_NUM] = {
/*00-0F*/
    ircmd_stop,
    ircmd_repeat_ab,
    ircmd_fuchang,
    ircmd_fudu,
    ircmd_eject_toggle,
    ircmd_null,                                     //ircmd_1,//reduce 11
    ircmd_null,                                     //ircmd_2,
    ircmd_null,                                     //ircmd_3,
    ircmd_null,                                     //ircmd_4,
    ircmd_null,                                     //ircmd_5,
    ircmd_null,                                     //ircmd_6,
    ircmd_null,                                     //ircmd_7,
    ircmd_null,                                     //ircmd_8,
    ircmd_null,                                     //ircmd_9,
    ircmd_null,                                     //ircmd_0,
    ircmd_p10,
/*10-1F*/
    ircmd_goto,
    ircmd_playmode_toggle,
    ircmd_prog,
    ircmd_mute,
    ircmd_step,
    ircmd_resume,
    ircmd_return,
    ircmd_repeat_all,
    ircmd_freeze,
    ircmd_remaintime,
#ifdef IR_INTRO_ON
    ircmd_intro,
#endif
    ircmd_preview,
    ircmd_slowmotion,
#ifdef SUPPORT_ESP
    ircmd_ESP_OnOff,
#else
    ircmd_language,
#endif
    ircmd_display,
    ircmd_display_format_toggle,
/*20-2F*/
    ircmd_zoom_up,
    ircmd_zoom_down,
    ircmd_zoom_left,
    ircmd_zoom_right,
    ircmd_zoom,
    ircmd_shuffle,
    ircmd_channel,
    ircmd_volume_up,
    ircmd_score,
    ircmd_backward,
    ircmd_forward,
    ircmd_pause,
    ircmd_volume_down,
    ircmd_setup,
    ircmd_prev,
    ircmd_next,
/*30-3F*/
    ircmd_play,
    ircmd_subtitle,
    ircmd_audio_stream,
    ircmd_auto_manual,
#if CONFIG == CONFIG_COMBO_SVCD
    ircmd_ThreeD_effect,
#else
    ircmd_effect,
#endif
    ircmd_play_pause,

#ifdef POWER_KEY    //zhyf test 2-9-12 17:17
   ircmd_power,    
#endif

#ifdef ECHO_KEY
    ircmd_echo_delay_up,
    ircmd_echo_delay_dn,
#endif
#ifdef IR_5_PLUS
    ircmd_p5,
#endif
#ifdef IR_BOOK_MARK
    ircmd_set_book_mark,
    ircmd_play_bookmark,
#endif
#ifdef IR_SET_ERR_LEV
    ircmd_set_err_lev,
#endif
#ifdef IR_REAL_ZOOM
    ircmd_real_zoom,
#endif
#ifdef IR_KEY_FUNC
    ircmd_key_up,
    ircmd_key_down,
    ircmd_key_reset,
#endif                                //ZHX 033003
#ifdef USE_PP5_KEY
    ircmd_pp5,
#endif
    ircmd_shuqian,
    ircmd_null,
};

/*
**
*/
void call_ir_func(BYTE rx)
{

    UINT32  key_s = ir_invalid_table[rx];

#ifdef POWER_KEY
    if ((system_state == SYSTEM_POWER) && (rx != IRC_POWER))
    	return;
#endif               //ZHX 060303 No OSD in power down.

#ifdef PASSWORD
    if(CheckUIState(VCD_STATE_STOP) && (!IsKYProg()))   //jhuang 2002/8/21
    {
        static BYTE count = 0;
        if(rx == Password[count])
        {
            count++;
            if(count == 4)
            {
                psprintf(RegionValStr[1],"%s",CustmVer);
                PrintOsdMsg(0, 1, 10, 1, CH_N);
                count=0;
                return;
            }
        }
        else if((rx != Password[0]) && (count == 1))
            count = 0;
    }
#endif

    //skip IR command, when read NES file action. 2002/5/13 03:33PM
    #if CONFIG == CONFIG_COMBO_SVCD
    if((bDiscType  &  NES_DN_ACTION) && (rx != IRC_EJECT))
    #else
    if((bDiscType  &  NES_DN_ACTION))
    #endif
        return;

#ifdef SUPPORT_SCREEN_SAFE

if(screen_safe)
{
    screen_safe=0;
 #ifdef SUPPORT_MP3STOP_SCREEN_SAFE   
  if(cd_type_loaded!=CDROM)    
    ShowTitle();  
  else 
    ReturnDesktop();  
 #else
   ShowTitle();  
 #endif   
}    
safe_step=0; 
#endif


#ifdef IR_SETUP_MENU_ON
    if(IsKYSetup())                             /*jhuang 2002/4/27 */
    {
        switch (rx)
        {
#ifdef NINTAUS
            case IRC_SETUP_MENU:
            case IRC_FORWARD:               //UP
            case IRC_BACKWARD:              //DOWN
            case IRC_PREV:                      //LEFT
            case IRC_NEXT:                      //RIGHT
#else
            case IRC_ZOOM:
            case IRC_ZOOM_UP:
            case IRC_ZOOM_DOWN:
            case IRC_ZOOM_LEFT:
            case IRC_ZOOM_RIGHT:
#endif
                break;
            default:
                //au_eq(EQ_OFF);                  // 闽超EQ//define EQ_OFF 0
                ExitSetup();                
                //close setup menu , check re-load program function
                #ifdef COMPRESS_MODULE
                    if (!CheckUIProgState(PROG_IDLE))
                        LoadPrevProgDrv();
                #endif
                break;
        }
    }
#endif


#ifdef NINTAUS
#ifdef DIR_LIST_4WAY                        //jhuang 2002/8/22
    if(cd_type_loaded == CDROM)
    {
        if(rx == IRC_FORWARD)               //up
            rx = IRC_ZOOM_UP;
        else if(rx == IRC_BACKWARD) //down
            rx = IRC_ZOOM_DOWN;
        else if(rx == IRC_PREV)         //left
            rx = IRC_ZOOM_LEFT;
        else if(rx == IRC_NEXT)         //right
            rx = IRC_ZOOM_RIGHT;
    }
#endif
#endif

    #ifdef IR_SETUP_MENU_ON
    if((key_s & SETUP_MENU) && IsKYSetup())   //jhuang 2002/3/21
    {
        //epp_write("IN SETUP MENU...\n");

        invalid_key();
        return;
    }
    #endif
    /*  Check Disc Type First   */
    if(key_s & DISC_TYPE(cd_type_loaded))
    {
        //epp_write("DISC TYPE DISMATCH...\n");


        invalid_key();
        return;
    }

    // for 絪祘play

⌨️ 快捷键说明

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