|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PULL v2 15/15] baum: Add copy/paste bindings
From: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> Brltty interprets - TL1 (i.e. Display1) + routing as clip new - TL2 (i.e. Display2) + routing as clip add - TR1 (i.e. Display4) + routing as copy line - TR2 (i.e. Display5) + routing as copy rect https://github.com/brltty/brltty/blob/master/Tables/Input/bm/routing6.kti - BAUM_TL1+BAUM_TL2+BAUM_TL3+BAUM_TR1 (i.e. Display1+Display2+Display3+Display4) as paste https://github.com/brltty/brltty/blob/master/Tables/Input/bm/d6.kti Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> [ Marc-André - style fixes ] Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Message-ID: <20260213000551.2446777-1-samuel.thibault@xxxxxxxxxxxx> --- chardev/baum.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/chardev/baum.c b/chardev/baum.c index 1219963656b..ac1e535ba8e 100644 --- a/chardev/baum.c +++ b/chardev/baum.c @@ -1,7 +1,7 @@ /* * QEMU Baum Braille Device * - * Copyright (c) 2008, 2010-2011, 2016-2017 Samuel Thibault + * Copyright (c) 2008, 2010-2011, 2016-2017, 2026 Samuel Thibault * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -561,9 +561,38 @@ static void baum_chr_read(void *opaque) case BRLAPI_KEY_TYPE_CMD: switch (code & BRLAPI_KEY_CMD_BLK_MASK) { case BRLAPI_KEY_CMD_ROUTE: - baum_send_key(baum, BAUM_RSP_RoutingKey, (code & BRLAPI_KEY_CMD_ARG_MASK)+1); + baum_send_key(baum, BAUM_RSP_RoutingKey, + (code & BRLAPI_KEY_CMD_ARG_MASK) + 1); baum_send_key(baum, BAUM_RSP_RoutingKey, 0); break; + case BRLAPI_KEY_CMD_CLIP_NEW: + baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1); + baum_send_key(baum, BAUM_RSP_RoutingKey, + (code & BRLAPI_KEY_CMD_ARG_MASK) + 1); + baum_send_key(baum, BAUM_RSP_RoutingKey, 0); + baum_send_key(baum, BAUM_RSP_TopKeys, 0); + break; + case BRLAPI_KEY_CMD_CLIP_ADD: + baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2); + baum_send_key(baum, BAUM_RSP_RoutingKey, + (code & BRLAPI_KEY_CMD_ARG_MASK) + 1); + baum_send_key(baum, BAUM_RSP_RoutingKey, 0); + baum_send_key(baum, BAUM_RSP_TopKeys, 0); + break; + case BRLAPI_KEY_CMD_COPY_LINE: + baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR1); + baum_send_key(baum, BAUM_RSP_RoutingKey, + (code & BRLAPI_KEY_CMD_ARG_MASK) + 1); + baum_send_key(baum, BAUM_RSP_RoutingKey, 0); + baum_send_key(baum, BAUM_RSP_TopKeys, 0); + break; + case BRLAPI_KEY_CMD_COPY_RECT: + baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR2); + baum_send_key(baum, BAUM_RSP_RoutingKey, + (code & BRLAPI_KEY_CMD_ARG_MASK) + 1); + baum_send_key(baum, BAUM_RSP_RoutingKey, 0); + baum_send_key(baum, BAUM_RSP_TopKeys, 0); + break; case 0: switch (code & BRLAPI_KEY_CMD_ARG_MASK) { case BRLAPI_KEY_CMD_FWINLT: @@ -606,6 +635,11 @@ static void baum_chr_read(void *opaque) baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1|BAUM_TL3|BAUM_TR1); baum_send_key(baum, BAUM_RSP_TopKeys, 0); break; + case BRLAPI_KEY_CMD_PASTE: + baum_send_key(baum, BAUM_RSP_TopKeys, + BAUM_TL1 | BAUM_TL2 | BAUM_TL3 | BAUM_TR1); + baum_send_key(baum, BAUM_RSP_TopKeys, 0); + break; } } break; -- 2.52.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |