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;}
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;
}