diff options
| author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-05 16:03:54 +1000 |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-06-26 17:47:28 +1000 |
| commit | 31961e8d59b692c2d0f06d10b30b2c19b8e07b51 (patch) | |
| tree | 00f83d185175c433c53eda0714f4f1b2696e52a4 /libevdev/libevdev-util.h | |
| parent | 6019083a1aa7e32dd9834b09f840503a4bb2d6f6 (diff) | |
| download | libevdev-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.h | 55 |
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 |
