/*=============================================
  * Copyright (c)      Realtek Semiconductor Corporation, 2005
  * All rights reserved.
  * ============================================ */

/*================= File Description ================= */
/**
 * @file
 * 	This file is for global structure's declaration.
 *
 * @author 	$Author: hillwang $
 * @date 	$Date: 2006-06-23 14:50:40 +0800 (星期五, 23 六月 2006) $
 * @version 	$Revision: 1044 $
 * @ingroup 	input
 */

/**
* @addtogroup input
* @{
*/

#ifndef  _IR_H
#define  _IR_H
/*================ Module dependency  =============== */

/*===================== Module Dependency  ================== */

/*========================== Types ========================== */

/*======================== Definitions ====================== */
//--------------------------------------------------
// Definitions of IR Key
//--------------------------------------------------
#define CUSTOM_CODE     	0x6163
#define IR_POWER_KEY    	0x01
#define IR_FUNC_DISPLAY		0x06
#define IR_FUNC_MUTE    	0x1e
#define IR_FUNC_SLEEP 		0x20
#define IR_MENU_KEY     	0x1f
#define IR_TV_KEY     	0x0c
#define IR_FUNC_NUM1    	0x11
#define IR_FUNC_NUM2    	0x12
#define IR_FUNC_NUM3    	0x13
#define IR_FUNC_NUM4    	0x14
#define IR_FUNC_NUM5    	0x15
#define IR_FUNC_NUM6    	0x16
#define IR_FUNC_NUM7    	0x17
#define IR_FUNC_NUM8    	0x18
#define IR_FUNC_NUM9    	0x19
#define IR_FUNC_JUMP    	0x1c
#define IR_FUNC_NUM0    	0x1a
#define IR_FUNC_ENTER   	0x42//ok
#define IR_UP_KEY       	0x40
#define IR_LEFT_KEY     	0x41
#define IR_RIGHT_KEY    	0x43
#define IR_DOWN_KEY   	0x44

//#define IR_MPX_KEY     	0x27

#define IR_FUNC_VOLINC  	0x04
#define IR_FUNC_VOLDEC  0x05
#define IR_FUNC_CHDEC   	0x03
#define IR_FUNC_CHINC   	0x02


#define IR_FUNC_REDBUTTON		0x3a
#define IR_FUNC_GREENBUTTON	0x3b
#define IR_FUNC_YELLOWBUTTON	0x3c
#define IR_FUNC_BLUEBUTTON		0x3d

#define IR_FUNC_INDEX			0x0f
#define IR_FUNC_TELETEXT		0x4a
#define IR_FUNC_REVEAL			0x4b
#define IR_FUNC_SIZE			0x0b
#define IR_FUNC_MIX				0x28
#define IR_FUNC_HOLD			0x46
#define IR_FUNC_SUBPAGE		0x29

#define IR_FUNC_SOURCE  	51

#define IR_FUNC_INPUT		0x08

#define IR_FUNC_MTS			0x27

#define IR_FUNC_DISP    	0x57
#define IR_FUNC_SELECT  	0x97
#define IR_FUNC_EXIT   		0x0D
#define IR_FUNC_EDIT		0x1b
#define IR_FUNC_NUM100		0x09
#define IR_FUNC_VERSION		0x5c

#define IR_HeaderLow    	0x01
#define IR_HeaderHigh     	0x02
#define IR_Command        	0x03
#define IR_Detect           0x04



/*=====================  Extern Variables =================== */

//--------------------------------------------------
// Global Variables
//--------------------------------------------------
#ifdef _IR_C
    #define EXTERN
#else
    #define EXTERN   extern
#endif


EXTERN BYTE xdata ucTimerCnt;

//EXTERN BYTE xdata tem[6];
//EXTERN BYTE xdata pre_tem[6];
//EXTERN BYTE xdata tem[4];
//EXTERN BYTE xdata pre_tem[4];
EXTERN BYTE idata lowCount,highCount,IrBit,IrByte,BitStart,ByteStart,IrHandlerEnable,repeatIntervalTooLong,repeatIntervalCount,repeatIntervalCountLow,repeatCounter,IrStatus,now_bIR_GPIO;
EXTERN BYTE xdata pre_bIR_GPIO;

#undef EXTERN

/*======================= Extern Functions ================== */
BYTE CIRKeyScan(void);
void CIrHandler(void);
void CIrHeaderLow(void);
void CIrHeaderHigh(void);
void CIrCommand(void);
void CIrDetect(void);
void CIrReset(void);
#endif // #ifndef _IR_H

/**
 *
 * @}
 */

