From 25580e10600aac98803fe6a075dd3291d37a4663 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Sat, 22 Aug 2015 16:15:21 +1000 Subject: [PATCH] Drop device handle from the button, the profile has it ...and buttons must be part of a profile. Signed-off-by: Peter Hutterer --- src/driver-etekcity.c | 4 ++-- src/driver-hidpp20.c | 4 ++-- src/libratbag-private.h | 1 - src/libratbag.c | 5 ++--- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/driver-etekcity.c b/src/driver-etekcity.c index 48e71b45..dd63fc2b 100644 --- a/src/driver-etekcity.c +++ b/src/driver-etekcity.c @@ -322,8 +322,8 @@ etekcity_button_to_index(unsigned button) static void etekcity_read_button(struct ratbag_button *button) { - struct ratbag_device *device = button->device; struct ratbag_profile *profile = button->profile; + struct ratbag_device *device = profile->device; struct etekcity_data *drv_data = ratbag_get_drv_data(device); uint8_t data; unsigned index = etekcity_button_to_index(button->index); @@ -339,8 +339,8 @@ etekcity_read_button(struct ratbag_button *button) static int etekcity_write_button(struct ratbag_button *button) { - struct ratbag_device *device = button->device; struct ratbag_profile *profile = button->profile; + struct ratbag_device *device = profile->device; struct etekcity_data *drv_data = ratbag_get_drv_data(device); uint8_t *data; unsigned index = etekcity_button_to_index(button->index); diff --git a/src/driver-hidpp20.c b/src/driver-hidpp20.c index 6e31f485..a54c0dd7 100644 --- a/src/driver-hidpp20.c +++ b/src/driver-hidpp20.c @@ -73,7 +73,7 @@ hidpp20drv_raw_to_action(enum ratbag_button_type button_type) static void hidpp20drv_read_button(struct ratbag_button *button) { - struct ratbag_device *device = button->device; + struct ratbag_device *device = button->profile->device; struct hidpp20drv_data *drv_data = ratbag_get_drv_data(device); struct hidpp20_control_id *control; uint16_t mapping; @@ -99,7 +99,7 @@ hidpp20drv_read_button(struct ratbag_button *button) static int hidpp20drv_write_button(struct ratbag_button *button) { - struct ratbag_device *device = button->device; + struct ratbag_device *device = button->profile->device; struct hidpp20drv_data *drv_data = ratbag_get_drv_data(device); struct hidpp20_control_id *control; uint16_t mapping; diff --git a/src/libratbag-private.h b/src/libratbag-private.h index af3ce74e..cefadbe3 100644 --- a/src/libratbag-private.h +++ b/src/libratbag-private.h @@ -188,7 +188,6 @@ struct ratbag_profile { struct ratbag_button { int refcount; struct list link; - struct ratbag_device *device; struct ratbag_profile *profile; unsigned index; enum ratbag_button_type type; diff --git a/src/libratbag.c b/src/libratbag.c index 0a96a3f9..e9c9757a 100644 --- a/src/libratbag.c +++ b/src/libratbag.c @@ -639,7 +639,6 @@ ratbag_create_button(struct ratbag_device *device, struct ratbag_profile *profil return NULL; button->refcount = 1; - button->device = device; button->profile = profile; button->index = index; @@ -681,11 +680,11 @@ ratbag_button_set_type(struct ratbag_button *button, enum ratbag_button_type typ enum ratbag_button_type orig_type = button->type; int rc; - if (!button->device->driver->write_button) + if (!button->profile->device->driver->write_button) return -ENOTSUP; button->type = type; - rc = button->device->driver->write_button(button); + rc = button->profile->device->driver->write_button(button); if (rc) button->type = orig_type; return rc;