input.h

来自「AMLOGIC DPF source code」· C头文件 代码 · 共 217 行

H
217
字号
/*****************************************************************
**                                                             	**
**  Copyright (C) 2004 Amlogic,Inc.                            	**
**  All rights reserved                                        	**
**        Filename : input.h /Project:AVOS 	driver 				** 
**        Revision : 1.0                                       	**
**                                                             	**
*****************************************************************/
#ifndef _AM_INPUT_H
#define _AM_INPUT_H

#define NEC_REMOTE
#define PHILIPS_REMOTE
#define KONKA_REMOTE
#define SLAVE_I2C_REMOTE
#define UART_REMOTE
#define KEYBOARD
#define TOUCH_SCREEN



#define INPUT_VALID				0x01
#define INPUT_REPEAT_FLAG		0x02

#define KEY_DOWN				0x01
#define KEY_UP					0x02
#define MOUSE_MOVE				0x03
#define MOUSE_L_BUTTON_DOWN		0x04
#define MOUSE_L_BUTTON_UP		0x05
#define MOUSE_R_BUTTON_DOWN		0x06
#define MOUSE_R_BUTTON_UP		0x07
#define MOUSE_M_BUTTON_DOWN		0x08
#define MOUSE_M_BUTTON_UP		0x09
#define MOUSE_SCROLL_UP			0x0A
#define MOUSE_SCROLL_DOWN		0x0B


typedef struct {
	INT16U		input_type ; //to define which type we get, key up, key down, or mouse move, and so on
	INT16U		input_flag ; //to define input if valide or if it repeat key
	INT32U		input_data ; //input value
	INT32U		input_modifers ; //special key, like shift, ctrl, alt and so on
} INPUTDATA ;

typedef struct {
	INT8U		id ; //to define which type we get, key up, key down, or mouse move, and so on
	INT8U		address ; //to define input if valide or if it repeat key	
	INT8U		input_data ; //input value
	INT8U		send_bps ; //bps value
	INT8U		send_hour ; //send_hour value
	INT8U		send_minute ; //send_minute value	
	INT8U		rec_hour ; //rec_hour value
	INT8U		rec_minute ; //rec_minute value		
	INT8U		output_data ; //special key, like shift, ctrl, alt and so on
	INT8U       name_source ;
	INT8U       name_channel ;
	INT8U       name_year ;
	INT8U       name_month ;
	INT8U       name_day ;
	INT8U       name_language ;
	INT8U       ack ;
} I2C_slave ;

//for NEC remote ioctl define 
#define NEC_FRAME_MASK_IGNORE_ALL					0x0
#define NEC_FRAME_MASK_IGNORE_CUSTOMER_CODE			0x1
#define NEC_FRAME_MASK_IGNORE_DATA_CODE				0x2
#define NEC_FRAME_MASK_IGNORE_NONE					0x3

#define IOCMD_NEC_SET_LEADER_ACTIVE_TIME_SCOPE		0x1 //high 16bit is max time(microsecond), low 16bit is min time(microsecond)
#define IOCMD_NEC_SET_LEADER_IDLE_TIME_SCOPE		0x2 //high 16bit is max time(microsecond), low 16bit is min time(microsecond)
#define IOCMD_NEC_SET_REPEAT_LEADER_IDLE_TIME_SCOPE	0x3 //high 16bit is max time(microsecond), low 16bit is min time(microsecond)
#define IOCMD_NEC_SET_ZERO_BIT_IDEN_TIME_SCOPE		0x4 //high 16bit is max time(microsecond), low 16bit is min time(microsecond)
#define IOCMD_NEC_SET_REMOTE_CLOCK					0x5 //input system clock(MIPS) to caculate remote clock
#define IOCMD_NEC_SET_FRAME_MASK					0x6
#define IOCMD_NEC_RESET								0x7
#define IOCMD_NEC_HOLD_FIRST_KEY					0x8
#define IOCMD_NEC_HOLD_LAST_KEY						0x9
#define IOCMD_NEC_SET_IR_DEC_BIT0_TIME				0xa
#define IOCMD_NEC_SET_IR_DEC_CONTROL				0xb
#define IOCMD_NEC_SET_IR_REPEAT_RATE_CTRL           0xc
#define IOCMD_KEYBOARD_SET_TIME_INTERVAL			0xd

