Signed-off-by: Peter Hutterer <[email protected]>
---
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel