Tty getting & leaving(3)

NAME
Tty getting & leaving - How to take control of ttys for direct braille display / read.

  Defines
#define BRLCOMMANDS 0
#define BRLKEYCODES 1

  Functions
int brlapi_getTty (int tty, int how)
int brlapi_leaveTty (void)
int brlapi_setFocus (int tty)

Detailed Description

Before being able to write on the braille display, the application must tell the server which tty it will handle. Some checking is done just to be sure that only one client gets control of each tty.

The application must also specify how braille keys will be delivered to it. Two ways are possible: KEYCODES and COMMANDS

•   KEYCODES are specific to each braille driver, since the raw keycode, as defined in the driver will be given for each key press. Using them leads to building highly driver-dependent applications, which can yet sometimes be useful to mimic existing proprietary applications for instance.

•   COMMANDS means that applications will get exactly the same values as brltty. This allows driver-independent clients, which will hopefully be nice to use with a lot of different terminals

See also:
    brlapi_readKey()

Define Documentation

  #define BRLCOMMANDS 0

ask for brltty commands

  #define BRLKEYCODES 1

ask for raw driver keycodes

Function Documentation

  int brlapi_getTty (int tty, int how)

ask for some tty, with some key mechanism

Parameters:
    tty .IP "•" 2 If tty>0, application takes control of the specified tty;

    •   if tty<=0, the library first tries to get the tty number by reading /proc/self/stat (on linux). If none is found, it looks at a CONTROLVT environment variable, then WINDOWID is tried (for an xterm case).

    how tells whether the application wants brlapi_readKey() to return keycodes or brltty commands: either BRLKEYCODES or BRLCOMMANDS;

In an X window environment, CONTROLVT might be useful. XFree86 >=4.4 defines an XFree86_VT root window property which exactly holds the used VT, so that it should be given to brlapi_getTty. If it isn't available, one may, right into .xsession and .xinitrc, grep X's log, for instance:

CONTROLVT='$(grep 'using VT number' '/var/log/XFree86.$(echo '$DISPLAY' | sed -e 's/^.*::*\([0-9]*\).*$/\1/').log' | sed -e 's/^.*using VT number \([0-9]*\).*$/\1/')'

CONTROLVT should also be propagated when running remote applications via ssh, for instance, along with BRLAPI_HOSTNAME and the authentication key.

Returns:
    the used tty number on success, -1 on error

See also:
    brlapi_leaveTty() brlapi_readKey()

  int brlapi_leaveTty (void)

stop controlling the tty

Returns:
    0 on success, -1 on error.

See also:
    brlapi_getTty()

  int brlapi_setFocus (int tty)

tell the current tty to brltty

This is intended for focus tellers, such as brltty, xbrlapi, screen, ... brlapi_getTty() must have been called beforewards to tell where this focus applies in the tty tree.

Returns:
    0 on success, -1 on error.

See also:
    brlapi_getTty() brlapi_leaveTty()