26 #include <linux/sched.h>
34 #define DRV_VERSION "2.21"
35 #define SYNTH_CLEAR 0x18
36 #define PROCSPEECH '\r'
40 static struct var_t vars[] = {
43 {
RATE, .u.n = {
"@W%d", 6, 1, 9, 0, 0,
NULL } },
44 {
PITCH, .u.n = {
"@F%x", 10, 0, 15, 0, 0,
NULL } },
45 {
VOL, .u.n = {
"@A%x", 10, 0, 15, 0, 0,
NULL } },
46 {
VOICE, .u.n = {
"@V%d", 1, 1, 6, 0, 0,
NULL } },
47 {
LANG, .u.n = {
"@=%d,", 1, 1, 4, 0, 0,
NULL } },
85 static struct attribute *synth_attrs[] = {
86 &caps_start_attribute.
attr,
87 &caps_stop_attribute.
attr,
89 &pitch_attribute.
attr,
91 &voice_attribute.
attr,
93 &delay_time_attribute.
attr,
94 &direct_attribute.
attr,
95 &full_time_attribute.
attr,
96 &jiffy_delta_attribute.
attr,
97 &trigger_time_attribute.
attr,
104 .long_name =
"Apollo",
105 .init =
"@R3@D0@K1\r",
118 .catch_up = do_catch_up,
121 .synth_adjust =
NULL,
122 .read_buff_add =
NULL,
131 .attrs = synth_attrs,
140 unsigned long jiff_max;
141 struct var_t *jiffy_delta;
142 struct var_t *delay_time;
143 struct var_t *full_time;
144 int full_time_val = 0;
145 int delay_time_val = 0;
146 int jiffy_delta_val = 0;
152 jiffy_delta_val = jiffy_delta->
u.
n.value;
154 jiff_max =
jiffies + jiffy_delta_val;
158 jiffy_delta_val = jiffy_delta->
u.
n.value;
159 full_time_val = full_time->
u.
n.value;
160 delay_time_val = delay_time->
u.
n.value;
173 full_time_val = full_time->
u.
n.value;
182 if ((jiffies >= jiff_max) && (ch ==
SPACE)) {
184 jiffy_delta_val = jiffy_delta->
u.
n.value;
185 full_time_val = full_time->
u.
n.value;
186 delay_time_val = delay_time->
u.
n.value;
194 jiff_max =
jiffies + jiffy_delta_val;
210 static int __init apollo_init(
void)
215 static void __exit apollo_exit(
void)