summaryrefslogtreecommitdiff
path: root/rcm-server-main.c
diff options
context:
space:
mode:
Diffstat (limited to 'rcm-server-main.c')
-rw-r--r--rcm-server-main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/rcm-server-main.c b/rcm-server-main.c
index 65c82f7..4a0adbc 100644
--- a/rcm-server-main.c
+++ b/rcm-server-main.c
@@ -54,6 +54,8 @@ property_get(sd_bus *bus, const char *path, const char *interface,
return sd_bus_message_append(reply, "s", dev->keymap_name);
else if (!strcmp(property, "HardwareType"))
return sd_bus_message_append(reply, "s", "ir");
+ else if (!strcmp(property, "Error"))
+ return sd_bus_message_append(reply, "s", dev->error);
sd_bus_error_set_const(error, "org.gnome.RemoteControlManager.InvalidProperty", "Sorry, invalid property");
return -EINVAL;
@@ -654,6 +656,7 @@ static const sd_bus_vtable device_vtable[] = {
SD_BUS_PROPERTY("DriverName", "s", property_get, 0, 0),
SD_BUS_PROPERTY("KernelKeymapName", "s", property_get, 0, 0),
SD_BUS_PROPERTY("HardwareType", "s", property_get, 0, 0),
+ SD_BUS_PROPERTY("Error", "s", property_get, 0, 0),
SD_BUS_METHOD("ListKeymaps", NULL, "as", method_listkeymaps, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("GetKeymap", "s", "ssqqaa{sv}aa{sv}", method_getkeymap, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("SetKeymap", "sssqqaa{sv}aa{sv}", NULL, method_setkeymap, SD_BUS_VTABLE_UNPRIVILEGED),
@@ -711,6 +714,7 @@ add_device(struct manager *mgr, struct udev_device *udev)
device->path = path;
device->name = device->path + strlen("/org/gnome/RemoteControlManager/");
device->evdev_fd = -1;
+ device->error = NULL;
if (keymaps_load(device) < 0) {
fprintf(stderr, "failed to load keymaps: %m\n");
@@ -751,6 +755,8 @@ add_device(struct manager *mgr, struct udev_device *udev)
r = evdev_setup(device, devnode);
if (r < 0) {
printf("Failed to setup evdev: %s\n", devnode);
+ device->error = "Error: Failed to setup evdev";
+ device->input_name = NULL;
udev_device_unref(evdev);
continue;
}