#ifdef KEYBOARD
typedef INT32S (*KEYBOARDIRQPROC)();
avfs_device_driver keyboard_initialize(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver keyboard_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver keyboard_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver keyboard_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver keyboard_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
void AWRegisterKeyboardIRQ(KEYBOARDIRQPROC IRQ_handle);
#define DEVICE_TABLE_KEYBOARD \
    { \
        keyboard_initialize, \
        keyboard_open, \
        keyboard_close, \
        keyboard_read, \
        NULL, \
        keyboard_ioctl \
    }
#endif

#ifdef NEC_REMOTE
avfs_device_driver nec_remote_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver nec_remote_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver nec_remote_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver nec_remote_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver nec_remote_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver nec_remote_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);

#define DEVICE_TABLE_NEC_REMOTE \
    { \
        nec_remote_init, \
        nec_remote_open, \
        nec_remote_close, \
        nec_remote_read, \
        nec_remote_write, \
        nec_remote_ioctl \
    }
#endif

#ifdef PHILIPS_REMOTE
avfs_device_driver philips_remote_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver philips_remote_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver philips_remote_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver philips_remote_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver philips_remote_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver philips_remote_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);

#define DEVICE_TABLE_PHILIPS_REMOTE \
    { \
        philips_remote_init, \
        philips_remote_open, \
        philips_remote_close, \
        philips_remote_read, \
        philips_remote_write, \
        philips_remote_ioctl \
    }
#endif

#ifdef KONKA_REMOTE
avfs_device_driver konka_remote_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver konka_remote_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver konka_remote_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver konka_remote_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver konka_remote_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver konka_remote_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);

#define DEVICE_TABLE_KONKA_REMOTE \
    { \
        konka_remote_init, \
        konka_remote_open, \
        konka_remote_close, \
        konka_remote_read, \
        konka_remote_write, \
        konka_remote_ioctl \
    }
#endif

#ifdef SLAVE_I2C_REMOTE
avfs_device_driver Slave_i2c_remote_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver Slave_i2c_remote_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver Slave_i2c_remote_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver Slave_i2c_remote_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver Slave_i2c_remote_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver Slave_i2c_remote_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);

#define DEVICE_TABLE_SLAVE_I2C_REMOTE \
    { \
        Slave_i2c_remote_init, \
        Slave_i2c_remote_open, \
        Slave_i2c_remote_close, \
        Slave_i2c_remote_read, \
        Slave_i2c_remote_write, \
        Slave_i2c_remote_ioctl \
    }
#endif

#ifdef UART_REMOTE
avfs_device_driver uart_remote_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver uart_remote_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver uart_remote_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver uart_remote_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver uart_remote_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver uart_remote_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
#define DEVICE_TABLE_UART_REMOTE \
    { \
        uart_remote_init, \
        uart_remote_open, \
        uart_remote_close, \
        uart_remote_read, \
        uart_remote_write, \
        uart_remote_ioctl \
    }
#endif
#ifdef TOUCH_SCREEN
typedef INT16U (*TOUCHSCREENGET)();
avfs_device_driver touch_screen_init(avfs_device_major_number major, avfs_device_minor_number minor, void *arg) ;
avfs_device_driver touch_screen_open(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver touch_screen_close(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver touch_screen_read(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver touch_screen_write(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);
avfs_device_driver touch_screen_ioctl(avfs_device_major_number major, avfs_device_minor_number minor, void *arg);

#define DEVICE_TABLE_TOUCH_SCREEN \
    { \
        touch_screen_init, \
        touch_screen_open, \
        touch_screen_close, \
        touch_screen_read, \
        touch_screen_write, \
        touch_screen_ioctl \
    }
#endif

#endif //end of _AM_INPUT_H

⌨️ 快捷键说明

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