diff --git a/src/hidpp20.c b/src/hidpp20.c index 8966cc07..b31aed40 100644 --- a/src/hidpp20.c +++ b/src/hidpp20.c @@ -2572,6 +2572,7 @@ hidpp20_buttons_to_cpu(struct hidpp20_device *device, break; case HIDPP20_BUTTON_SPECIAL: button->special.special = b->special.special; + button->special.profile = b->special.profile; break; case HIDPP20_BUTTON_MACRO: if (profile->macros[i]) { @@ -2631,6 +2632,7 @@ hidpp20_buttons_from_cpu(struct hidpp20_profile *profile, break; case HIDPP20_BUTTON_SPECIAL: button->special.special = b->special.special; + button->special.profile = b->special.profile; break; case HIDPP20_BUTTON_DISABLED: break; diff --git a/src/hidpp20.h b/src/hidpp20.h index de370629..22629c32 100644 --- a/src/hidpp20.h +++ b/src/hidpp20.h @@ -618,6 +618,8 @@ union hidpp20_button_binding { struct { uint8_t type; /* HIDPP20_BUTTON_SPECIAL */ uint8_t special; + uint8_t reserved; + uint8_t profile; } __attribute__((packed)) special; struct { uint8_t type; /* HIDPP20_BUTTON_MACRO */