123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 |
- #ifndef _INPUT_H
- #define _INPUT_H
- #include <sys/time.h>
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <linux/types.h>
- #include "input-event-codes.h"
- struct input_event {
- struct timeval time;
- __u16 type;
- __u16 code;
- __s32 value;
- };
- #define EV_VERSION 0x010001
- struct input_id {
- __u16 bustype;
- __u16 vendor;
- __u16 product;
- __u16 version;
- };
- struct input_absinfo {
- __s32 value;
- __s32 minimum;
- __s32 maximum;
- __s32 fuzz;
- __s32 flat;
- __s32 resolution;
- };
- struct input_keymap_entry {
- #define INPUT_KEYMAP_BY_INDEX (1 << 0)
- __u8 flags;
- __u8 len;
- __u16 index;
- __u32 keycode;
- __u8 scancode[32];
- };
- struct input_mask {
- __u32 type;
- __u32 codes_size;
- __u64 codes_ptr;
- };
- #define EVIOCGVERSION _IOR('E', 0x01, int)
- #define EVIOCGID _IOR('E', 0x02, struct input_id)
- #define EVIOCGREP _IOR('E', 0x03, unsigned int[2])
- #define EVIOCSREP _IOW('E', 0x03, unsigned int[2])
- #define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2])
- #define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
- #define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2])
- #define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
- #define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len)
- #define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len)
- #define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len)
- #define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len)
- #define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len)
- #define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len)
- #define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len)
- #define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len)
- #define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len)
- #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len)
- #define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo)
- #define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo)
- #define EVIOCSFF _IOW('E', 0x80, struct ff_effect)
- #define EVIOCRMFF _IOW('E', 0x81, int)
- #define EVIOCGEFFECTS _IOR('E', 0x84, int)
- #define EVIOCGRAB _IOW('E', 0x90, int)
- #define EVIOCREVOKE _IOW('E', 0x91, int)
- #define EVIOCGMASK _IOR('E', 0x92, struct input_mask)
- #define EVIOCSMASK _IOW('E', 0x93, struct input_mask)
- #define EVIOCSCLOCKID _IOW('E', 0xa0, int)
- #define ID_BUS 0
- #define ID_VENDOR 1
- #define ID_PRODUCT 2
- #define ID_VERSION 3
- #define BUS_PCI 0x01
- #define BUS_ISAPNP 0x02
- #define BUS_USB 0x03
- #define BUS_HIL 0x04
- #define BUS_BLUETOOTH 0x05
- #define BUS_VIRTUAL 0x06
- #define BUS_ISA 0x10
- #define BUS_I8042 0x11
- #define BUS_XTKBD 0x12
- #define BUS_RS232 0x13
- #define BUS_GAMEPORT 0x14
- #define BUS_PARPORT 0x15
- #define BUS_AMIGA 0x16
- #define BUS_ADB 0x17
- #define BUS_I2C 0x18
- #define BUS_HOST 0x19
- #define BUS_GSC 0x1A
- #define BUS_ATARI 0x1B
- #define BUS_SPI 0x1C
- #define BUS_RMI 0x1D
- #define BUS_CEC 0x1E
- #define BUS_INTEL_ISHTP 0x1F
- #define MT_TOOL_FINGER 0
- #define MT_TOOL_PEN 1
- #define MT_TOOL_PALM 2
- #define MT_TOOL_MAX 2
- #define FF_STATUS_STOPPED 0x00
- #define FF_STATUS_PLAYING 0x01
- #define FF_STATUS_MAX 0x01
- struct ff_replay {
- __u16 length;
- __u16 delay;
- };
- struct ff_trigger {
- __u16 button;
- __u16 interval;
- };
- struct ff_envelope {
- __u16 attack_length;
- __u16 attack_level;
- __u16 fade_length;
- __u16 fade_level;
- };
- struct ff_constant_effect {
- __s16 level;
- struct ff_envelope envelope;
- };
- struct ff_ramp_effect {
- __s16 start_level;
- __s16 end_level;
- struct ff_envelope envelope;
- };
- struct ff_condition_effect {
- __u16 right_saturation;
- __u16 left_saturation;
- __s16 right_coeff;
- __s16 left_coeff;
- __u16 deadband;
- __s16 center;
- };
- struct ff_periodic_effect {
- __u16 waveform;
- __u16 period;
- __s16 magnitude;
- __s16 offset;
- __u16 phase;
- struct ff_envelope envelope;
- __u32 custom_len;
- __s16 *custom_data;
- };
- struct ff_rumble_effect {
- __u16 strong_magnitude;
- __u16 weak_magnitude;
- };
- struct ff_effect {
- __u16 type;
- __s16 id;
- __u16 direction;
- struct ff_trigger trigger;
- struct ff_replay replay;
- union {
- struct ff_constant_effect constant;
- struct ff_ramp_effect ramp;
- struct ff_periodic_effect periodic;
- struct ff_condition_effect condition[2];
- struct ff_rumble_effect rumble;
- } u;
- };
- #define FF_RUMBLE 0x50
- #define FF_PERIODIC 0x51
- #define FF_CONSTANT 0x52
- #define FF_SPRING 0x53
- #define FF_FRICTION 0x54
- #define FF_DAMPER 0x55
- #define FF_INERTIA 0x56
- #define FF_RAMP 0x57
- #define FF_EFFECT_MIN FF_RUMBLE
- #define FF_EFFECT_MAX FF_RAMP
- #define FF_SQUARE 0x58
- #define FF_TRIANGLE 0x59
- #define FF_SINE 0x5a
- #define FF_SAW_UP 0x5b
- #define FF_SAW_DOWN 0x5c
- #define FF_CUSTOM 0x5d
- #define FF_WAVEFORM_MIN FF_SQUARE
- #define FF_WAVEFORM_MAX FF_CUSTOM
- #define FF_GAIN 0x60
- #define FF_AUTOCENTER 0x61
- #define FF_MAX_EFFECTS FF_GAIN
- #define FF_MAX 0x7f
- #define FF_CNT (FF_MAX+1)
- #endif
|