api.h File Reference.TH "api.h" 3 "22 Dec 2004" "Version 1.0" "BrlAPI"

NAME
api.h - types, defines and functions prototypes for BrlAPI's library

SYNOPSIS

#include <inttypes.h>
#include <unistd.h>
#include <pthread.h>

  Data Structures
struct brlapi_settings_t
Settings structure for BrlAPI connection.
struct brlapi_writeStruct

  Defines
#define BRLAPI_MAXPACKETSIZE 512
#define BRLAPI_SOCKETPORTNUM 35751
#define BRLAPI_SOCKETPATH '/var/lib/BrlAPI/'
#define BRLAPI_ETCDIR '/etc'
#define BRLAPI_AUTHFILE 'brlapi.key'
#define BRLAPI_DEFAUTHPATH BRLAPI_ETCDIR '/' BRLAPI_AUTHFILE
#define BRLCOMMANDS 0
#define BRLKEYCODES 1
#define BRLAPI_WRITESTRUCT_INITIALIZER { -1, 0, 0, NULL, NULL, NULL, -1};
#define BRL_KEYBUF_SIZE 256
#define BRL_KEYCODE_MAX ((brl_keycode_t) (UINT32_MAX))
#define BRLERR_SUCCESS 0
#define BRLERR_NOMEM 1
#define BRLERR_TTYBUSY 2
#define BRLERR_RAWMODEBUSY 3
#define BRLERR_UNKNOWN_INSTRUCTION 4
#define BRLERR_ILLEGAL_INSTRUCTION 5
#define BRLERR_INVALID_PARAMETER 6
#define BRLERR_INVALID_PACKET 7
#define BRLERR_RAWNOTSUPP 8
#define BRLERR_KEYSNOTSUPP 9
#define BRLERR_CONNREFUSED 10
#define BRLERR_OPNOTSUPP 11
#define BRLERR_GAIERR 12
#define BRLERR_LIBCERR 13
#define BRLERR_UNKNOWNTTY 14
#define BRLERR_PROTOCOL_VERSION 15
#define BRLERR_EOF 16
#define BRLERR_TOORECURSE 17
#define BRLERR_DRIVERERROR 18
#define brlapi_errno (*brlapi_errno_location ())

  Typedefs
typedef uint32_t brl_keycode_t
typedef uint32_t brl_type_t
typedef void(* brlapi_errorHandler_t )(int err, brl_type_t type, const void *buf, size_t size)

  Functions
int brlapi_initializeConnection (const brlapi_settings_t *clientSettings, brlapi_settings_t *usedSettings)
void brlapi_closeConnection (void)
int brlapi_loadAuthKey (const char *filename, size_t *authlength, void *auth)
int brlapi_getDriverId (unsigned char *id, size_t n)
int brlapi_getDriverName (unsigned char *name, size_t n)
int brlapi_getDisplaySize (unsigned int *x, unsigned int *y)
int brlapi_getTty (int tty, int how)
int brlapi_leaveTty (void)
int brlapi_setFocus (int tty)
int brlapi_writeText (int cursor, const unsigned char *str)
int brlapi_writeDots (const unsigned char *dots)
int brlapi_write (const brlapi_writeStruct *s)
int brlapi_readKey (int block, brl_keycode_t *code)
int brlapi_ignoreKeyRange (brl_keycode_t x, brl_keycode_t y)
int brlapi_ignoreKeySet (const brl_keycode_t *s, unsigned int n)
int brlapi_unignoreKeyRange (brl_keycode_t x, brl_keycode_t y)
int brlapi_unignoreKeySet (const brl_keycode_t *s, unsigned int n)
int brlapi_getRaw (void)
int brlapi_leaveRaw (void)
ssize_t brlapi_sendRaw (const unsigned char *buf, size_t size)
ssize_t brlapi_recvRaw (unsigned char *buf, size_t size)
void brlapi_perror (const char *s)
int * brlapi_errno_location (void)
const char * brlapi_strerror (int err)
const char * brlapi_packetType (brl_type_t ptype)
brlapi_errorHandler_t brlapi_setErrorHandler (brlapi_errorHandler_t handler)

  Variables
const char * brlapi_errlist []
const int brlapi_nerr
int brlapi_errno
pthread_mutex_t brlapi_fd_mutex

Detailed Description

Define Documentation

  #define BRLAPI_MAXPACKETSIZE 512

Maximum packet size for packets exchanged on sockets and with braille terminal

Variable Documentation

  pthread_mutex_t brlapi_fd_mutex

Mutex for protecting concurrent fd access

In order to regulate concurrent access to the library's file descriptor and requests to / answers from BrlAPI server, every function of the library locks this mutex, namely

•   brlapi_initializeConnection()

•   brlapi_closeConnection()

•   brlapi_getRaw()

•   brlapi_leaveRaw()

•   brlapi_sendRaw()

•   brlapi_recvRaw()

•   brlapi_getDriverId()

•   brlapi_getDriverName()

•   brlapi_getDisplaySize()

•   brlapi_getTty()

•   brlapi_leaveTty()

•   brlapi_*write*()

•   brlapi_(un)?ignorekey(Range|Set)()

•   brlapi_readKey()

If both these functions and brlapi_writePacket() or brlapi_readPacket() are used in a multithreaded application, this mutex must be locked before calling brlapi_writePacket() or brlapi_readPacket(), and unlocked afterwards.

Author

Generated automatically by Doxygen for BrlAPI from the source code.