Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- test/tablet-validity.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
diff --git a/test/tablet-validity.c b/test/tablet-validity.c index ee07dae..1146f58 100644 --- a/test/tablet-validity.c +++ b/test/tablet-validity.c @@ -135,6 +135,45 @@ static int tablet_has_lr_buttons(WacomDevice *device) return 0; } +static int verify_led_groups(WacomDevice *device) +{ + const WacomStatusLEDs *leds; + int nleds, led_idx; + int nbuttons, btn_idx; + uint32_t group_flags = 0; + + leds = libwacom_get_status_leds(device, &nleds); + if (nleds == 0) + return 1; + + for (led_idx = 0; led_idx < nleds; led_idx++) { + WacomStatusLEDs l = leds[led_idx]; + assert(l != WACOM_STATUS_LED_UNAVAILABLE); + assert(l <= WACOM_STATUS_LED_TOUCHSTRIP2); + } + + /* Check we have a toggle button for each led group */ + nbuttons = libwacom_get_num_buttons(device); + for (btn_idx = 0; btn_idx < nbuttons; btn_idx++) { + WacomButtonFlags flags = libwacom_get_button_flag(device, 'A' + btn_idx); + int group = libwacom_get_button_led_group(device, 'A' + btn_idx); + + if (flags & WACOM_BUTTON_MODESWITCH) + assert(group != -1); + else + assert(group == -1); + + if (group == -1) + continue; + + group_flags |= 1 << group; + } + + assert(group_flags == (1 << nleds) - 1); + + return 1; +} + static void verify_tablet(WacomDeviceDatabase *db, WacomDevice *device) { const char *name; @@ -252,6 +291,8 @@ static void verify_tablet(WacomDeviceDatabase *db, WacomDevice *device) if (libwacom_is_reversible(device) && libwacom_get_num_buttons(device) > 0) assert(tablet_has_lr_buttons(device)); + + verify_led_groups(device); } int main(int argc, char **argv) -- 2.7.4 ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel