亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ir_drv.c_org

?? 凌陽8202T的紅外接收代碼及LED屏的驅動代碼
?? C_ORG
?? 第 1 頁 / 共 3 頁
字號:
/*****************************************************************************
** FILE
** ir_drv.c
**
** DESCRIPTION
** process IR keys and send to ir_cmd_xxx for actual process
**
**   Creater  : Terry
**   Maintain : Terry
**   ------------------------------------
**   Revision History
**   ------------------------------------
**   2003.02.12  seperate driver/parser from ir.c
**   2003.02.25  use define function
**   2004.07.23  maintain program
**
****************************************************************************/

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

#include "cfont.h"
#include "func.h"
#include "sio.h"
#include "ircmd.h"
#include "ircode.h"
#include "user_init.h" 
#include "iop.h"
#include "atapi_if.h"
#include "macro.h"
#include "osd.h"
#include "bitop.h"
#include "timer.h"
#ifdef TAS3001_AMP
#include "ti3001.h"
#endif

#ifdef TAS5026_AMP
#include "ti5026.h"
#endif
#ifdef DVB_SETUP
#include "../driver/message.h"
#endif

//=========================================================================================
// debug option define 
//=========================================================================================
#define WATCH_CUSTID    0
//#define DEBUG_IR_CODE //if you want to see which defined code for key, unmark it
#ifndef DVDRELEASE
#define IR_DBG	1
#define IRCMD_DBG
#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


//=========================================================================================
// var. decalre 
//=========================================================================================
extern const BYTE ir_mapcode[256];  
extern UINT32 save_srn_start_t;
extern void ircmd_pre_paser(BYTE rx);
int rep_ir_times=0;

#ifdef SUPPORT_8202_DVB
#include "..\dvb_h\dvb_func.h"
#endif

#ifdef SUPPORT_DVD_NATIVE_GAME
extern UINT8 Dvb_ircmd_pre_parser(BYTE);
#endif

#ifdef QISHENG_DVD	// alan, 2003/9/7 07:08PM
static BYTE pressed=IRC_NULL;
static UINT16 irc_value;
static BYTE not_rdy_times=0;
#endif    


#ifdef TEST_VFD_PANNEL_AND_KEY//lijd 2005-5-16 16:19
BYTE  TestIrData=0;	 
extern  BYTE   Test_Stop_flag;
#endif
//=========================================================================================
// define function
//=========================================================================================
#ifdef IR_PHILIPS       
#define IOP_IR_DATA() ((regs0->iop_data[6]>>6)&0x5f)
#define TRANS_IR_CODE(rx) (rx&0x003f)
#elif defined(IR_PHILIPS_EASTECH)
		#define IOP_IR_DATA()((regs0->iop_data[6]&0xff00)>>8)
       #define TRANS_IR_CODE(rx)(rx & 0x00ff)
#elif  defined(IR_THOMSON)		//wurh modify for 8bit thomson ir keycode 2006-3-1 04:43下午
#define IOP_IR_DATA() ((BYTE)(regs0->iop_data[6]))
#define TRANS_IR_CODE(rx) (BYTE)(rx&0x00ff)
#elif  defined(IR_THOMSON_6BIT)       //wurh add for 6bit thomson ir keycode 2006-3-1 04:45下午
#define IOP_IR_DATA() ((BYTE)(regs0->iop_data[6]))
#define TRANS_IR_CODE(rx) (BYTE)(rx&0x003f)
#elif  defined(IR_M50560)
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) reverse_fun(rx)
#elif  defined(IR_AS1213)
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) reverse_fun(rx)
#elif  defined(IR_M3004)||defined(IR_ORITRON)||defined (IR_THOMSON_ANGUS)//LIJD 2005-6-20 14:08
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) reverse_fun(rx)
#elif  defined(IR_KONKA)//LIJD 2005-2-4 13:24
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) (BYTE)(rx&0x00ff)
#elif  defined(IR_TDP101)//lijd 2005-3-25 10:16
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) (BYTE)(rx&0x00ff)
#elif  defined(IR_HT220MCU)//2005-4-14 14:57 zhoulin
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) (BYTE)(rx&0x00ff)
#else
#define IOP_IR_DATA() (regs0->iop_data[6])
#define TRANS_IR_CODE(rx) reverse_fun(rx)
#endif

