[BRLTTY] Low-level BrlAPI questions

Aura Kelloniemi kaura.dev at sange.fi
Thu Apr 1 04:33:06 EDT 2021


Hello,

I return to this questions:

On 2021-03-29 at 09:56 +0300, Aura Kelloniemi <kaura.dev at sange.fi> wrote:
 > Would it require changing the BrlAPI protocol to be able to pass the exception
 > message to the client? It is a nuisance to restart BRLTTY and search the logs.

And I have one more about brlapi_expandKeyCode. I kind of understand what this
function supplies to the caller in struct brlapi_expandedKeyCode_t, but there
is one dark corner: the case of type == BRLAPI_KEY_TYPE_SYM.

As far as I understand, if the key event corresponds to a Unicode symbol, cmd
is set to 0 and arg is set to a Unicode scalar value.

If the symbol corresponds to an X keyboard symbol, cmd is set to 0xFF00, and
arg contains 8 bits of key symbol value.

Questions:
- Am I right in my observations?
- Is there a named constant for this 0xFF00 somewhere?
- Is 8 bits enough space for the key symbol value?
- Are there other possible cmd/arg combinations that I did not list?
- I can't compare the returned keysym arg to the constants defined in
  /usr/include/X11/keysymdef.h, because arg contains only the lowest 8 bits of
  the key symbol value. Is this intentional?
- What would be the most accurate and porable way of extracting all
  information from a brlapi_keyCode_t value? brlapi_expandKeyCode or manually
  decoding the value?
- Why is brlapi_argumentWidth() not exported, even if it is needed to fully
  decode a brlapi_keyCode_t? Its implementation contains undocumented
  information. (For example, see brlapi_common.h line 544.)

-- 
Aura


More information about the BRLTTY mailing list