From: Peter Hutterer Date: Wed, 5 Jun 2013 06:03:54 +0000 (+1000) Subject: Use a macro for type_to_mask X-Git-Tag: libevdev-0.2~108 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=31961e8d59b692c2d0f06d10b30b2c19b8e07b51;p=platform%2Fupstream%2Flibevdev.git Use a macro for type_to_mask Signed-off-by: Peter Hutterer --- 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