1
0
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:
Benjamin Tissoires
2015-09-02 11:02:03 -04:00
parent 4644614da5
commit 1e1dfd02fd
6 changed files with 24 additions and 2 deletions

View File

@@ -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",
},
{ },

View File

@@ -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" },
{ },
};

View File

@@ -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;
};

View File

@@ -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)
{

View File

@@ -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
*/

View File

@@ -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;