############################################################################### # libbrlapi - A library providing access to braille terminals for applications. # # Copyright (C) 2006-2019 by # Samuel Thibault # Sébastien Hinderer # # 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 . ############################################################################### BEGIN { print "package org.a11y.brlapi;" print "" print "public interface Constants {" } END { print "}" } 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 = hexadecimalValue(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 } writeJavaConstant("int", "KEY_FLG_" name, value, help) } function brlDot(number, symbol, value, help) { writeJavaConstant("byte", "DOT" number, "(byte) (" value ")", help) } function apiConstant(name, symbol, value, help) { writeJavaConstant("int", name, value); } function apiMask(name, symbol, value, help) { writeJavaConstant("long", "KEY_" name, hexadecimalValue(value) "L"); } function apiShift(name, symbol, value, help) { writeJavaConstant("int", "KEY_" name, hexadecimalValue(value)); } function apiType(name, symbol, value, help) { writeJavaConstant("int", "KEY_TYPE_" name, hexadecimalValue(value)); } function apiKey(name, symbol, value, help) { value = hexadecimalValue(value) if (name == "FUNCTION") { for (i=0; i<35; ++i) { writeKeyDefinition("F" (i+1), "(" value " + " i ")") } } else { writeKeyDefinition(name, value) } } function apiRangeType(name, symbol, value, help) { writeJavaConstant("int", "rangeType_" name, value, help) } function writeCommandDefinition(name, value, help) { writeJavaConstant("int", "KEY_CMD_" name, value, help) } function writeKeyDefinition(name, value) { writeJavaConstant("int", "KEY_SYM_" name, value) } function writeJavaConstant(type, name, value, help) { writeJavadocComment(help) print " " type " " name " = " value ";" } function writeJavadocComment(text) { if (length(text) > 0) print " /** " text " */" } function hexadecimalValue(value) { value = tolower(value) gsub("x0+", "x", value) gsub("x$", "x0", value) return value }