#if defined(IR30)||defined(MINTON_LCD_PANEL_6322_KEY) 			//nono 2003-9-26 11:33 for YILI.
#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT2))
#elif defined(DESAY_PHILIPS_IR)//CLEAD 2004-3-23 
#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT2)&&(unCustId!=IR_ADDR_PATT3)&&(unCustId!=IR_ADDR_PATT4))
#elif defined(IR_GBM_PHILIPS)//yth 2004-3-23 
//#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT2)&&(unCustId!=IR_ADDR_PATT3)&&(unCustId!=IR_ADDR_PATT4))
#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT3))//gerry modified it,when TV mode,these keys should not be functional,2004-7-29 22:31
#elif defined(OP_DVD5121_PANEL) //qinhua add for 5121
#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT_T))
#elif  defined(IR_PHILIPS_EASTECH)		//wangmin add for philhps rc6
#define CHK_CUST_ID(unCustId) ((unCustId!=IR_ADDR_PATT)&&(unCustId!=IR_ADDR_PATT2)&&(unCustId!=IR_ADDR_PATT3)&&(unCustId!=IR_ADDR_PATT4)&&(unCustId!=IR_ADDR_PATT5))
#else

	#ifdef IR_TOOL
	#define CHK_CUST_ID(unCustId) (unCustId!=IRAddr)
	#else
#define CHK_CUST_ID(unCustId) (unCustId!=IR_ADDR_PATT)

#endif 
#endif 

#ifdef IR_ADDR_PATT_ERR_SHOW_INVALID//nono 2-9-23 13:08
#define show_ir_custid_err() invalid_key()
/*//sunzhh marked for when "CHK_CUST_ID(unCustId)" judged error once in a while with the correct ir 2007/04/06
static inline void show_ir_custid_err(UINT16 unCustId)   // Added by LuoLiuyi at 2006-8-17
{
    if(!safe_on)	//Jack 07/02/01 added
    {
       	osd_init__();
		psprintf(linebuf,"IR ADDR UNMATCH R:%04x VS S:%04x", unCustId,IR_ADDR_PATT);
		strcpy(RegionValStr[REGION1], linebuf);
		PrintOsdMsg(STR_OS_SPACE, REGION1, 4, 1);	
	}
*/
#else
#define show_ir_custid_err();                       // Removed by LuoLiuyi at 2006-8-17
#endif

#if defined(IR30) //philip ir 			//2-10-15 11:12
void adj_ir_rxcode(UINT8 chk,UINT16 *rx,UINT16 offset)
{
    if(chk)
	{
		switch(*rx)
		{
			case 0x30:
			case 0x32:
			case 0x33:
			case 0x34:
				*rx+=offset;
			break;
			default:
				break;
		}
	}
}
#elif defined(MINTON_LCD_PANEL_6322_KEY) ////nono 2003-9-26 11:33 for YILI.
void adj_ir_rxcode(UINT8 chk,UINT16 *rx,UINT16 offset)
{
    if(chk)
	{
		switch(*rx)
		{
			case 0x41:
			case 0x57:
			case 0x00:
			case 0x10:
			case 0x4F:
			case 0x4B:
				*rx=*rx+offset+0x6C;
			break;
			default:
				break;
		}
	}
}
#else
#define adj_ir_rxcode(chk,rx,offset);
#endif
//TCL STANDBY

static inline void ir_tcl_standby(void)
{
#ifdef TCL_STANDBY    
        static BYTE powerkeystate=0;
        BYTE flag;
        flag = (regs0->gpio_in[2/16] >> (2%16)) & 0x01;
        if((!flag ) && powerkeystate)
        {
                call_ir_func(IRC_POWER);
                regs0->sft_cfg1 &= ~(0x1 << 3);//gpio 3 enable
                regs0->gpio_master[ 3/16 ] &= ~(0x1 << (3%16));//gpio 3 for iop
                regs0->gpio_master[ 2/16 ] &= ~(0x1 << (2%16));//gpio 2 for iop
        }
        powerkeystate = flag;
#endif        
}



//=========================================================================================
// debug function
//=========================================================================================
/*
* display ir id
*/
#ifndef IR_TOOL
#ifdef  DEBUG_IR_CODE
static inline void watch_ir_id(UINT16 rx)
{
    psprintf(linebuf, "IR:%02x, F:%02x", rx, ir_mapcode[rx]);
    strcpy(RegionValStr[REGION1], linebuf);
    PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
}
#else
#define  watch_ir_id(rx);   
#endif
#else
	static inline void watch_ir_id(UINT16 rx)
	{
	    psprintf(linebuf, "IR:%02x, F:%02x", rx, ir_mapcode[rx]);
	    strcpy(RegionValStr[REGION2], linebuf);
	    PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
	    //printf("IR:%02x,F:%02x\n",rx, ir_mapcode[rx]);
	    printf("%02x\n",rx);
	}
