| module core.sys.linux.uinput; |
| |
| version (linux): |
| extern(C): |
| nothrow: |
| |
| import core.sys.posix.sys.ioctl; |
| |
| public import core.sys.linux.input; |
| public import core.sys.linux.input_event_codes; |
| |
| enum UINPUT_VERSION = 5; |
| enum UINPUT_MAX_NAME_SIZE = 80; |
| |
| struct uinput_ff_upload |
| { |
| uint request_id; |
| int retval; |
| ff_effect effect; |
| ff_effect old; |
| } |
| |
| struct uinput_ff_erase |
| { |
| uint request_id; |
| int retval; |
| uint effect_id; |
| } |
| |
| enum UINPUT_IOCTL_BASE = 'U'; |
| enum UI_DEV_CREATE = _IO(UINPUT_IOCTL_BASE, 1); |
| enum UI_DEV_DESTROY = _IO(UINPUT_IOCTL_BASE, 2); |
| |
| struct uinput_setup |
| { |
| input_id id; |
| char[UINPUT_MAX_NAME_SIZE] name; |
| uint ff_effects_max; |
| } |
| |
| enum UI_DEV_SETUP = _IOW!uinput_setup(UINPUT_IOCTL_BASE, 3); |
| |
| struct uinput_abs_setup |
| { |
| ushort code; |
| |
| input_absinfo absinfo; |
| } |
| |
| enum UI_ABS_SETUP = _IOW!uinput_abs_setup(UINPUT_IOCTL_BASE, 4); |
| |
| enum UI_SET_EVBIT = _IOW!int(UINPUT_IOCTL_BASE, 100); |
| enum UI_SET_KEYBIT = _IOW!int(UINPUT_IOCTL_BASE, 101); |
| enum UI_SET_RELBIT = _IOW!int(UINPUT_IOCTL_BASE, 102); |
| enum UI_SET_ABSBIT = _IOW!int(UINPUT_IOCTL_BASE, 103); |
| enum UI_SET_MSCBIT = _IOW!int(UINPUT_IOCTL_BASE, 104); |
| enum UI_SET_LEDBIT = _IOW!int(UINPUT_IOCTL_BASE, 105); |
| enum UI_SET_SNDBIT = _IOW!int(UINPUT_IOCTL_BASE, 106); |
| enum UI_SET_FFBIT = _IOW!int(UINPUT_IOCTL_BASE, 107); |
| enum UI_SET_PHYS = _IOW!(char*)(UINPUT_IOCTL_BASE, 108); |
| enum UI_SET_SWBIT = _IOW!int(UINPUT_IOCTL_BASE, 109); |
| enum UI_SET_PROPBIT = _IOW!int(UINPUT_IOCTL_BASE, 110); |
| |
| enum UI_BEGIN_FF_UPLOAD = _IOWR!uinput_ff_upload(UINPUT_IOCTL_BASE, 200); |
| enum UI_END_FF_UPLOAD = _IOW!uinput_ff_upload(UINPUT_IOCTL_BASE, 201); |
| enum UI_BEGIN_FF_ERASE = _IOWR!uinput_ff_erase(UINPUT_IOCTL_BASE, 202); |
| enum UI_END_FF_ERASE = _IOW!uinput_ff_erase(UINPUT_IOCTL_BASE, 203); |
| |
| enum UI_GET_SYSNAME(len) = _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 44, len); |
| |
| enum UI_GET_VERSION = _IOR!uint(UINPUT_IOCTL_BASE, 45); |
| |
| enum EV_UINPUT = 0x0101; |
| enum UI_FF_UPLOAD = 1; |
| enum UI_FF_ERASE = 2; |
| |
| struct uinput_user_dev { |
| char[UINPUT_MAX_NAME_SIZE] name; |
| input_id id; |
| uint ff_effects_max; |
| int[ABS_CNT] absmax; |
| int[ABS_CNT] absmin; |
| int[ABS_CNT] absfuzz; |
| int[ABS_CNT] absflat; |
| } |