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.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/rcm-server-main.c b/rcm-server-main.c
index 3379697..3d8ceee 100644
--- a/rcm-server-main.c
+++ b/rcm-server-main.c
@@ -155,10 +155,15 @@ method_getkeymap(sd_bus_message *m, void *userdata, sd_bus_error *error)
goto out;
for (i = 0; i < (keymap->rows * keymap->cols); i++) {
- r = sd_bus_message_append(reply, "a{sv}", 3,
- "protocol", "s", keymap->layout[i]->protocol,
- "scancode", "t", keymap->layout[i]->scancode,
- "keycode", "s", keymap->layout[i]->keycode);
+ if (!keymap->layout[i])
+ r = sd_bus_message_append(reply, "a{sv}", 1,
+ "type", "s", "blank");
+ else
+ r = sd_bus_message_append(reply, "a{sv}", 4,
+ "type", "s", "button",
+ "protocol", "s", keymap->layout[i]->protocol,
+ "scancode", "t", keymap->layout[i]->scancode,
+ "keycode", "s", keymap->layout[i]->keycode);
if (r < 0)
goto out;
}