static void showKeyCodes(void) { int res; brlapi_keyCode_t cmd; char buf[0X100]; fprintf(stderr,"Entering keycode learn mode\n"); if (brlapi_getDriverName(buf, sizeof(buf))==-1) { brlapi_perror("getDriverName"); return; } if (brlapi_enterTtyMode(-1, buf)<0) { brlapi_perror("enterTtyMode"); return; } if (brlapi_acceptAllKeys()==-1) { brlapi_perror("acceptAllKeys"); return; } if (brlapi_writeText(BRLAPI_CURSOR_OFF, "show key codes")<0) { brlapi_perror("brlapi_writeText"); exit(PROG_EXIT_FATAL); } while ((res = brlapi_readKey(1, &cmd)) != -1) { sprintf(buf, "0X%" BRLAPI_PRIxKEYCODE " (%" BRLAPI_PRIuKEYCODE ")",cmd, cmd); brlapi_writeText(BRLAPI_CURSOR_OFF, buf); fprintf(stderr, "%s\n", buf); } brlapi_perror("brlapi_readKey"); }
static void enterLearnMode(void) { int res; brlapi_keyCode_t code; int cmd; char buf[0X100]; fprintf(stderr,"Entering command learn mode\n"); if (brlapi_enterTtyMode(-1, NULL)<0) { brlapi_perror("enterTtyMode"); return; } if (brlapi_writeText(BRLAPI_CURSOR_OFF, "command learn mode")<0) { brlapi_perror("brlapi_writeText"); exit(PROG_EXIT_FATAL); } while ((res = brlapi_readKey(1, &code)) != -1) { fprintf(stderr, "got key %016"BRLAPI_PRIxKEYCODE"\n",code); cmd = cmdBrlapiToBrltty(code); describeCommand(cmd, buf, sizeof(buf), CDO_IncludeName | CDO_IncludeOperand); brlapi_writeText(BRLAPI_CURSOR_OFF, buf); fprintf(stderr, "%s\n", buf); if (cmd==BRL_CMD_LEARN) return; } brlapi_perror("brlapi_readKey"); }
bool BDevice::enableAccessibilityMode() { if (! this->accessibilityMode) if (brlapi_enterTtyMode(BRLAPI_TTY_DEFAULT, NULL) >= 0) this->accessibilityMode = true; return (this->accessibilityMode); }
static void showDots(void) { unsigned int x, y; brlapi_keyCode_t k; if (brlapi_getDisplaySize(&x, &y)<0) { brlapi_perror("failed"); exit(PROG_EXIT_FATAL); } if (brlapi_enterTtyMode(-1, NULL)<0) { brlapi_perror("enterTtyMode"); exit(PROG_EXIT_FATAL); } if (x*y<DOTS_TOTALLEN) { fprintf(stderr,"can't show dots with a braille display with less than %d cells\n",(int)DOTS_TOTALLEN); exit(PROG_EXIT_SEMANTIC); } { char text[x*y+1]; unsigned char or[x*y]; brlapi_writeArguments_t wa = BRLAPI_WRITEARGUMENTS_INITIALIZER; fprintf(stderr,"Showing dot patterns\n"); memcpy(text,DOTS_TEXT,DOTS_TEXTLEN); memset(text+DOTS_TEXTLEN,' ',sizeof(text)-DOTS_TEXTLEN); text[x*y] = 0; wa.regionBegin = 1; wa.regionSize = sizeof(or); wa.text = text; memset(or,0,sizeof(or)); or[DOTS_TEXTLEN+0] = BRL_DOT_1; or[DOTS_TEXTLEN+1] = BRL_DOT_2; or[DOTS_TEXTLEN+2] = BRL_DOT_3; or[DOTS_TEXTLEN+3] = BRL_DOT_4; or[DOTS_TEXTLEN+4] = BRL_DOT_5; or[DOTS_TEXTLEN+5] = BRL_DOT_6; or[DOTS_TEXTLEN+6] = BRL_DOT_7; or[DOTS_TEXTLEN+7] = BRL_DOT_8; wa.orMask = or; if (brlapi_write(&wa)<0) { brlapi_perror("brlapi_write"); exit(PROG_EXIT_FATAL); } } brlapi_readKey(1, &k); }