diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-05 16:30:00 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-26 17:47:28 +1000 |
| commit | 016cc05381163b01f441e584e52b02809053e7b3 (patch) | |
| tree | 83e4169ee0a1261f173709b9468118cc7fe3442d /libevdev/libevdev.c | |
| parent | 31961e8d59b692c2d0f06d10b30b2c19b8e07b51 (diff) | |
| download | libevdev-016cc05381163b01f441e584e52b02809053e7b3.tar.gz | |
Add the remaining ev bits
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'libevdev/libevdev.c')
| -rw-r--r-- | libevdev/libevdev.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libevdev/libevdev.c b/libevdev/libevdev.c index 7e292f6..2dbc6c1 100644 --- a/libevdev/libevdev.c +++ b/libevdev/libevdev.c @@ -209,6 +209,31 @@ libevdev_set_fd(struct libevdev* dev, int fd) if (rc < 0) goto out; + rc = ioctl(fd, EVIOCGBIT(EV_SW, sizeof(dev->sw_bits)), dev->sw_bits); + if (rc < 0) + goto out; + + rc = ioctl(fd, EVIOCGBIT(EV_MSC, sizeof(dev->msc_bits)), dev->msc_bits); + if (rc < 0) + goto out; + + rc = ioctl(fd, EVIOCGBIT(EV_FF, sizeof(dev->ff_bits)), dev->ff_bits); + if (rc < 0) + goto out; + + rc = ioctl(fd, EVIOCGBIT(EV_SND, sizeof(dev->snd_bits)), dev->snd_bits); + if (rc < 0) + goto out; + + /* rep is a special case, always set it to 1 for both values if EV_REP is set */ + if (bit_is_set(dev->bits, EV_REP)) { + for (i = 0; i < REP_MAX; i++) + set_bit(dev->rep_bits, i); + rc = ioctl(fd, EVIOCGREP, dev->rep_values); + if (rc < 0) + goto out; + } + for (i = ABS_X; i <= ABS_MAX; i++) { if (bit_is_set(dev->abs_bits, i)) { struct input_absinfo abs_info; |
