forked from drath/libratbag
Add a ratbag_device_get_svg_name() function
To retrieve which SVG file is associated to which device. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
This commit is contained in:
@@ -744,7 +744,7 @@ static const struct ratbag_id etekcity_table[] = {
|
||||
.vendor = USB_VENDOR_ID_ETEKCITY,
|
||||
.product = 0x4011,
|
||||
.version = VERSION_ANY },
|
||||
.data = 1,
|
||||
.svg_filename = "etekcity.svg",
|
||||
},
|
||||
|
||||
{ },
|
||||
|
||||
@@ -273,7 +273,8 @@ static const struct ratbag_id hidpp10drv_table[] = {
|
||||
{ .id = LOGITECH_DEVICE(BUS_USB, 0x1028) },
|
||||
|
||||
/* G500s */
|
||||
{ .id = LOGITECH_DEVICE(BUS_USB, 0xc24e) },
|
||||
{ .id = LOGITECH_DEVICE(BUS_USB, 0xc24e),
|
||||
.svg_filename = "logitech-g500s.svg" },
|
||||
|
||||
{ },
|
||||
};
|
||||
|
||||
@@ -54,6 +54,7 @@ struct ratbag {
|
||||
|
||||
struct ratbag_device {
|
||||
char *name;
|
||||
const char *svg_name;
|
||||
void *userdata;
|
||||
|
||||
struct udev_device *udev_device;
|
||||
@@ -74,6 +75,7 @@ struct ratbag_device {
|
||||
|
||||
struct ratbag_id {
|
||||
struct input_id id;
|
||||
const char *svg_filename;
|
||||
unsigned long data;
|
||||
};
|
||||
|
||||
|
||||
@@ -287,10 +287,12 @@ ratbag_find_driver(struct ratbag_device *device, const struct input_id *dev_id)
|
||||
if (ratbag_match_id(dev_id, &matching_id->id)) {
|
||||
matched_id.id = *dev_id;
|
||||
matched_id.data = matching_id->data;
|
||||
matched_id.svg_filename = matching_id->svg_filename;
|
||||
device->driver = driver;
|
||||
rc = driver->probe(device, matched_id);
|
||||
if (rc == 0) {
|
||||
log_debug(ratbag, "driver match found\n");
|
||||
device->svg_name = matching_id->svg_filename;
|
||||
return driver;
|
||||
}
|
||||
|
||||
@@ -438,6 +440,12 @@ ratbag_device_get_name(const struct ratbag_device* device)
|
||||
return device->name;
|
||||
}
|
||||
|
||||
LIBRATBAG_EXPORT const char *
|
||||
ratbag_device_get_svg_name(const struct ratbag_device* device)
|
||||
{
|
||||
return device->svg_name;
|
||||
}
|
||||
|
||||
static void
|
||||
ratbag_register_driver(struct ratbag *ratbag, struct ratbag_driver *driver)
|
||||
{
|
||||
|
||||
@@ -386,6 +386,16 @@ ratbag_device_get_user_data(const struct ratbag_device *device);
|
||||
const char *
|
||||
ratbag_device_get_name(const struct ratbag_device* device);
|
||||
|
||||
/**
|
||||
* @ingroup device
|
||||
*
|
||||
* @param device A previously initialized ratbag device
|
||||
* @return The file name of the svg drawing associated with the given ratbag.
|
||||
* If there is no file associated to the device, NULL is returned.
|
||||
*/
|
||||
const char *
|
||||
ratbag_device_get_svg_name(const struct ratbag_device* device);
|
||||
|
||||
/**
|
||||
* @ingroup device
|
||||
*/
|
||||
|
||||
@@ -21,6 +21,7 @@ global:
|
||||
ratbag_device_get_num_buttons;
|
||||
ratbag_device_get_num_profiles;
|
||||
ratbag_device_get_profile_by_index;
|
||||
ratbag_device_get_svg_name;
|
||||
ratbag_device_get_user_data;
|
||||
ratbag_device_has_capability;
|
||||
ratbag_device_new_from_udev_device;
|
||||
|
||||
Reference in New Issue
Block a user