From e49ef039d74c33d05573f7513f7a3dd3c6ae2d35 Mon Sep 17 00:00:00 2001 From: Benjamin Tissoires Date: Sat, 15 Aug 2015 11:49:34 -0400 Subject: [PATCH] add implementation of ratbag_get_num_profiles and ratbag_get_num_buttons Signed-off-by: Benjamin Tissoires --- src/etekcity.c | 12 +++++++++--- src/libratbag-private.h | 2 ++ src/libratbag.c | 12 ++++++++++++ src/libratbag.sym | 2 ++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/etekcity.c b/src/etekcity.c index 3e7ba948..995816ec 100644 --- a/src/etekcity.c +++ b/src/etekcity.c @@ -32,6 +32,7 @@ #include "libratbag-hidraw.h" #define ETEKCITY_PROFILE_MAX 4 +#define ETEKCITY_BUTTON_MAX 10 #define ETEKCITY_REPORT_ID_CONFIGURE_PROFILE 4 #define ETEKCITY_REPORT_ID_PROFILE 5 @@ -130,7 +131,7 @@ static void etekcity_read_profile(struct ratbag_profile *profile, unsigned int index) { struct ratbag *ratbag = profile->ratbag; - int i, rc; + int i, rc, button; __u8 buf[50]; __u8 data; @@ -149,15 +150,19 @@ etekcity_read_profile(struct ratbag_profile *profile, unsigned int index) buf[2], __FILE__, __LINE__); + button = 0; + for (i = 0; i < 16; i++) { data = buf[3 + i * 3]; - if (data) + if (data) { log_debug(ratbag->libratbag, " - button%d: %s (%02x) %s:%d\n", - i, + button, print_key(data), data, __FILE__, __LINE__); + button++; + } } } @@ -179,6 +184,7 @@ etekcity_probe(struct ratbag *ratbag, const struct ratbag_id id) } ratbag->num_profiles = ETEKCITY_PROFILE_MAX; + ratbag->num_buttons = ETEKCITY_BUTTON_MAX; profile = ratbag_get_active_profile(ratbag); diff --git a/src/libratbag-private.h b/src/libratbag-private.h index 00f91fec..ec2184bd 100644 --- a/src/libratbag-private.h +++ b/src/libratbag-private.h @@ -52,6 +52,8 @@ struct ratbag { unsigned num_profiles; struct list profiles; + + unsigned num_buttons; }; struct ratbag_id { diff --git a/src/libratbag.c b/src/libratbag.c index ff5fe3cd..92b2c2f5 100644 --- a/src/libratbag.c +++ b/src/libratbag.c @@ -462,3 +462,15 @@ ratbag_get_active_profile(struct ratbag *ratbag) return ratbag_get_profile_by_index(ratbag, current_profile); } + +LIBRATBAG_EXPORT unsigned int +ratbag_get_num_profiles(struct ratbag *ratbag) +{ + return ratbag->num_profiles; +} + +LIBRATBAG_EXPORT unsigned int +ratbag_get_num_buttons(struct ratbag *ratbag) +{ + return ratbag->num_buttons; +} diff --git a/src/libratbag.sym b/src/libratbag.sym index 1a50be4a..b5c0ebdd 100644 --- a/src/libratbag.sym +++ b/src/libratbag.sym @@ -7,6 +7,8 @@ global: libratbag_unref; ratbag_get_active_profile; ratbag_get_name; + ratbag_get_num_profiles; + ratbag_get_num_buttons; ratbag_get_profile_by_index; ratbag_new_from_fd; ratbag_profile_ref;