| ############################################################################### |
| # libbrlapi - A library providing access to braille terminals for applications. |
| # |
| # Copyright (C) 2005-2023 by |
| # Alexis Robert <alexissoft@free.fr> |
| # Samuel Thibault <Samuel.Thibault@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.app/ |
| # |
| # This software is maintained by Dave Mielke <dave@mielke.cc>. |
| ############################################################################### |
| |
| function brlCommand(name, symbol, value, help) { |
| writeCommandDefinition(name, value, help) |
| } |
| |
| function brlBlock(name, symbol, value, help) { |
| if (name == "PASSCHAR") return |
| if (name == "PASSKEY") return |
| |
| writeCommandDefinition(name, "(" value" << KEY_CMD_BLK_SHIFT)", help) |
| } |
| |
| function brlKey(name, symbol, value, help) { |
| } |
| |
| function brlFlag(name, symbol, value, help) { |
| if (value ~ /^0[xX][0-9a-fA-F]+0000$/) { |
| value = tolower(substr(value, 1, length(value)-4)) |
| if (name ~ /^CHAR_/) { |
| name = substr(name, 6) |
| } else { |
| value = value "00" |
| } |
| } else if (value ~ /^\(/) { |
| gsub("BRL_FLG_", "KEY_FLG_", value) |
| } else { |
| return |
| } |
| writePythonAssignment("KEY_FLG_" name, value, help) |
| } |
| |
| function brlDot(number, symbol, value, help) { |
| writePythonAssignment("DOT" number, value, help) |
| } |
| |
| function apiConstant(name, symbol, value, help) { |
| writePythonAssignment(name, value, help) |
| } |
| |
| function apiMask(name, symbol, value, help) { |
| writePythonAssignment("KEY_" name, "c_brlapi." symbol, help) |
| } |
| |
| function apiShift(name, symbol, value, help) { |
| value = hexadecimalValue(value) |
| writePythonAssignment("KEY_" name, value, help) |
| } |
| |
| function apiType(name, symbol, value, help) { |
| value = hexadecimalValue(value) |
| writePythonAssignment("KEY_TYPE_" name, value, help) |
| } |
| |
| function apiKey(name, symbol, value, help) { |
| value = hexadecimalValue(value) |
| |
| if (name == "FUNCTION") { |
| for (i=0; i<35; ++i) { |
| key = "F" (i+1) |
| writeKeyDefinition(key, "(" value " + " i ")", "the " key " key") |
| } |
| } else { |
| writeKeyDefinition(name, value, help) |
| } |
| } |
| |
| function apiRangeType(name, symbol, value, help) { |
| writePythonAssignment("rangeType_" name, value, help) |
| } |
| |
| function writeCommandDefinition(name, value, help) { |
| writePythonAssignment("KEY_CMD_" name, value, help) |
| } |
| |
| function writeKeyDefinition(name, value, help) { |
| writePythonAssignment("KEY_SYM_" name, value, help) |
| } |
| |
| function writePythonAssignment(name, value, help) { |
| if (length(help) > 0) print "## " help |
| print name " = " value |
| } |
| |
| function hexadecimalValue(value) { |
| value = tolower(value) |
| return value |
| } |
| |