#endif
/*
* display ir's customer id
*/
#ifndef IR_TOOL
#if WATCH_CUSTID            
static inline void watch_ir_custm_id(UINT16 unCustId)
{
    psprintf(linebuf,"ID : %04x", unCustId);           
    strcpy(RegionValStr[REGION2], linebuf);
	PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
}
#else
#define watch_ir_custm_id(x);  
#endif
#else
	static inline void watch_ir_custm_id(UINT16 unCustId)
	{
	    	psprintf(linebuf,"ID : %04x", unCustId);           
	    	strcpy(RegionValStr[REGION2], linebuf);
		PrintOsdMsg(STR_OS_SPACE, REGION2, 1, 1);
		printf("%04x\r\n",unCustId);
			if(watch_ir_id_value)
			IRAddr=unCustId;
	}
#endif
/*
* monitor can input ir function
*/
#ifndef DVDRELEASE
UINT32 monir;
static inline void mon_ir(void)
{	  
    if (monir){
        call_ir_func(monir & 0xff);
        monir=0;
    }
}
#else
#define mon_ir();
#endif


#ifdef MALATA_KEY
#include "fsNAV.h"
BYTE malata_key_check(BYTE rx);
BYTE malata_key_check(BYTE rx)
{
//20051207  tiany test  
//if(rx == IRC_1) rx =  IRC_EJECT;
//if(rx == IRC_2) rx =  IRC_UP_NEXT ;
//if(rx == IRC_0) rx =  IRC_DOWM_PREV ;
//if(rx == IRC_5) rx =  IRC_LEFT_FR ;
//if(rx == IRC_7) rx =  IRC_RIGHT_FF ;
#ifdef ONE_TWO_THREE_FOUR_CHANGE//tianye 200607
if(rx == IRC_1) {xxx = 0; yyy = 0;}
if(rx == IRC_2) {xxx = 0; yyy = 1;}
if(rx == IRC_3) {xxx = 1; yyy = 0;}
if(rx == IRC_4) {xxx = 1; yyy = 1;}
#endif//end=> #ifdef ONE_TWO_THREE_FOUR_CHANGE

//--------------------------
 BYTE  flag_direction_key = 0;
 if((rx == IRC_AUD_LANGUAGE)&&(cd_type_loaded!=CDDVD))
 {

       if((rx == IRC_AUD_LANGUAGE)&&(cd_type_loaded == CDROM)&& (pFsJpeg->gifsFuncBtn == FS_FUNC_OTHER))
       {
            rx = IRC_AUD_LANGUAGE  ;
	 }
	 else
	 {
   		rx =  IRC_CHANNEL;
 	 }
 }


 if((full_scrn&SETUP)||(full_scrn&CUSTM)||(Is_Dvb_State())||(full_scrn&GOTO)
   ||/*(is_menu()&&(cd_type_loaded==CDDVD))||*/(vpp_zoom>=ZOOMIN_BASE && vpp_zoom<=ZOOMIN_MAX)
   ||((cd_type_loaded==CDROM)&&(pFsJpeg->gifsState != FS_STATE_OTHER))
   ||((HL_exist)&&(cd_type_loaded==CDDVD))//20060206 tiany add fix err
   )//20060525 tiany mark  /*(is_menu()&&(cd_type_loaded==CDDVD))||*/ for key err
 {
   flag_direction_key = 1;
 }
 switch(rx)
 {
   case(IRC_UP_NEXT): 
   {
      if(flag_direction_key)
	  {
        	rx = IRC_UP;
	  }
	  else
	  {
	    	rx = IRC_NEXT;
	  }
      break;
   }		 
   case(IRC_DOWM_PREV):
   {
	  if(flag_direction_key)
	  {
        	rx = IRC_DOWN;
	  }
	  else
	  {
	    	rx = IRC_PREV;
	  }
      break;
   }	   
   case(IRC_LEFT_FR): 
   {
	  if(flag_direction_key)
	  {
        	rx = IRC_LEFT;
	  }
	  else
	  {
	    	rx = IRC_BACKWARD;
	  }
      break;
   }
   case(IRC_RIGHT_FF): 
   {
	  if(flag_direction_key)
	  {
        	rx = IRC_RIGHT;
	  }
	  else
	  {
	    	rx = IRC_FORWARD;
	  }
      break;
   }
   default:
			break;
    };
   return rx; 
} 
#endif//end=>#ifdef MALATA_KEY


