#ifndef _SIS_IR_H #define _SIS_IR_H #include #define CONTINUE_KEY_HEAD 0 #define CONTINUE_KEY_START_END 1 #define CONTINUE_KEY_START 2 #define CONTINUE_KEY_END 3 #define CONTINUE_KEY_REPEAT 4 #define SINGLE_KEY_END 5 typedef enum { Phillips = 0, Nec, Sony, JVC, Sharp, Sampo, Phillips_RC6, RCA, Toshiba, X_SAT, Toshiba2, NEC_SAMSUNG, Konka, Panasonic, Sharp2, Phillips_RC6_6A, TC9012, Others } IR_CODING; typedef struct _Message { UINT8 Protocol; UINT8 Address; UINT8 Address_; UINT8 Command; UINT8 ContinueKey; }Message, *PMessage; typedef struct _IR_NODE { UINT8 Address; UINT8 Address_; INT8 Name[20]; UINT8 Command; //UINT8 ContinueKey; struct _IR_NODE *next; }IR_NODE; typedef struct _IR_IOC_IOData { UINT8 Length; Message Databuf[30]; } IR_IOC_IOData, *IR_IOC_IODataPtr; typedef struct _IR_IOC_IORecData { ULONG msg; ULONG tick_ms; }IR_IOC_IORecData, *IR_IOC_IORecDataPtr; #define SISIR_DEV_FILE "/dev/sisir" #define SISIR_DEV_NUM 1 // Max number of device #define IR_Auto_Test 1 // SiS Defined I/O Control Signal #define IR_IOC_MAGIC 'z' #define IR_IOC_BASE 196 #define IR_IOC_Get_Data _IOR(IR_IOC_MAGIC, IR_IOC_BASE+0x01, IR_IOC_IOData) #define IR_IOC_Get_Protocol _IOR(IR_IOC_MAGIC, IR_IOC_BASE+0x02, IR_CODING) #define IR_IOC_ClsAndroid _IOWR(IR_IOC_MAGIC, IR_IOC_BASE+0x03, unsigned int) #if IR_Auto_Test #define IR_IOC_Set_Data _IOW(IR_IOC_MAGIC, IR_IOC_BASE+0x04, Message) #define IR_IOC_EnableIR _IO(IR_IOC_MAGIC, IR_IOC_BASE+0x05) #define IR_IOC_DisableIR _IO(IR_IOC_MAGIC, IR_IOC_BASE+0x06) #endif #define IR_IOC_Get_AndroidData _IOR(IR_IOC_MAGIC, IR_IOC_BASE+0x07, IR_IOC_IOData) #define IR_IOC_Get_RecData _IOR(IR_IOC_MAGIC, IR_IOC_BASE+0x07, IR_IOC_IORecData) #endif // end of #ifndef _SIS_IR_H