1
0
forked from drath/libratbag

add implementation of ratbag_has_capability

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
Benjamin Tissoires
2015-08-15 11:54:27 -04:00
parent e49ef039d7
commit b7ed03d688
4 changed files with 26 additions and 0 deletions

View File

@@ -93,6 +93,22 @@ print_key(__u8 key)
return "UNKNOWN";
}
static int
etekcity_has_capability(const struct ratbag *ratbag, enum ratbag_capability cap)
{
switch (cap) {
case RATBAG_CAP_NONE:
return 0;
case RATBAG_CAP_SWITCHABLE_RESOLUTION:
case RATBAG_CAP_SWITCHABLE_PROFILE:
case RATBAG_CAP_BUTTON_PROFILES:
case RATBAG_CAP_BUTTON_KEY:
case RATBAG_CAP_BUTTON_MACROS:
return 1;
}
return 0;
}
static int
etekcity_current_profile(struct ratbag *ratbag)
{
@@ -223,4 +239,5 @@ struct ratbag_driver etekcity_driver = {
.probe = etekcity_probe,
.read_profile = etekcity_read_profile,
.get_active_profile = etekcity_current_profile,
.has_capability = etekcity_has_capability,
};

View File

@@ -68,6 +68,7 @@ struct ratbag_driver {
int (*probe)(struct ratbag *ratbag, const struct ratbag_id id);
void (*read_profile)(struct ratbag_profile *profile, unsigned int index);
int (*get_active_profile)(struct ratbag *ratbag);
int (*has_capability)(const struct ratbag *ratbag, enum ratbag_capability cap);
/* private */
struct list link;

View File

@@ -474,3 +474,10 @@ ratbag_get_num_buttons(struct ratbag *ratbag)
{
return ratbag->num_buttons;
}
LIBRATBAG_EXPORT int
ratbag_has_capability(const struct ratbag *ratbag, enum ratbag_capability cap)
{
assert(ratbag->driver->has_capability);
return ratbag->driver->has_capability(ratbag, cap);
}

View File

@@ -10,6 +10,7 @@ global:
ratbag_get_num_profiles;
ratbag_get_num_buttons;
ratbag_get_profile_by_index;
ratbag_has_capability;
ratbag_new_from_fd;
ratbag_profile_ref;
ratbag_profile_unref;