//=========================================================================================
// ir driver function
//=========================================================================================
/*
* encode ir id
*/
int reverse_fun(int rx)
{
    rx=rx&IRC_MASK;

    return revn(rx,8);
}
/*
** FUNCTION
** reset_ir
**
** DESCRIPTION
** reset IR interface (and queue) according to irconfig.h
*/
void    reset_ir(void)
{
#if defined(QISHENG_DVD)||defined(SUPPORT_IR_GAME)	//alan, 2003/9/7 08:05PM
	regs0->iop_data[IR_PORT]|=IrRepeatRate(6);
#elif defined(HOLD_VOL_KEY_FAST_REPEAT)
    regs0->iop_data[IR_PORT]|=IrRepeatRate(1);
#elif defined(IR_GBM_PHILIPS)||defined(IR_PHILIPS)//gerry modified philips ir timing for lijd's suggestion,2004-8-4 16:35
	regs0->iop_data[IR_PORT]|=IrRepeatRate(2);
#elif ( defined(IR_M3004)||defined(IR_ORITRON) )&& !defined (OP_DVD5121_PANEL)
    regs0->iop_data[IR_PORT]|=IrRepeatRate(8);	
#elif  defined(OP_DVD5121_PANEL) //qinhua ,add for5121
   regs0->iop_data[IR_PORT]|=IrRepeatRate(1);		
#elif  defined(IR_THOMSON)//wurh add 2006-3-21 05:31下午
    regs0->iop_data[IR_PORT]|=IrRepeatRate(8);
#elif  defined(IR_KONKA)//nono 20050224
    regs0->iop_data[IR_PORT]|=IrRepeatRate(8);
#elif  defined(IR_TDP101)//lijd 2005-3-25 10:17
    regs0->iop_data[IR_PORT]|=IrRepeatRate(6);      
#elif  defined(IR_THOMSON_ANGUS)
    regs0->iop_data[IR_PORT]|=IrRepeatRate(6);      
#else
    regs0->iop_data[IR_PORT]|=IrRepeatRate(4);
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区视频在线看| 日韩视频免费观看高清完整版 | 亚洲综合免费观看高清完整版在线 | 国产二区国产一区在线观看| 在线欧美小视频| 久久综合色一综合色88| 亚洲在线一区二区三区| 成人毛片在线观看| 久久久久久久综合狠狠综合| 午夜视频一区二区| 欧美亚洲另类激情小说| 国产精品福利电影一区二区三区四区| 蜜桃av一区二区三区| 欧美亚洲国产一区二区三区va| 国产日韩欧美麻豆| 韩国精品一区二区| 欧美va在线播放| 香蕉久久夜色精品国产使用方法| 99热这里都是精品| 欧美国产成人精品| 国产精品99久| 久久精品欧美日韩精品| 精一区二区三区| 日韩精品一区二区三区蜜臀| 日产国产欧美视频一区精品| 欧美在线免费播放| 亚洲欧美偷拍三级| 99久久er热在这里只有精品15| 国产亚洲欧美一区在线观看| 国产在线精品国自产拍免费| 精品免费国产一区二区三区四区| 日韩av一区二区在线影视| 欧美日韩一区三区| 香蕉久久夜色精品国产使用方法 | 91丝袜美女网| 国产精品久久久久久妇女6080| 国产麻豆一精品一av一免费| 国产肉丝袜一区二区| 国产福利一区二区三区视频在线| 久久久蜜桃精品| 成人av一区二区三区| 国产精品丝袜黑色高跟| 成人午夜在线播放| 亚洲精品视频在线看| 欧洲中文字幕精品| 日本中文在线一区| 久久蜜桃一区二区| www.成人网.com| 一区二区高清视频在线观看| 欧美日韩一二三| 国产一区日韩二区欧美三区| 久久精品欧美日韩| 色一情一伦一子一伦一区| 亚洲小说春色综合另类电影| 日韩一区二区免费高清| 不卡高清视频专区| 亚洲国产cao| 国产日韩欧美一区二区三区乱码 | 丁香六月久久综合狠狠色| 亚洲天堂成人网| 91精品国产综合久久香蕉麻豆| 麻豆精品在线视频| 亚洲国产精品ⅴa在线观看| 欧美影院午夜播放| 国产主播一区二区| 一二三四社区欧美黄| 精品播放一区二区| 欧洲av一区二区嗯嗯嗯啊| 韩国v欧美v亚洲v日本v| 亚洲综合色区另类av| 国产亚洲欧美日韩日本| 欧美三区在线观看| 成人a级免费电影| 日韩av成人高清| 中文字幕在线播放不卡一区| 欧美一区二视频| 欧美专区日韩专区| 国产suv精品一区二区三区| 亚洲不卡av一区二区三区| 久久精品男人天堂av| 欧美一区二区三区公司| 一本一道久久a久久精品| 国产在线播放一区三区四| 亚洲一区二区视频| 国产精品国产三级国产普通话三级| 在线成人午夜影院| 色av一区二区| 成人午夜在线视频| 国产精品自拍三区| 久久国产婷婷国产香蕉| 亚洲第一搞黄网站| 亚洲九九爱视频| 国产欧美日韩视频一区二区| 欧美成人精品福利| 日韩午夜在线播放| 欧美顶级少妇做爰| 欧美在线播放高清精品| 91丨porny丨最新| 成人黄色网址在线观看| 国产一区二区网址| 经典三级在线一区| 久草这里只有精品视频| 久久不见久久见中文字幕免费| 日本欧美韩国一区三区| 天堂午夜影视日韩欧美一区二区| 一区二区三区在线播放| 一区二区三区中文字幕在线观看| 国产精品久久久99| 欧美国产日韩在线观看| 久久久国际精品| 久久久久九九视频| 中文字幕乱码久久午夜不卡 | 成人丝袜高跟foot| 岛国一区二区在线观看| 国产成人精品亚洲日本在线桃色| 国内成人免费视频| 国产精品99久久久久久宅男| 国产美女精品一区二区三区| 国产激情一区二区三区四区| 国产91色综合久久免费分享| 福利视频网站一区二区三区| 成人午夜视频在线| 色综合久久久久综合| 欧美日韩国产高清一区二区三区| 精品视频色一区| 欧美一区二区三区在线观看| 日韩欧美成人一区二区| 欧美成人免费网站| 国产精品丝袜在线| 亚洲综合区在线| 免费看黄色91| 国产福利一区二区三区视频 | 国产精品国产自产拍高清av王其| 一色桃子久久精品亚洲| 亚洲国产一区二区三区青草影视| 日本欧美在线观看| 国产成人久久精品77777最新版本| 91在线观看美女| 欧美久久婷婷综合色| 精品久久久久久久一区二区蜜臀| 国产欧美综合在线观看第十页| 亚洲欧美综合在线精品| 视频一区视频二区在线观看| 九一九一国产精品| 成人动漫在线一区| 欧美日韩一区二区在线观看| 久久久无码精品亚洲日韩按摩| 国产精品九色蝌蚪自拍| 亚洲va国产va欧美va观看| 国产成人在线观看免费网站| 欧美亚洲尤物久久| 精品日韩在线一区| 亚洲黄色在线视频| 国产原创一区二区| 欧美性一二三区| 中文字幕免费一区| 免费三级欧美电影| 91福利在线播放| 国产丝袜在线精品| 午夜精品福利在线| 高清在线观看日韩| 欧美一区二区在线免费播放| 国产精品久久毛片av大全日韩| 美女任你摸久久| 欧美三级乱人伦电影| 中文字幕永久在线不卡| 成人综合在线观看| 欧美日韩国产色站一区二区三区| 国产精品丝袜一区| 国产原创一区二区三区| 欧美放荡的少妇| 尤物av一区二区| 成人av动漫网站| 久久久久久电影| 麻豆传媒一区二区三区| 欧美色综合久久| 亚洲女同一区二区| 成人高清av在线| 久久看人人爽人人| 蜜臀精品一区二区三区在线观看 | 视频一区视频二区中文字幕| 日本韩国精品一区二区在线观看| 国产精品国产自产拍高清av | 黑人巨大精品欧美一区| 欧洲另类一二三四区| 一区二区三区中文免费| 不卡视频一二三| 中文字幕一区二区三区乱码在线| 国产成人午夜精品影院观看视频 | 成人va在线观看| 亚洲国产精品v| www.在线成人| 国产精品超碰97尤物18| 成人激情开心网| 中文字幕中文字幕在线一区| 成人精品免费视频| 中文字幕一区二区三区蜜月| av不卡免费电影| 亚洲天堂免费在线观看视频| 91色视频在线|