forked from drath/libratbag
add implementation of ratbag_has_capability
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user