1 #ifndef SPEAKUP_TYPES_H
2 #define SPEAKUP_TYPES_H
5 * This file includes all of the typedefs and structs used in speakup.
8 #include <linux/types.h>
10 #include <linux/errno.h>
11 #include <linux/delay.h>
12 #include <linux/wait.h> /* for wait_queue */
13 #include <linux/init.h> /* for __init */
14 #include <linux/module.h>
15 #include <linux/vt_kern.h>
16 #include <linux/spinlock.h>
17 #include <linux/mutex.h>
18 #include <linux/io.h> /* for inb_p, outb_p, inb, outb, etc... */
36 VERSION
= 0, SYNTH
, SILENT
, SYNTH_DIRECT
,
38 PUNC_SOME
, PUNC_MOST
, PUNC_ALL
,
39 DELIM
, REPEATS
, EXNUMBER
,
40 DELAY
, TRIGGER
, JIFFY
, FULL
, /* all timers must be together */
41 BLEEP_TIME
, CURSOR_TIME
, BELL_POS
,
42 SAY_CONTROL
, SAY_WORD_CTL
, NO_INTERRUPT
, KEY_ECHO
,
43 SPELL_DELAY
, PUNC_LEVEL
, READING_PUNC
,
45 RATE
, PITCH
, VOL
, TONE
, PUNCT
, VOICE
, FREQUENCY
, LANG
, DIRECT
,
46 CAPS_START
, CAPS_STOP
, CHARTAB
,
50 typedef int (*special_func
)(struct vc_data
*vc
, u_char type
, u_char ch
,
53 #define COLOR_BUFFER_SIZE 160
55 struct spk_highlight_color_track
{
56 /* Count of each background color */
57 unsigned int bgcount
[8];
58 /* Buffer for characters drawn with each background color */
59 char highbuf
[8][COLOR_BUFFER_SIZE
];
60 /* Current index into highbuf */
61 unsigned int highsize
[8];
62 /* Reading Position for each color */
63 u_long rpos
[8], rx
[8], ry
[8];
64 /* Real Cursor Y Position */
69 u_long reading_x
, cursor_x
;
70 u_long reading_y
, cursor_y
;
71 u_long reading_pos
, cursor_pos
;
73 u_long w_top
, w_bottom
, w_left
, w_right
;
74 u_char w_start
, w_enabled
;
75 u_char reading_attr
, old_attr
;
77 struct spk_highlight_color_track ht
;
81 /* now some defines to make these easier to use. */
82 #define spk_shut_up (speakup_console[vc->vc_num]->shut_up)
83 #define spk_killed (speakup_console[vc->vc_num]->shut_up & 0x40)
84 #define spk_x (speakup_console[vc->vc_num]->reading_x)
85 #define spk_cx (speakup_console[vc->vc_num]->cursor_x)
86 #define spk_y (speakup_console[vc->vc_num]->reading_y)
87 #define spk_cy (speakup_console[vc->vc_num]->cursor_y)
88 #define spk_pos (speakup_console[vc->vc_num]->reading_pos)
89 #define spk_cp (speakup_console[vc->vc_num]->cursor_pos)
90 #define goto_pos (speakup_console[vc->vc_num]->go_pos)
91 #define goto_x (speakup_console[vc->vc_num]->go_x)
92 #define win_top (speakup_console[vc->vc_num]->w_top)
93 #define win_bottom (speakup_console[vc->vc_num]->w_bottom)
94 #define win_left (speakup_console[vc->vc_num]->w_left)
95 #define win_right (speakup_console[vc->vc_num]->w_right)
96 #define win_start (speakup_console[vc->vc_num]->w_start)
97 #define win_enabled (speakup_console[vc->vc_num]->w_enabled)
98 #define spk_attr (speakup_console[vc->vc_num]->reading_attr)
99 #define spk_old_attr (speakup_console[vc->vc_num]->old_attr)
100 #define spk_parked (speakup_console[vc->vc_num]->parked)
102 struct st_var_header
{
104 enum var_id_t var_id
;
105 enum var_type_t var_type
;
106 void *p_val
; /* ptr to programs variable to store value */
107 void *data
; /* ptr to the vars data */
115 short offset
, multiplier
; /* for fiddling rates etc. */
116 char *out_str
; /* if synth needs char representation of number */
117 int value
; /* current value */
121 enum var_id_t var_id
;
125 struct string_var_t
{
130 enum var_id_t var_id
;
133 struct string_var_t s
;
137 struct st_bits_data
{ /* punc, repeats, word delim bits */
143 struct synth_indexing
{
145 unsigned char lowindex
;
146 unsigned char highindex
;
147 unsigned char currindex
;
153 const char *long_name
;
164 const int checkval
; /* for validating a proper synth module */
168 int (*probe
)(struct spk_synth
*synth
);
169 void (*release
)(void);
170 const char *(*synth_immediate
)(struct spk_synth
*synth
, const char *buff
);
171 void (*catch_up
)(struct spk_synth
*synth
);
172 void (*flush
)(struct spk_synth
*synth
);
173 int (*is_alive
)(struct spk_synth
*synth
);
174 int (*synth_adjust
)(struct st_var_header
*var
);
175 void (*read_buff_add
)(u_char
);
176 unsigned char (*get_index
)(void);
177 struct synth_indexing indexing
;
179 struct attribute_group attributes
;
182 struct speakup_info_t
{
190 unsigned long jiffies
;