This repository has been archived by the owner on Jan 10, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
/
brltty.patch
6367 lines (6255 loc) · 208 KB
/
brltty.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
diff --git a/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/Baum/braille.c b/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/Baum/braille.c
index f7df969..29df111 100644
--- a/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/Baum/braille.c
+++ b/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/Baum/braille.c
@@ -165,6 +165,7 @@ BEGIN_KEY_NAME_TABLE(vertical)
KEY_GROUP_ENTRY(BM_GRP_ScaledRightSensors, "ScaledRightSensor"),
END_KEY_NAME_TABLE
+// ADD_DEVICE_SUPPORT
BEGIN_KEY_NAME_TABLES(default)
KEY_NAME_SUBTABLE(display,6),
KEY_NAME_TABLE(entry),
@@ -269,6 +270,7 @@ BEGIN_KEY_NAME_TABLES(vk)
KEY_NAME_TABLE(routing),
END_KEY_NAME_TABLES
+// ADD_DEVICE_SUPPORT
DEFINE_KEY_TABLE(default)
DEFINE_KEY_TABLE(connect)
DEFINE_KEY_TABLE(conny)
@@ -285,6 +287,7 @@ DEFINE_KEY_TABLE(v80)
DEFINE_KEY_TABLE(pro)
DEFINE_KEY_TABLE(vk)
+// ADD_DEVICE_SUPPORT
BEGIN_KEY_TABLE_LIST
&KEY_TABLE_DEFINITION(default),
&KEY_TABLE_DEFINITION(connect),
@@ -823,6 +826,7 @@ typedef union {
} PACKED data;
} PACKED BaumResponsePacket;
+// ADD_DEVICE_SUPPORT
typedef enum {
BAUM_DEVICE_Default,
BAUM_DEVICE_Conny,
@@ -846,6 +850,7 @@ typedef struct {
BaumDeviceType type;
} BaumDeviceIdentityEntry;
+// ADD_DEVICE_SUPPORT
static const BaumDeviceIdentityEntry baumDeviceIdentityTable[] = {
{ .string = "BrailleConnect",
.type = BAUM_DEVICE_VarioConnect
@@ -2842,6 +2847,7 @@ connectResource (BrailleDisplay *brl, const char *identifier) {
SERIAL_DEFAULT_PARAMETERS
};
+ // ADD_DEVICE_SUPPORT
BEGIN_USB_CHANNEL_DEFINITIONS
{ /* Vario 40 (40 cells) */
.vendor=0X0403, .product=0XFE70,
diff --git a/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/EuroBraille/Makefile.in b/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/EuroBraille/Makefile.in
index fc606cb..ec3559a 100644
--- a/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/EuroBraille/Makefile.in
+++ b/braille/service/jni/brlttywrapper/brltty/Drivers/Braille/EuroBraille/Makefile.in
@@ -34,28 +34,28 @@ braille.$O: $(OBJ_FILES)
$(CC) $(BRL_CFLAGS) -o $@ -c $<
###############################################################################
-
-EU_TRANSFER_OBJECTS = eutp_brl.$O eutp_convert.$O eutp_debug.$O eutp_pc.$O eutp_tools.$O eutp_transfer.$O eutp_main.$O
-
-EU_TRANSFER_TOOL = eutp$X
-EU_TRANSFER_MAN = $(SRC_DIR)/eutp.1
-
-$(EU_TRANSFER_TOOL): $(EU_TRANSFER_OBJECTS) brlapi
- $(CC) $(LDFLAGS) -o $@ $(EU_TRANSFER_OBJECTS) $(API_LIBS)
-
-api: $(EU_TRANSFER_TOOL)
-braille-all:: $(BUILD_API)
-
-clean::
- -rm -f $(EU_TRANSFER_TOOL) $(EU_TRANSFER_OBJECTS)
-
-install-api:: install-eu-transfer-tool
-
-install-eu-transfer-tool: $(EU_TRANSFER_TOOL) install-program-directory install-man1-directory
- $(INSTALL_PROGRAM) $(EU_TRANSFER_TOOL) $(INSTALL_PROGRAM_DIRECTORY)
- $(INSTALL_DATA) $(EU_TRANSFER_MAN) $(INSTALL_MAN1_DIRECTORY)
-
-uninstall::
- -rm -f $(INSTALL_PROGRAM_DIRECTORY)/$(EU_TRANSFER_TOOL)
- -rm -f $(INSTALL_MAN1_DIRECTORY)/$(EU_TRANSFER_MAN)
-
+#
+#EU_TRANSFER_OBJECTS = eutp_brl.$O eutp_convert.$O eutp_debug.$O eutp_pc.$O eutp_tools.$O eutp_transfer.$O eutp_main.$O
+#
+#EU_TRANSFER_TOOL = eutp$X
+#EU_TRANSFER_MAN = $(SRC_DIR)/eutp.1
+#
+#$(EU_TRANSFER_TOOL): $(EU_TRANSFER_OBJECTS) brlapi
+# $(CC) $(LDFLAGS) -o $@ $(EU_TRANSFER_OBJECTS) $(API_LIBS)
+#
+#api: $(EU_TRANSFER_TOOL)
+#braille-all:: $(BUILD_API)
+#
+#clean::
+# -rm -f $(EU_TRANSFER_TOOL) $(EU_TRANSFER_OBJECTS)
+#
+#install-api:: install-eu-transfer-tool
+#
+#install-eu-transfer-tool: $(EU_TRANSFER_TOOL) install-program-directory install-man1-directory
+# $(INSTALL_PROGRAM) $(EU_TRANSFER_TOOL) $(INSTALL_PROGRAM_DIRECTORY)
+# $(INSTALL_DATA) $(EU_TRANSFER_MAN) $(INSTALL_MAN1_DIRECTORY)
+#
+#uninstall::
+# -rm -f $(INSTALL_PROGRAM_DIRECTORY)/$(EU_TRANSFER_TOOL)
+# -rm -f $(INSTALL_MAN1_DIRECTORY)/$(EU_TRANSFER_MAN)
+#
diff --git a/braille/service/jni/brlttywrapper/brltty/Programs/bluetooth_names.c b/braille/service/jni/brlttywrapper/brltty/Programs/bluetooth_names.c
index bbd59ed..1e98409 100644
--- a/braille/service/jni/brlttywrapper/brltty/Programs/bluetooth_names.c
+++ b/braille/service/jni/brlttywrapper/brltty/Programs/bluetooth_names.c
@@ -20,6 +20,7 @@
#include "bluetooth_internal.h"
+// ADD_DEVICE_SUPPORT
#define BLUETOOTH_NAME_DRIVERS(name, ...) static const char *const bluetoothNameDrivers_##name[] = {__VA_ARGS__, NULL}
BLUETOOTH_NAME_DRIVERS(Actilino, "ht");
BLUETOOTH_NAME_DRIVERS(ActiveBraille, "ht");
@@ -60,6 +61,7 @@ BLUETOOTH_NAME_DRIVERS(TSM, "sk");
BLUETOOTH_NAME_DRIVERS(VarioConnect, "bm");
BLUETOOTH_NAME_DRIVERS(VarioUltra, "bm");
+// ADD_DEVICE_SUPPORT
const BluetoothNameEntry bluetoothNameTable[] = {
{ .namePrefix = "Actilino ALO",
.driverCodes = bluetoothNameDrivers_Actilino
diff --git a/braille/service/jni/brlttywrapper/brltty/Programs/brlapi_constants.h b/braille/service/jni/brlttywrapper/brltty/Programs/brlapi_constants.h
new file mode 100644
index 0000000..7b360d9
--- /dev/null
+++ b/braille/service/jni/brlttywrapper/brltty/Programs/brlapi_constants.h
@@ -0,0 +1,427 @@
+/*
+ * libbrlapi - A library providing access to braille terminals for applications.
+ *
+ * Copyright (C) 2002-2018 by
+ * Samuel Thibault <Samuel.Thibault@ens-lyon.org>
+ * Sébastien Hinderer <Sebastien.Hinderer@ens-lyon.org>
+ *
+ * libbrlapi comes with ABSOLUTELY NO WARRANTY.
+ *
+ * This is free software, placed under the terms of the
+ * GNU Lesser General Public License, as published by the Free Software
+ * Foundation; either version 2.1 of the License, or (at your option) any
+ * later version. Please see the file LICENSE-LGPL for details.
+ *
+ * Web Page: http://brltty.com/
+ *
+ * This software is maintained by Dave Mielke <dave@mielke.cc>.
+ */
+
+#ifndef BRLAPI_INCLUDED_CONSTANTS
+#define BRLAPI_INCLUDED_CONSTANTS
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** \file
+ */
+
+/** \ingroup brlapi_keycodes
+ * @{ */
+
+/** do nothing */
+#define BRLAPI_KEY_CMD_NOOP (BRLAPI_KEY_CMD(0) + 0)
+/** go up one line */
+#define BRLAPI_KEY_CMD_LNUP (BRLAPI_KEY_CMD(0) + 1)
+/** go down one line */
+#define BRLAPI_KEY_CMD_LNDN (BRLAPI_KEY_CMD(0) + 2)
+/** go up several lines */
+#define BRLAPI_KEY_CMD_WINUP (BRLAPI_KEY_CMD(0) + 3)
+/** go down several lines */
+#define BRLAPI_KEY_CMD_WINDN (BRLAPI_KEY_CMD(0) + 4)
+/** go up to nearest line with different content */
+#define BRLAPI_KEY_CMD_PRDIFLN (BRLAPI_KEY_CMD(0) + 5)
+/** go down to nearest line with different content */
+#define BRLAPI_KEY_CMD_NXDIFLN (BRLAPI_KEY_CMD(0) + 6)
+/** go up to nearest line with different highlighting */
+#define BRLAPI_KEY_CMD_ATTRUP (BRLAPI_KEY_CMD(0) + 7)
+/** go down to nearest line with different highlighting */
+#define BRLAPI_KEY_CMD_ATTRDN (BRLAPI_KEY_CMD(0) + 8)
+/** go to top line */
+#define BRLAPI_KEY_CMD_TOP (BRLAPI_KEY_CMD(0) + 9)
+/** go to bottom line */
+#define BRLAPI_KEY_CMD_BOT (BRLAPI_KEY_CMD(0) + 10)
+/** go to beginning of top line */
+#define BRLAPI_KEY_CMD_TOP_LEFT (BRLAPI_KEY_CMD(0) + 11)
+/** go to beginning of bottom line */
+#define BRLAPI_KEY_CMD_BOT_LEFT (BRLAPI_KEY_CMD(0) + 12)
+/** go up to first line of paragraph */
+#define BRLAPI_KEY_CMD_PRPGRPH (BRLAPI_KEY_CMD(0) + 13)
+/** go down to first line of next paragraph */
+#define BRLAPI_KEY_CMD_NXPGRPH (BRLAPI_KEY_CMD(0) + 14)
+/** go up to previous command prompt */
+#define BRLAPI_KEY_CMD_PRPROMPT (BRLAPI_KEY_CMD(0) + 15)
+/** go down to next command prompt */
+#define BRLAPI_KEY_CMD_NXPROMPT (BRLAPI_KEY_CMD(0) + 16)
+/** search backward for clipboard text */
+#define BRLAPI_KEY_CMD_PRSEARCH (BRLAPI_KEY_CMD(0) + 17)
+/** search forward for clipboard text */
+#define BRLAPI_KEY_CMD_NXSEARCH (BRLAPI_KEY_CMD(0) + 18)
+/** go left one character */
+#define BRLAPI_KEY_CMD_CHRLT (BRLAPI_KEY_CMD(0) + 19)
+/** go right one character */
+#define BRLAPI_KEY_CMD_CHRRT (BRLAPI_KEY_CMD(0) + 20)
+/** go left half a braille window */
+#define BRLAPI_KEY_CMD_HWINLT (BRLAPI_KEY_CMD(0) + 21)
+/** go right half a braille window */
+#define BRLAPI_KEY_CMD_HWINRT (BRLAPI_KEY_CMD(0) + 22)
+/** go backward one braille window */
+#define BRLAPI_KEY_CMD_FWINLT (BRLAPI_KEY_CMD(0) + 23)
+/** go forward one braille window */
+#define BRLAPI_KEY_CMD_FWINRT (BRLAPI_KEY_CMD(0) + 24)
+/** go backward skipping blank braille windows */
+#define BRLAPI_KEY_CMD_FWINLTSKIP (BRLAPI_KEY_CMD(0) + 25)
+/** go forward skipping blank braille windows */
+#define BRLAPI_KEY_CMD_FWINRTSKIP (BRLAPI_KEY_CMD(0) + 26)
+/** go to beginning of line */
+#define BRLAPI_KEY_CMD_LNBEG (BRLAPI_KEY_CMD(0) + 27)
+/** go to end of line */
+#define BRLAPI_KEY_CMD_LNEND (BRLAPI_KEY_CMD(0) + 28)
+/** go to screen cursor */
+#define BRLAPI_KEY_CMD_HOME (BRLAPI_KEY_CMD(0) + 29)
+/** go back after cursor tracking */
+#define BRLAPI_KEY_CMD_BACK (BRLAPI_KEY_CMD(0) + 30)
+/** go to screen cursor or go back after cursor tracking */
+#define BRLAPI_KEY_CMD_RETURN (BRLAPI_KEY_CMD(0) + 31)
+/** set screen image frozen/unfrozen */
+#define BRLAPI_KEY_CMD_FREEZE (BRLAPI_KEY_CMD(0) + 32)
+/** set display mode attributes/text */
+#define BRLAPI_KEY_CMD_DISPMD (BRLAPI_KEY_CMD(0) + 33)
+/** set text style 6-dot/8-dot */
+#define BRLAPI_KEY_CMD_SIXDOTS (BRLAPI_KEY_CMD(0) + 34)
+/** set sliding braille window on/off */
+#define BRLAPI_KEY_CMD_SLIDEWIN (BRLAPI_KEY_CMD(0) + 35)
+/** set skipping of lines with identical content on/off */
+#define BRLAPI_KEY_CMD_SKPIDLNS (BRLAPI_KEY_CMD(0) + 36)
+/** set skipping of blank braille windows on/off */
+#define BRLAPI_KEY_CMD_SKPBLNKWINS (BRLAPI_KEY_CMD(0) + 37)
+/** set screen cursor visibility on/off */
+#define BRLAPI_KEY_CMD_CSRVIS (BRLAPI_KEY_CMD(0) + 38)
+/** set hidden screen cursor on/off */
+#define BRLAPI_KEY_CMD_CSRHIDE (BRLAPI_KEY_CMD(0) + 39)
+/** set track screen cursor on/off */
+#define BRLAPI_KEY_CMD_CSRTRK (BRLAPI_KEY_CMD(0) + 40)
+/** set screen cursor style block/underline */
+#define BRLAPI_KEY_CMD_CSRSIZE (BRLAPI_KEY_CMD(0) + 41)
+/** set screen cursor blinking on/off */
+#define BRLAPI_KEY_CMD_CSRBLINK (BRLAPI_KEY_CMD(0) + 42)
+/** set attribute underlining on/off */
+#define BRLAPI_KEY_CMD_ATTRVIS (BRLAPI_KEY_CMD(0) + 43)
+/** set attribute blinking on/off */
+#define BRLAPI_KEY_CMD_ATTRBLINK (BRLAPI_KEY_CMD(0) + 44)
+/** set capital letter blinking on/off */
+#define BRLAPI_KEY_CMD_CAPBLINK (BRLAPI_KEY_CMD(0) + 45)
+/** set alert tunes on/off */
+#define BRLAPI_KEY_CMD_TUNES (BRLAPI_KEY_CMD(0) + 46)
+/** set autorepeat on/off */
+#define BRLAPI_KEY_CMD_AUTOREPEAT (BRLAPI_KEY_CMD(0) + 47)
+/** set autospeak on/off */
+#define BRLAPI_KEY_CMD_AUTOSPEAK (BRLAPI_KEY_CMD(0) + 48)
+/** enter/leave help display */
+#define BRLAPI_KEY_CMD_HELP (BRLAPI_KEY_CMD(0) + 49)
+/** enter/leave status display */
+#define BRLAPI_KEY_CMD_INFO (BRLAPI_KEY_CMD(0) + 50)
+/** enter/leave command learn mode */
+#define BRLAPI_KEY_CMD_LEARN (BRLAPI_KEY_CMD(0) + 51)
+/** enter/leave preferences menu */
+#define BRLAPI_KEY_CMD_PREFMENU (BRLAPI_KEY_CMD(0) + 52)
+/** save preferences to disk */
+#define BRLAPI_KEY_CMD_PREFSAVE (BRLAPI_KEY_CMD(0) + 53)
+/** restore preferences from disk */
+#define BRLAPI_KEY_CMD_PREFLOAD (BRLAPI_KEY_CMD(0) + 54)
+/** go up to first item */
+#define BRLAPI_KEY_CMD_MENU_FIRST_ITEM (BRLAPI_KEY_CMD(0) + 55)
+/** go down to last item */
+#define BRLAPI_KEY_CMD_MENU_LAST_ITEM (BRLAPI_KEY_CMD(0) + 56)
+/** go up to previous item */
+#define BRLAPI_KEY_CMD_MENU_PREV_ITEM (BRLAPI_KEY_CMD(0) + 57)
+/** go down to next item */
+#define BRLAPI_KEY_CMD_MENU_NEXT_ITEM (BRLAPI_KEY_CMD(0) + 58)
+/** select previous choice */
+#define BRLAPI_KEY_CMD_MENU_PREV_SETTING (BRLAPI_KEY_CMD(0) + 59)
+/** select next choice */
+#define BRLAPI_KEY_CMD_MENU_NEXT_SETTING (BRLAPI_KEY_CMD(0) + 60)
+/** stop speaking */
+#define BRLAPI_KEY_CMD_MUTE (BRLAPI_KEY_CMD(0) + 61)
+/** go to current speaking position */
+#define BRLAPI_KEY_CMD_SPKHOME (BRLAPI_KEY_CMD(0) + 62)
+/** speak current line */
+#define BRLAPI_KEY_CMD_SAY_LINE (BRLAPI_KEY_CMD(0) + 63)
+/** speak from top of screen through current line */
+#define BRLAPI_KEY_CMD_SAY_ABOVE (BRLAPI_KEY_CMD(0) + 64)
+/** speak from current line through bottom of screen */
+#define BRLAPI_KEY_CMD_SAY_BELOW (BRLAPI_KEY_CMD(0) + 65)
+/** decrease speaking rate */
+#define BRLAPI_KEY_CMD_SAY_SLOWER (BRLAPI_KEY_CMD(0) + 66)
+/** increase speaking rate */
+#define BRLAPI_KEY_CMD_SAY_FASTER (BRLAPI_KEY_CMD(0) + 67)
+/** decrease speaking volume */
+#define BRLAPI_KEY_CMD_SAY_SOFTER (BRLAPI_KEY_CMD(0) + 68)
+/** increase speaking volume */
+#define BRLAPI_KEY_CMD_SAY_LOUDER (BRLAPI_KEY_CMD(0) + 69)
+/** switch to the previous virtual terminal */
+#define BRLAPI_KEY_CMD_SWITCHVT_PREV (BRLAPI_KEY_CMD(0) + 70)
+/** switch to the next virtual terminal */
+#define BRLAPI_KEY_CMD_SWITCHVT_NEXT (BRLAPI_KEY_CMD(0) + 71)
+/** bring screen cursor to current line */
+#define BRLAPI_KEY_CMD_CSRJMP_VERT (BRLAPI_KEY_CMD(0) + 72)
+/** insert clipboard text after screen cursor */
+#define BRLAPI_KEY_CMD_PASTE (BRLAPI_KEY_CMD(0) + 73)
+/** restart braille driver */
+#define BRLAPI_KEY_CMD_RESTARTBRL (BRLAPI_KEY_CMD(0) + 74)
+/** restart speech driver */
+#define BRLAPI_KEY_CMD_RESTARTSPEECH (BRLAPI_KEY_CMD(0) + 75)
+/** braille display temporarily unavailable */
+#define BRLAPI_KEY_CMD_OFFLINE (BRLAPI_KEY_CMD(0) + 76)
+/** cycle the Shift sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_SHIFT (BRLAPI_KEY_CMD(0) + 77)
+/** cycle the Upper sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_UPPER (BRLAPI_KEY_CMD(0) + 78)
+/** cycle the Control sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_CONTROL (BRLAPI_KEY_CMD(0) + 79)
+/** cycle the Meta (Left Alt) sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_META (BRLAPI_KEY_CMD(0) + 80)
+/** show current date and time */
+#define BRLAPI_KEY_CMD_TIME (BRLAPI_KEY_CMD(0) + 81)
+/** go to previous menu level */
+#define BRLAPI_KEY_CMD_MENU_PREV_LEVEL (BRLAPI_KEY_CMD(0) + 82)
+/** set autospeak selected line on/off */
+#define BRLAPI_KEY_CMD_ASPK_SEL_LINE (BRLAPI_KEY_CMD(0) + 83)
+/** set autospeak selected character on/off */
+#define BRLAPI_KEY_CMD_ASPK_SEL_CHAR (BRLAPI_KEY_CMD(0) + 84)
+/** set autospeak inserted characters on/off */
+#define BRLAPI_KEY_CMD_ASPK_INS_CHARS (BRLAPI_KEY_CMD(0) + 85)
+/** set autospeak deleted characters on/off */
+#define BRLAPI_KEY_CMD_ASPK_DEL_CHARS (BRLAPI_KEY_CMD(0) + 86)
+/** set autospeak replaced characters on/off */
+#define BRLAPI_KEY_CMD_ASPK_REP_CHARS (BRLAPI_KEY_CMD(0) + 87)
+/** set autospeak completed words on/off */
+#define BRLAPI_KEY_CMD_ASPK_CMP_WORDS (BRLAPI_KEY_CMD(0) + 88)
+/** speak current character */
+#define BRLAPI_KEY_CMD_SPEAK_CURR_CHAR (BRLAPI_KEY_CMD(0) + 89)
+/** go to and speak previous character */
+#define BRLAPI_KEY_CMD_SPEAK_PREV_CHAR (BRLAPI_KEY_CMD(0) + 90)
+/** go to and speak next character */
+#define BRLAPI_KEY_CMD_SPEAK_NEXT_CHAR (BRLAPI_KEY_CMD(0) + 91)
+/** speak current word */
+#define BRLAPI_KEY_CMD_SPEAK_CURR_WORD (BRLAPI_KEY_CMD(0) + 92)
+/** go to and speak previous word */
+#define BRLAPI_KEY_CMD_SPEAK_PREV_WORD (BRLAPI_KEY_CMD(0) + 93)
+/** go to and speak next word */
+#define BRLAPI_KEY_CMD_SPEAK_NEXT_WORD (BRLAPI_KEY_CMD(0) + 94)
+/** speak current line */
+#define BRLAPI_KEY_CMD_SPEAK_CURR_LINE (BRLAPI_KEY_CMD(0) + 95)
+/** go to and speak previous line */
+#define BRLAPI_KEY_CMD_SPEAK_PREV_LINE (BRLAPI_KEY_CMD(0) + 96)
+/** go to and speak next line */
+#define BRLAPI_KEY_CMD_SPEAK_NEXT_LINE (BRLAPI_KEY_CMD(0) + 97)
+/** go to and speak first non-blank character on line */
+#define BRLAPI_KEY_CMD_SPEAK_FRST_CHAR (BRLAPI_KEY_CMD(0) + 98)
+/** go to and speak last non-blank character on line */
+#define BRLAPI_KEY_CMD_SPEAK_LAST_CHAR (BRLAPI_KEY_CMD(0) + 99)
+/** go to and speak first non-blank line on screen */
+#define BRLAPI_KEY_CMD_SPEAK_FRST_LINE (BRLAPI_KEY_CMD(0) + 100)
+/** go to and speak last non-blank line on screen */
+#define BRLAPI_KEY_CMD_SPEAK_LAST_LINE (BRLAPI_KEY_CMD(0) + 101)
+/** describe current character */
+#define BRLAPI_KEY_CMD_DESC_CURR_CHAR (BRLAPI_KEY_CMD(0) + 102)
+/** spell current word */
+#define BRLAPI_KEY_CMD_SPELL_CURR_WORD (BRLAPI_KEY_CMD(0) + 103)
+/** bring screen cursor to speech cursor */
+#define BRLAPI_KEY_CMD_ROUTE_CURR_LOCN (BRLAPI_KEY_CMD(0) + 104)
+/** speak speech cursor location */
+#define BRLAPI_KEY_CMD_SPEAK_CURR_LOCN (BRLAPI_KEY_CMD(0) + 105)
+/** set speech cursor visibility on/off */
+#define BRLAPI_KEY_CMD_SHOW_CURR_LOCN (BRLAPI_KEY_CMD(0) + 106)
+/** save clipboard to disk */
+#define BRLAPI_KEY_CMD_CLIP_SAVE (BRLAPI_KEY_CMD(0) + 107)
+/** restore clipboard from disk */
+#define BRLAPI_KEY_CMD_CLIP_RESTORE (BRLAPI_KEY_CMD(0) + 108)
+/** set braille input mode dots/text */
+#define BRLAPI_KEY_CMD_BRLUCDOTS (BRLAPI_KEY_CMD(0) + 109)
+/** set braille keyboard enabled/disabled */
+#define BRLAPI_KEY_CMD_BRLKBD (BRLAPI_KEY_CMD(0) + 110)
+/** clear all sticky input modifiers */
+#define BRLAPI_KEY_CMD_UNSTICK (BRLAPI_KEY_CMD(0) + 111)
+/** cycle the AltGr (Right Alt) sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_ALTGR (BRLAPI_KEY_CMD(0) + 112)
+/** cycle the GUI (Windows) sticky input modifier (next, on, off) */
+#define BRLAPI_KEY_CMD_GUI (BRLAPI_KEY_CMD(0) + 113)
+/** stop the braille driver */
+#define BRLAPI_KEY_CMD_BRL_STOP (BRLAPI_KEY_CMD(0) + 114)
+/** start the braille driver */
+#define BRLAPI_KEY_CMD_BRL_START (BRLAPI_KEY_CMD(0) + 115)
+/** stop the speech driver */
+#define BRLAPI_KEY_CMD_SPK_STOP (BRLAPI_KEY_CMD(0) + 116)
+/** start the speech driver */
+#define BRLAPI_KEY_CMD_SPK_START (BRLAPI_KEY_CMD(0) + 117)
+/** stop the screen driver */
+#define BRLAPI_KEY_CMD_SCR_STOP (BRLAPI_KEY_CMD(0) + 118)
+/** start the screen driver */
+#define BRLAPI_KEY_CMD_SCR_START (BRLAPI_KEY_CMD(0) + 119)
+/** bind to the previous virtual terminal */
+#define BRLAPI_KEY_CMD_SELECTVT_PREV (BRLAPI_KEY_CMD(0) + 120)
+/** bind to the next virtual terminal */
+#define BRLAPI_KEY_CMD_SELECTVT_NEXT (BRLAPI_KEY_CMD(0) + 121)
+/** go backward to nearest non-blank braille window */
+#define BRLAPI_KEY_CMD_PRNBWIN (BRLAPI_KEY_CMD(0) + 122)
+/** go forward to nearest non-blank braille window */
+#define BRLAPI_KEY_CMD_NXNBWIN (BRLAPI_KEY_CMD(0) + 123)
+/** set touch navigation on/off */
+#define BRLAPI_KEY_CMD_TOUCH_NAV (BRLAPI_KEY_CMD(0) + 124)
+/** bring screen cursor to character */
+#define BRLAPI_KEY_CMD_ROUTE BRLAPI_KEY_CMD(1)
+/** start new clipboard at character */
+#define BRLAPI_KEY_CMD_CLIP_NEW BRLAPI_KEY_CMD(2)
+/** deprecated definition of CLIP_NEW - start new clipboard at character */
+#define BRLAPI_KEY_CMD_CUTBEGIN BRLAPI_KEY_CMD(2)
+/** append to clipboard from character */
+#define BRLAPI_KEY_CMD_CLIP_ADD BRLAPI_KEY_CMD(3)
+/** deprecated definition of CLIP_ADD - append to clipboard from character */
+#define BRLAPI_KEY_CMD_CUTAPPEND BRLAPI_KEY_CMD(3)
+/** rectangular copy to character */
+#define BRLAPI_KEY_CMD_COPY_RECT BRLAPI_KEY_CMD(4)
+/** deprecated definition of COPY_RECT - rectangular copy to character */
+#define BRLAPI_KEY_CMD_CUTRECT BRLAPI_KEY_CMD(4)
+/** linear copy to character */
+#define BRLAPI_KEY_CMD_COPY_LINE BRLAPI_KEY_CMD(5)
+/** deprecated definition of COPY_LINE - linear copy to character */
+#define BRLAPI_KEY_CMD_CUTLINE BRLAPI_KEY_CMD(5)
+/** switch to a specific virtual terminal */
+#define BRLAPI_KEY_CMD_SWITCHVT BRLAPI_KEY_CMD(6)
+/** go up to nearest line with less indent than character */
+#define BRLAPI_KEY_CMD_PRINDENT BRLAPI_KEY_CMD(7)
+/** go down to nearest line with less indent than character */
+#define BRLAPI_KEY_CMD_NXINDENT BRLAPI_KEY_CMD(8)
+/** describe character */
+#define BRLAPI_KEY_CMD_DESCCHAR BRLAPI_KEY_CMD(9)
+/** place left end of braille window at character */
+#define BRLAPI_KEY_CMD_SETLEFT BRLAPI_KEY_CMD(10)
+/** remember current braille window position */
+#define BRLAPI_KEY_CMD_SETMARK BRLAPI_KEY_CMD(11)
+/** go to remembered braille window position */
+#define BRLAPI_KEY_CMD_GOTOMARK BRLAPI_KEY_CMD(12)
+/** go to selected line */
+#define BRLAPI_KEY_CMD_GOTOLINE BRLAPI_KEY_CMD(13)
+/** go up to nearest line with different character */
+#define BRLAPI_KEY_CMD_PRDIFCHAR BRLAPI_KEY_CMD(14)
+/** go down to nearest line with different character */
+#define BRLAPI_KEY_CMD_NXDIFCHAR BRLAPI_KEY_CMD(15)
+/** copy characters to clipboard */
+#define BRLAPI_KEY_CMD_CLIP_COPY BRLAPI_KEY_CMD(16)
+/** deprecated definition of CLIP_COPY - copy characters to clipboard */
+#define BRLAPI_KEY_CMD_COPYCHARS BRLAPI_KEY_CMD(16)
+/** append characters to clipboard */
+#define BRLAPI_KEY_CMD_CLIP_APPEND BRLAPI_KEY_CMD(17)
+/** deprecated definition of CLIP_APPEND - append characters to clipboard */
+#define BRLAPI_KEY_CMD_APNDCHARS BRLAPI_KEY_CMD(17)
+/** insert clipboard history entry after screen cursor */
+#define BRLAPI_KEY_CMD_PASTE_HISTORY BRLAPI_KEY_CMD(18)
+/** set text table */
+#define BRLAPI_KEY_CMD_SET_TEXT_TABLE BRLAPI_KEY_CMD(19)
+/** set attributes table */
+#define BRLAPI_KEY_CMD_SET_ATTRIBUTES_TABLE BRLAPI_KEY_CMD(20)
+/** set contraction table */
+#define BRLAPI_KEY_CMD_SET_CONTRACTION_TABLE BRLAPI_KEY_CMD(21)
+/** set keyboard table */
+#define BRLAPI_KEY_CMD_SET_KEYBOARD_TABLE BRLAPI_KEY_CMD(22)
+/** set language profile */
+#define BRLAPI_KEY_CMD_SET_LANGUAGE_PROFILE BRLAPI_KEY_CMD(23)
+/** bind to a specific virtual terminal */
+#define BRLAPI_KEY_CMD_SELECTVT BRLAPI_KEY_CMD(30)
+/** render an alert */
+#define BRLAPI_KEY_CMD_ALERT BRLAPI_KEY_CMD(31)
+/** type braille dots */
+#define BRLAPI_KEY_CMD_PASSDOTS BRLAPI_KEY_CMD(34)
+/** AT (set 2) keyboard scan code */
+#define BRLAPI_KEY_CMD_PASSAT BRLAPI_KEY_CMD(35)
+/** XT (set 1) keyboard scan code */
+#define BRLAPI_KEY_CMD_PASSXT BRLAPI_KEY_CMD(36)
+/** PS/2 (set 3) keyboard scan code */
+#define BRLAPI_KEY_CMD_PASSPS2 BRLAPI_KEY_CMD(37)
+/** switch to command context */
+#define BRLAPI_KEY_CMD_CONTEXT BRLAPI_KEY_CMD(38)
+/** current reading location */
+#define BRLAPI_KEY_CMD_TOUCH_AT BRLAPI_KEY_CMD(39)
+/** enable feature */
+#define BRLAPI_KEY_FLG_TOGGLE_ON BRLAPI_KEY_FLG(0X0100)
+/** disable feature */
+#define BRLAPI_KEY_FLG_TOGGLE_OFF BRLAPI_KEY_FLG(0X0200)
+/** mask for all toggle flags */
+#define BRLAPI_KEY_FLG_TOGGLE_MASK (BRLAPI_KEY_FLG_TOGGLE_ON | BRLAPI_KEY_FLG_TOGGLE_OFF)
+/** bring screen cursor into braille window after function */
+#define BRLAPI_KEY_FLG_MOTION_ROUTE BRLAPI_KEY_FLG(0X0400)
+/** scale arg=0X00-0XFF to screen height */
+#define BRLAPI_KEY_FLG_MOTION_SCALED BRLAPI_KEY_FLG(0X0800)
+/** go to beginning of line */
+#define BRLAPI_KEY_FLG_MOTION_TOLEFT BRLAPI_KEY_FLG(0X1000)
+/** shift key pressed */
+#define BRLAPI_KEY_FLG_SHIFT BRLAPI_KEY_FLG(0X01)
+/** convert to uppercase */
+#define BRLAPI_KEY_FLG_UPPER BRLAPI_KEY_FLG(0X02)
+/** control key pressed */
+#define BRLAPI_KEY_FLG_CONTROL BRLAPI_KEY_FLG(0X04)
+/** meta (left alt) key pressed */
+#define BRLAPI_KEY_FLG_META BRLAPI_KEY_FLG(0X08)
+/** altgr (right alt) key pressed */
+#define BRLAPI_KEY_FLG_ALTGR BRLAPI_KEY_FLG(0X10)
+/** gui (windows) key pressed */
+#define BRLAPI_KEY_FLG_GUI BRLAPI_KEY_FLG(0X20)
+/** it is a release scan code */
+#define BRLAPI_KEY_FLG_KBD_RELEASE BRLAPI_KEY_FLG(0X0100)
+/** it is an emulation 0 scan code */
+#define BRLAPI_KEY_FLG_KBD_EMUL0 BRLAPI_KEY_FLG(0X0200)
+/** it is an emulation 1 scan code */
+#define BRLAPI_KEY_FLG_KBD_EMUL1 BRLAPI_KEY_FLG(0X0400)
+/** upper-left dot of standard braille cell */
+#define BRLAPI_DOT1 1
+/** middle-left dot of standard braille cell */
+#define BRLAPI_DOT2 2
+/** lower-left dot of standard braille cell */
+#define BRLAPI_DOT3 4
+/** upper-right dot of standard braille cell */
+#define BRLAPI_DOT4 8
+/** middle-right dot of standard braille cell */
+#define BRLAPI_DOT5 16
+/** lower-right dot of standard braille cell */
+#define BRLAPI_DOT6 32
+/** lower-left dot of computer braille cell */
+#define BRLAPI_DOT7 64
+/** lower-right dot of computer braille cell */
+#define BRLAPI_DOT8 128
+/** chord (space bar on braille keyboard) */
+#define BRLAPI_DOTC 256
+
+/** Helper macro to easily produce braille patterns */
+#define BRLAPI_DOTS(dot1, dot2, dot3, dot4, dot5, dot6, dot7, dot8) (\
+ ((dot1)? BRLAPI_DOT1: 0) | \
+ ((dot2)? BRLAPI_DOT2: 0) | \
+ ((dot3)? BRLAPI_DOT3: 0) | \
+ ((dot4)? BRLAPI_DOT4: 0) | \
+ ((dot5)? BRLAPI_DOT5: 0) | \
+ ((dot6)? BRLAPI_DOT6: 0) | \
+ ((dot7)? BRLAPI_DOT7: 0) | \
+ ((dot8)? BRLAPI_DOT8: 0) \
+)
+
+/** space key */
+#define BRLAPI_DOT_CHORD 256
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* BRLAPI_INCLUDED_CONSTANTS */
diff --git a/braille/service/jni/brlttywrapper/brltty/Programs/cmds.auto.h b/braille/service/jni/brlttywrapper/brltty/Programs/cmds.auto.h
new file mode 100644
index 0000000..8b7d9b0
--- /dev/null
+++ b/braille/service/jni/brlttywrapper/brltty/Programs/cmds.auto.h
@@ -0,0 +1,1204 @@
+{ // BRL_CMD_NOOP
+ .name = "NOOP",
+ .code = BRL_CMD_NOOP,
+ .description = strtext("do nothing"),
+},
+
+{ // BRL_CMD_LNUP
+ .name = "LNUP",
+ .code = BRL_CMD_LNUP,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up one line"),
+},
+
+{ // BRL_CMD_LNDN
+ .name = "LNDN",
+ .code = BRL_CMD_LNDN,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down one line"),
+},
+
+{ // BRL_CMD_WINUP
+ .name = "WINUP",
+ .code = BRL_CMD_WINUP,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up several lines"),
+},
+
+{ // BRL_CMD_WINDN
+ .name = "WINDN",
+ .code = BRL_CMD_WINDN,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down several lines"),
+},
+
+{ // BRL_CMD_PRDIFLN
+ .name = "PRDIFLN",
+ .code = BRL_CMD_PRDIFLN,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to nearest line with different content"),
+},
+
+{ // BRL_CMD_NXDIFLN
+ .name = "NXDIFLN",
+ .code = BRL_CMD_NXDIFLN,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down to nearest line with different content"),
+},
+
+{ // BRL_CMD_ATTRUP
+ .name = "ATTRUP",
+ .code = BRL_CMD_ATTRUP,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to nearest line with different highlighting"),
+},
+
+{ // BRL_CMD_ATTRDN
+ .name = "ATTRDN",
+ .code = BRL_CMD_ATTRDN,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down to nearest line with different highlighting"),
+},
+
+{ // BRL_CMD_TOP
+ .name = "TOP",
+ .code = BRL_CMD_TOP,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go to top line"),
+},
+
+{ // BRL_CMD_BOT
+ .name = "BOT",
+ .code = BRL_CMD_BOT,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go to bottom line"),
+},
+
+{ // BRL_CMD_TOP_LEFT
+ .name = "TOP_LEFT",
+ .code = BRL_CMD_TOP_LEFT,
+ .isMotion = 1,
+ .isVertical = 1,
+ .isHorizontal = 1,
+ .description = strtext("go to beginning of top line"),
+},
+
+{ // BRL_CMD_BOT_LEFT
+ .name = "BOT_LEFT",
+ .code = BRL_CMD_BOT_LEFT,
+ .isMotion = 1,
+ .isVertical = 1,
+ .isHorizontal = 1,
+ .description = strtext("go to beginning of bottom line"),
+},
+
+{ // BRL_CMD_PRPGRPH
+ .name = "PRPGRPH",
+ .code = BRL_CMD_PRPGRPH,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to first line of paragraph"),
+},
+
+{ // BRL_CMD_NXPGRPH
+ .name = "NXPGRPH",
+ .code = BRL_CMD_NXPGRPH,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down to first line of next paragraph"),
+},
+
+{ // BRL_CMD_PRPROMPT
+ .name = "PRPROMPT",
+ .code = BRL_CMD_PRPROMPT,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to previous command prompt"),
+},
+
+{ // BRL_CMD_NXPROMPT
+ .name = "NXPROMPT",
+ .code = BRL_CMD_NXPROMPT,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down to next command prompt"),
+},
+
+{ // BRL_CMD_PRSEARCH
+ .name = "PRSEARCH",
+ .code = BRL_CMD_PRSEARCH,
+ .description = strtext("search backward for clipboard text"),
+},
+
+{ // BRL_CMD_NXSEARCH
+ .name = "NXSEARCH",
+ .code = BRL_CMD_NXSEARCH,
+ .description = strtext("search forward for clipboard text"),
+},
+
+{ // BRL_CMD_CHRLT
+ .name = "CHRLT",
+ .code = BRL_CMD_CHRLT,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go left one character"),
+},
+
+{ // BRL_CMD_CHRRT
+ .name = "CHRRT",
+ .code = BRL_CMD_CHRRT,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go right one character"),
+},
+
+{ // BRL_CMD_HWINLT
+ .name = "HWINLT",
+ .code = BRL_CMD_HWINLT,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go left half a braille window"),
+},
+
+{ // BRL_CMD_HWINRT
+ .name = "HWINRT",
+ .code = BRL_CMD_HWINRT,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go right half a braille window"),
+},
+
+{ // BRL_CMD_FWINLT
+ .name = "FWINLT",
+ .code = BRL_CMD_FWINLT,
+ .isMotion = 1,
+ .isPanning = 1,
+ .description = strtext("go backward one braille window"),
+},
+
+{ // BRL_CMD_FWINRT
+ .name = "FWINRT",
+ .code = BRL_CMD_FWINRT,
+ .isMotion = 1,
+ .isPanning = 1,
+ .description = strtext("go forward one braille window"),
+},
+
+{ // BRL_CMD_FWINLTSKIP
+ .name = "FWINLTSKIP",
+ .code = BRL_CMD_FWINLTSKIP,
+ .isMotion = 1,
+ .isPanning = 1,
+ .description = strtext("go backward skipping blank braille windows"),
+},
+
+{ // BRL_CMD_FWINRTSKIP
+ .name = "FWINRTSKIP",
+ .code = BRL_CMD_FWINRTSKIP,
+ .isMotion = 1,
+ .isPanning = 1,
+ .description = strtext("go forward skipping blank braille windows"),
+},
+
+{ // BRL_CMD_LNBEG
+ .name = "LNBEG",
+ .code = BRL_CMD_LNBEG,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go to beginning of line"),
+},
+
+{ // BRL_CMD_LNEND
+ .name = "LNEND",
+ .code = BRL_CMD_LNEND,
+ .isMotion = 1,
+ .isHorizontal = 1,
+ .description = strtext("go to end of line"),
+},
+
+{ // BRL_CMD_HOME
+ .name = "HOME",
+ .code = BRL_CMD_HOME,
+ .isMotion = 1,
+ .description = strtext("go to screen cursor"),
+},
+
+{ // BRL_CMD_BACK
+ .name = "BACK",
+ .code = BRL_CMD_BACK,
+ .isMotion = 1,
+ .description = strtext("go back after cursor tracking"),
+},
+
+{ // BRL_CMD_RETURN
+ .name = "RETURN",
+ .code = BRL_CMD_RETURN,
+ .isMotion = 1,
+ .description = strtext("go to screen cursor or go back after cursor tracking"),
+},
+
+{ // BRL_CMD_FREEZE
+ .name = "FREEZE",
+ .code = BRL_CMD_FREEZE,
+ .isToggle = 1,
+ .description = strtext("set screen image frozen/unfrozen"),
+},
+
+{ // BRL_CMD_DISPMD
+ .name = "DISPMD",
+ .code = BRL_CMD_DISPMD,
+ .isToggle = 1,
+ .description = strtext("set display mode attributes/text"),
+},
+
+{ // BRL_CMD_SIXDOTS
+ .name = "SIXDOTS",
+ .code = BRL_CMD_SIXDOTS,
+ .isToggle = 1,
+ .description = strtext("set text style 6-dot/8-dot"),
+},
+
+{ // BRL_CMD_SLIDEWIN
+ .name = "SLIDEWIN",
+ .code = BRL_CMD_SLIDEWIN,
+ .isToggle = 1,
+ .description = strtext("set sliding braille window on/off"),
+},
+
+{ // BRL_CMD_SKPIDLNS
+ .name = "SKPIDLNS",
+ .code = BRL_CMD_SKPIDLNS,
+ .isToggle = 1,
+ .description = strtext("set skipping of lines with identical content on/off"),
+},
+
+{ // BRL_CMD_SKPBLNKWINS
+ .name = "SKPBLNKWINS",
+ .code = BRL_CMD_SKPBLNKWINS,
+ .isToggle = 1,
+ .description = strtext("set skipping of blank braille windows on/off"),
+},
+
+{ // BRL_CMD_CSRVIS
+ .name = "CSRVIS",
+ .code = BRL_CMD_CSRVIS,
+ .isToggle = 1,
+ .description = strtext("set screen cursor visibility on/off"),
+},
+
+{ // BRL_CMD_CSRHIDE
+ .name = "CSRHIDE",
+ .code = BRL_CMD_CSRHIDE,
+ .isToggle = 1,
+ .description = strtext("set hidden screen cursor on/off"),
+},
+
+{ // BRL_CMD_CSRTRK
+ .name = "CSRTRK",
+ .code = BRL_CMD_CSRTRK,
+ .isToggle = 1,
+ .description = strtext("set track screen cursor on/off"),
+},
+
+{ // BRL_CMD_CSRSIZE
+ .name = "CSRSIZE",
+ .code = BRL_CMD_CSRSIZE,
+ .isToggle = 1,
+ .description = strtext("set screen cursor style block/underline"),
+},
+
+{ // BRL_CMD_CSRBLINK
+ .name = "CSRBLINK",
+ .code = BRL_CMD_CSRBLINK,
+ .isToggle = 1,
+ .description = strtext("set screen cursor blinking on/off"),
+},
+
+{ // BRL_CMD_ATTRVIS
+ .name = "ATTRVIS",
+ .code = BRL_CMD_ATTRVIS,
+ .isToggle = 1,
+ .description = strtext("set attribute underlining on/off"),
+},
+
+{ // BRL_CMD_ATTRBLINK
+ .name = "ATTRBLINK",
+ .code = BRL_CMD_ATTRBLINK,
+ .isToggle = 1,
+ .description = strtext("set attribute blinking on/off"),
+},
+
+{ // BRL_CMD_CAPBLINK
+ .name = "CAPBLINK",
+ .code = BRL_CMD_CAPBLINK,
+ .isToggle = 1,
+ .description = strtext("set capital letter blinking on/off"),
+},
+
+{ // BRL_CMD_TUNES
+ .name = "TUNES",
+ .code = BRL_CMD_TUNES,
+ .isToggle = 1,
+ .description = strtext("set alert tunes on/off"),
+},
+
+{ // BRL_CMD_AUTOREPEAT
+ .name = "AUTOREPEAT",
+ .code = BRL_CMD_AUTOREPEAT,
+ .isToggle = 1,
+ .description = strtext("set autorepeat on/off"),
+},
+
+{ // BRL_CMD_AUTOSPEAK
+ .name = "AUTOSPEAK",
+ .code = BRL_CMD_AUTOSPEAK,
+ .isToggle = 1,
+ .description = strtext("set autospeak on/off"),
+},
+
+{ // BRL_CMD_HELP
+ .name = "HELP",
+ .code = BRL_CMD_HELP,
+ .description = strtext("enter/leave help display"),
+},
+
+{ // BRL_CMD_INFO
+ .name = "INFO",
+ .code = BRL_CMD_INFO,
+ .description = strtext("enter/leave status display"),
+},
+
+{ // BRL_CMD_LEARN
+ .name = "LEARN",
+ .code = BRL_CMD_LEARN,
+ .description = strtext("enter/leave command learn mode"),
+},
+
+{ // BRL_CMD_PREFMENU
+ .name = "PREFMENU",
+ .code = BRL_CMD_PREFMENU,
+ .description = strtext("enter/leave preferences menu"),
+},
+
+{ // BRL_CMD_PREFSAVE
+ .name = "PREFSAVE",
+ .code = BRL_CMD_PREFSAVE,
+ .description = strtext("save preferences to disk"),
+},
+
+{ // BRL_CMD_PREFLOAD
+ .name = "PREFLOAD",
+ .code = BRL_CMD_PREFLOAD,
+ .description = strtext("restore preferences from disk"),
+},
+
+{ // BRL_CMD_MENU_FIRST_ITEM
+ .name = "MENU_FIRST_ITEM",
+ .code = BRL_CMD_MENU_FIRST_ITEM,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to first item"),
+},
+
+{ // BRL_CMD_MENU_LAST_ITEM
+ .name = "MENU_LAST_ITEM",
+ .code = BRL_CMD_MENU_LAST_ITEM,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go down to last item"),
+},
+
+{ // BRL_CMD_MENU_PREV_ITEM
+ .name = "MENU_PREV_ITEM",
+ .code = BRL_CMD_MENU_PREV_ITEM,
+ .isMotion = 1,
+ .isVertical = 1,
+ .description = strtext("go up to previous item"),
+},
+
+{ // BRL_CMD_MENU_NEXT_ITEM
+ .name = "MENU_NEXT_ITEM",
+ .code = BRL_CMD_MENU_NEXT_ITEM,