summaryrefslogtreecommitdiff
path: root/libevdev/libevdev-util.h
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-06-05 16:03:54 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-06-26 17:47:28 +1000
commit31961e8d59b692c2d0f06d10b30b2c19b8e07b51 (patch)
tree00f83d185175c433c53eda0714f4f1b2696e52a4 /libevdev/libevdev-util.h
parent6019083a1aa7e32dd9834b09f840503a4bb2d6f6 (diff)
downloadlibevdev-31961e8d59b692c2d0f06d10b30b2c19b8e07b51.tar.gz
Use a macro for type_to_mask
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'libevdev/libevdev-util.h')
-rw-r--r--libevdev/libevdev-util.h55
1 files changed, 21 insertions, 34 deletions
diff --git a/libevdev/libevdev-util.h b/libevdev/libevdev-util.h
index b052597..2c4128d 100644
--- a/libevdev/libevdev-util.h
+++ b/libevdev/libevdev-util.h
@@ -53,30 +53,26 @@ set_bit_state(unsigned long *array, int bit, int state)
clear_bit(array, bit);
}
+#define max_mask(uc, lc) \
+ case EV_##uc: \
+ *mask = dev->lc##_bits; \
+ max = libevdev_get_event_type_max(type); \
+ break;
+
+
static inline int
type_to_mask_const(const struct libevdev *dev, unsigned int type, const unsigned long **mask)
{
int max;
switch(type) {
- case EV_ABS:
- *mask = dev->abs_bits;
- max = ABS_MAX;
- break;
- case EV_REL:
- *mask = dev->rel_bits;
- max = REL_MAX;
- break;
- case EV_KEY:
- *mask = dev->key_bits;
- max = KEY_MAX;
- break;
- case EV_LED:
- *mask = dev->led_bits;
- max = LED_MAX;
- break;
+ max_mask(ABS, abs);
+ max_mask(REL, rel);
+ max_mask(KEY, key);
+ max_mask(LED, led);
default:
- return -1;
+ max = -1;
+ break;
}
return max;
@@ -88,27 +84,18 @@ type_to_mask(struct libevdev *dev, unsigned int type, unsigned long **mask)
int max;
switch(type) {
- case EV_ABS:
- *mask = dev->abs_bits;
- max = ABS_MAX;
- break;
- case EV_REL:
- *mask = dev->rel_bits;
- max = REL_MAX;
- break;
- case EV_KEY:
- *mask = dev->key_bits;
- max = KEY_MAX;
- break;
- case EV_LED:
- *mask = dev->led_bits;
- max = LED_MAX;
- break;
+ max_mask(ABS, abs);
+ max_mask(REL, rel);
+ max_mask(KEY, key);
+ max_mask(LED, led);
default:
- return -1;
+ max = -1;
+ break;
}
return max;
}
+#undef max_mask
+
#endif