diff --git a/src/driver-hidpp20.c b/src/driver-hidpp20.c index ceb5aa41..f909523b 100644 --- a/src/driver-hidpp20.c +++ b/src/driver-hidpp20.c @@ -140,8 +140,8 @@ hidpp20drv_read_button(struct ratbag_button *button) } static int -hidpp20drv_write_button(struct ratbag_button *button, - const struct ratbag_button_action *action) +hidpp20drv_write_button_1b04(struct ratbag_button *button, + const struct ratbag_button_action *action) { struct ratbag_device *device = button->profile->device; struct hidpp20drv_data *drv_data = ratbag_get_drv_data(device); @@ -174,6 +174,19 @@ hidpp20drv_write_button(struct ratbag_button *button, return rc; } +static int +hidpp20drv_write_button(struct ratbag_button *button, + const struct ratbag_button_action *action) +{ + struct ratbag_device *device = button->profile->device; + struct hidpp20drv_data *drv_data = ratbag_get_drv_data(device); + + if (drv_data->capabilities & HIDPP_CAP_BUTTON_KEY_1b04) + return hidpp20drv_write_button_1b04(button, action); + + return -ENOTSUP; +} + static int hidpp20drv_has_capability(const struct ratbag_device *device, enum ratbag_device_capability cap)