1 /*
2  *      Authors:  Hadi Bargi Rangin  bargi@dots.physics.orst.edu
3  *                Bill Barry         barryb@dots.physics.orst.edu
4  *                Randy Lundquist    randyl@dots.physics.orst.edu
5  *
6  * Modifications Copyright (c) 1995 by
7  * Science Access Project, Oregon State University.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 3, or (at your option)
12  * any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program (see the file COPYING); if not, see
21  * https://www.gnu.org/licenses/, or contact Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
23  *
24  ****************************************************************
25  * $Id$ GNU
26  */
27 
28 #ifdef HAVE_BRAILLE
29 
30 extern void StartBraille __P((void));
31 
32 struct braille_display
33 {
34   struct display *bd_dpy;	/* display we are connected to */
35   int   bd_start_braille;	/* screenrc var to request to turn braille on */
36   int   bd_using_braille;	/* all is fine, use braille */
37   struct event bd_readev;
38   struct event bd_writeev;
39   struct event bd_selectev;
40   int   bd_fd;		/* file descriptor */
41   int   bd_obuflen;	/* current number of charactors in output buffer */
42   char  bd_obuf[IOSIZE];
43   int   bd_info;	/* default, no info, 0,1,2,3 */
44   int   bd_ncrc;	/* default 1, numbers of cells on the right side of real cursor, 1...bd_width */
45   int   bd_skip;	/* default off, on/off */
46   int   bd_link;	/* default, linked, on/off */
47   int   bd_width;	/* length of braille display to use, <=bd_ncells */
48   int   bd_scroll;	/* default on, scroll on/off */
49   char *bd_braille_table;	/* braille code */
50 
51   int   bd_bell;	/* bell used for navigation on/off */
52   int   bd_ncells;	/* real number of cells on braille display */
53   int   bd_eightdot;	/* eightdot on/off */
54   int   bd_baud;	/* communication baudrate between port and braille display */
55   char *bd_port;	/* serial port to use */
56   char *bd_type; 	/* kind of braille display */
57   double bd_version;	/* rom version of braille display */
58   char  bd_btable[256];	/* braille translation table */
59 
60   /* functions which communicate with braille displays */
61   int (*write_line_braille) __P((char [],int, int));
62   void (*buttonpress) __P((void));
63   int (*bd_response_test) __P((void));
64 
65   int   bd_refreshing;	/* are we doing a refresh? */
66   char  bd_line[40+1];	/* bd_ncells chars displayed on braille */
67   int   bd_cursorpos;	/* cursor position on braille */
68   char  bd_oline[40+1];	/* bd_ncells chars displayed on braille */
69   int   bd_sx, bd_sy;	/* screen cursor pos */
70   int   bd_moved;	/* used braille move keys */
71 
72   int   bd_searching;	/* are we seaching (bd_skip is on) */
73   int   bd_searchmax;	/* search: max x */
74   int   bd_searchmin;	/* search: min x */
75   int   bd_searchstart;
76   int   bd_searchend;
77 };
78 
79 extern struct braille_display bd;
80 
81 #define BD_FORE bd.bd_dpy->d_fore
82 
83 #endif
84