/[linux-patches]/genpatches-2.6/tags/2.6.13-4/4900_speakup-20050825.patch
Gentoo

Contents of /genpatches-2.6/tags/2.6.13-4/4900_speakup-20050825.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 168 - (show annotations) (download)
Sun Sep 18 11:19:29 2005 UTC (8 years, 7 months ago) by dsd
File size: 465973 byte(s)
2.6.13-4 release
1 diff -Naurp linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/DefaultKeyAssignments linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/DefaultKeyAssignments
2 --- linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/DefaultKeyAssignments 1969-12-31 16:00:00.000000000 -0800
3 +++ linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/DefaultKeyAssignments 2005-08-25 14:06:54.000000000 -0700
4 @@ -0,0 +1,46 @@
5 +This file is intended to give you an overview of the default keys used
6 +by speakup for it's review functions. You may change them to be
7 +anything you want but that will take some familiarity with key
8 +mapping.
9 +
10 +We have remapped the insert or zero key on the keypad to act as a
11 +shift key. Well, actually as an altgr key. So in the following list
12 +InsKeyPad-period means hold down the insert key like a shift key and
13 +hit the keypad period.
14 +
15 +KeyPad-8 Say current Line
16 +InsKeyPad-8 say from top of screen to reading cursor.
17 +KeyPad-7 Say Previous Line (UP one line)
18 +KeyPad-9 Say Next Line (down one line)
19 +KeyPad-5 Say Current Word
20 +InsKeyPad-5 Spell Current Word
21 +KeyPad-4 Say Previous Word (left one word)
22 +InsKeyPad-4 say from left edge of line to reading cursor.
23 +KeyPad-6 Say Next Word (right one word)
24 +InsKeyPad-6 Say from reading cursor to right edge of line.
25 +KeyPad-2 Say Current Letter
26 +InsKeyPad-2 say current letter phonetically
27 +KeyPad-1 Say Previous Character (left one letter)
28 +KeyPad-3 Say Next Character (right one letter)
29 +KeyPad-plus Say Entire Screen
30 +InsKeyPad-plus Say from reading cursor line to bottom of screen.
31 +KeyPad-Minus Park reading cursor (toggle)
32 +InsKeyPad-minus Say character hex and decimal value.
33 +KeyPad-period Say Position (current line, position and console)
34 +InsKeyPad-period say colour attributes of current position.
35 +InsKeyPad-9 Move reading cursor to top of screen (insert pgup)
36 +InsKeyPad-3 Move reading cursor to bottom of screen (insert pgdn)
37 +InsKeyPad-7 Move reading cursor to left edge of screen (insert home)
38 +InsKeyPad-1 Move reading cursor to right edge of screen (insert end)
39 +ControlKeyPad-1 Move reading cursor to last character on current line.
40 +KeyPad-Enter Shut Up (until another key is hit) and sync reading cursor
41 +InsKeyPad-Enter Shut Up (until toggled back on).
42 +InsKeyPad-star n<x|y> go to line (y) or column (x). Where 'n' is any
43 + allowed value for the row or column for your current screen.
44 +KeyPad-/ Mark and Cut screen region.
45 +InsKeyPad-/ Paste screen region into any console.
46 +
47 +Hitting any key while speakup is outputting speech will quiet the
48 +synth until it has caught up with what is being printed on the
49 +console.
50 +
51 diff -Naurp linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/INSTALLATION linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/INSTALLATION
52 --- linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/INSTALLATION 1969-12-31 16:00:00.000000000 -0800
53 +++ linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/INSTALLATION 2005-08-25 14:06:54.000000000 -0700
54 @@ -0,0 +1,108 @@
55 +This document assumes you have had some experience with kernel
56 +compilation and installation. If you have not, I recommend you get
57 +the kernel source and read the README and various documents in the
58 +linux/Documentation directory. In particular the Changes file to make
59 +sure you have the appropriate utilities needed for installing a 2.2.xx
60 +or 2.4xx kernel. It isn't as difficult as you might think. The
61 +kernel README is intimidating the first time but once you get the
62 +steps down, it's really pretty easy. Getting through the "make
63 +config" is the tedious bit.
64 +
65 +The first thing to do is to place a copy of the tarball in the /usr/src
66 +directory which is the directory the linux tree is located in as well.
67 +Next untar speakup by typing:
68 +
69 +tar zxf speakup-1.00.tar.gz
70 +cd speakup-1.00
71 +./install
72 +
73 +Note the dot-slash before the install. This will copy the speakup
74 +directory to the kernel tree and apply the various patches and
75 +components to the appropriate kernel files. Depending on how
76 +experienced you are with kernel compiling and hacking will determine
77 +whether you should bother looking at any failed patches. If this
78 +happens, you should probably write to the speakup mailing list for
79 +help or myself.
80 +
81 +If all of the patch hunks apply successfully then just continue with
82 +the standard steps to compile the kernel with:
83 +
84 +make mrproper
85 +make config
86 +
87 +When you get to the section console speech output, answer 'y' to the
88 +CONFIG_SPEAKUP prompt. You will be given a submenu with the list of
89 +synthesizers which are currently supported. You can include as many
90 +synths in the kernel as you wish but remember each one takes up kernel
91 +space. You can only choose one of the synths as the default or none,
92 +so just type dtlk or whatever is the correct string for the
93 +synthesizer you have. You will also be asked if you wish to build-in
94 +a speakup key map. If you do not say 'y' to this option you will need
95 +to load a speakup map at boot time with whichever mechanism your
96 +distribution uses for loading key maps.
97 +
98 +We have placed the speakup configuration options in make config just
99 +after the vga console choice. For the DoubleTalk PC driver included
100 +by Jim Van Zandt. I recommend you say no to that option. I have not
101 +tried configuring them both in, but I wouldn't be at all surprised if
102 +it didn't work.
103 +
104 +If all goes well up to this point you can continue with the compiling
105 +process by doing:
106 +
107 +make dep >dep.file 2>&1 &
108 +make bzImage >cc.file 2>&1 &
109 +make modules >mod.file 2>&1 &
110 +
111 +I always redirect output to the files dep.file and cc.file so I can
112 +look over the compilation record to make sure there are no errors and
113 +warnings.
114 +
115 +Okay, you are ready to install the newly compiled kernel. Make sure
116 +you make an linux.old entry in your lilo.conf file so you can recover
117 +if it blows up. next as root run "make modules_install" to install
118 +whatever modules you compiled and move the bzImage from
119 +/usr/src/linux/arch/i386/boot to wherever your kernel lives. Also
120 +move the System.map from /usr/src/linux to where your System.map
121 +lives. On our systems we use debian so we create an vmlinuz-speakup
122 +and System.map-speakup in our /boot directory and set the symbolic
123 +links vmlinuz and System.map in the root (/) directory to point to the
124 +images. Now type lilo to tell lilo to build the new booter file and
125 +install it.
126 +
127 +As of version 0.07, the keymap for speakup is automatically built in
128 +at compile time. If you have other keymaps installed at boot time,
129 +you might want to consider removing them before you reboot the system.
130 +
131 +If everything has gone OK up until now, cross your fingers and type:
132 +
133 +shutdown -r now
134 +
135 +Your system should start talking to you as soon as it starts booting.
136 +It will talk and talk and ... well, you might want to hit the
137 +keypad-enter key to tell it to shut up. You should also read the
138 +DefaultKeyAssignments file to learn the various review functions
139 +available.
140 +
141 +As of v-0.10 the speakup configuration options are in the
142 +/proc/speakup subtree. The individual options should be fairly
143 +obvious by their names such as rate, volume, punc_level and so forth.
144 +You can manipulate them by cat'ing or echoing new values to them such
145 +as:
146 +
147 +echo 9 >/proc/speakup/rate
148 +
149 +You can see what the current values are by cat'ing those files to the console:
150 +
151 +cat /proc/speakup/rate
152 +
153 +I have probably managed to overlook a whole whack of things because
154 +this is the, enter version number here, draft. Don't worry we'll get
155 +it right eventually. If you like the package you really should get on
156 +the mailing list and start participating in it's development.
157 +
158 + Kirk
159 +
160 +email: kirk@braille.uwo.ca
161 +phone: (519) 679-6845 (home)
162 +
163 diff -Naurp linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/README linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/README
164 --- linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/README 1969-12-31 16:00:00.000000000 -0800
165 +++ linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/README 2005-08-25 14:06:54.000000000 -0700
166 @@ -0,0 +1,98 @@
167 +Welcome to the speakup project for the Speakup speech package for Linux.
168 +
169 +Speakup is written by Kirk Reiser and Andy Berdan. It is licensed
170 +under the GPL. If you don't already know, the GPL stands for the GNU
171 +General Public License. Which basically states that this code is free to
172 +copy, modify and distribute to anyone interested in playing with it.
173 +The one thing you may not do is turn any part of it into proprietary
174 +or commercial code without the permission of the author. That's me.
175 +
176 +If you are interested in being involved with the development of speech
177 +output for Linux you can subscribe to the Speakup mailing list by
178 +sending a message to speakup-request@braille.uwo.ca with the line: subscribe. You can also subscribe by going to the speakup web page and following the links at http://www.linux-speakup.org.
179 +
180 +We are at a very early stage in the development of this package.
181 +Hopefully changes will happen often and many. The current files in
182 +this directory are:
183 +
184 +DefaultKeyAssignments # speakup's default review keys
185 +INSTALLATION # for installing speakup from the tar ball.
186 +README # this file
187 +keymap-tutorial # a tutorial on how to layout the keyboard
188 +
189 +Read the INSTALLATION file to learn how to apply the patches and the
190 +default.map for the keyboard. You should also read the Changes file.
191 +It really has any new things I've added since last time.
192 +
193 +There is no documentation in any of these files to instruct you what
194 +to do if something goes wrong with the patching or compilation. If
195 +you would like that information you will need to subscribe to the
196 +mailing list and ask for help, or write me kirk@braille.uwo.ca for
197 +help. I suggest the mailing list because I will probably tire quickly
198 +of answering the same questions over and over. You could always
199 +decide to dig-in and take on the task, and write documentation to help
200 +others.
201 +
202 +There also is a speakup reflector for the Speak Freely package, which
203 +many of us hang out on and discuss all sorts of topics from speakup
204 +problems to ALSA driver installation and just about anything else
205 +you'd like to talk about. The reflector is at lwl.braille.uwo.ca:4074
206 +with it's lwl page at lwl.braille.uwo.ca/speakup.html. Come and join
207 +us, it's fun!
208 +
209 +Acknowledgements:
210 +
211 +I am really very new at kernel hacking and screen review package
212 +writing, so I have depended heavily on other folks kindness to help me
213 +a long. No doubt I will continue to abuse them freely and others
214 +before this is a really good speech solution for Linux. (Oh Well!,
215 +somebody's got to do it.)
216 +
217 +Theodore Ts'o. He gave me a good discussion of unicode and UTF and
218 +the like. He doesn't even remember writing me about it.
219 +
220 +Alan Cox. He has answered many questions about scheduling and wait
221 +queues and timers along with code fragments and so on. I just wish I
222 +understood it all totally. He has also helped immensely in moving
223 +this package toward inclusion in the standard kernel tree. (Maybe next
224 +release!)
225 +
226 +Martin Mares. He pointed me in the right direction to figuring out
227 +the colour attributes and other useful tidbits.
228 +
229 +Paul McDermott. He really is the catalyst for me to actually get
230 +this all working. Besides I like seeing him bounce around and get all
231 +excited every time I have something new working.
232 +
233 +John Covici, He was the first person to actually attempt writing
234 +another synthesizer driver for speakup. It was the Speakout driver so
235 +it was also the first serial driver.
236 +
237 +Brian Borowski, he was the first person to actually write a speakup
238 +function other than Andy and I.
239 +
240 +Jim Danley, he has more or less become my main man in helping test
241 +code, add new features, bounce ideas off and generally become a good
242 +friend.
243 +
244 +Matt Campbell, he basically rewrote the drivers to be able to include
245 +all synths in the kernel at the same time. The distribution
246 +maintainers appreciate him a lot as well.
247 +
248 +Gene Collins, he was very helpful debugging the current release prior
249 +to its public showing. He has also worked hard educating others on
250 +the list and writing the ALSA mini howto.
251 +
252 +I would also like to really thank the folks that handle the
253 +distribution packages. I and many other people would not find access
254 +to speakup nearly so convenient without their efforts. They include
255 +Bill Acker, Tom Moore, Matt Campbell, Joe Norton and Joshua Lambert.
256 +
257 +There are probably many more I am forgetting right now. I guess I'll
258 +just have to add you all later.
259 +
260 +
261 +Happy Hacking!
262 +
263 + Kirk
264 +
265 diff -Naurp linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/keymap-tutorial linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/keymap-tutorial
266 --- linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/keymap-tutorial 1969-12-31 16:00:00.000000000 -0800
267 +++ linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/keymap-tutorial 2005-08-25 14:06:54.000000000 -0700
268 @@ -0,0 +1,140 @@
269 + Speakup Keymap Tutorial
270 +
271 +This is meant to be a basic tutorial on how to change the Linux keymap
272 +file to assign speakup review functions to desired keys. It is not
273 +intended to be a replacement for the loadkeys(8) or keymap(5) man
274 +pages.
275 +
276 +The basic lay-out of the keymap file is a series of lines with the
277 +following fields. The keyword keycode indicates this is the start of
278 +a new key assignment. It is then followed by a number which
279 +represents the actual key on the keyboard. That number is followed by
280 +the equals '=' operator and finally a list of keywords representing
281 +key names such as keypad5. Each line can have quite a few key
282 +functions on it. They are interpreted by loadkeys in order and
283 +assigned to key shift states depending on the order they are
284 +encountered. So for example, the first value after the equals is the
285 +keys unshifted state, while the second is the keys shifted state. If
286 +you wish to learn the order they are interpreted in read the
287 +loadkeys(8) and keymap(5) man pages.
288 +
289 +You can have subsequent lines which are indented and start with
290 +another keyword for the various shifted states. This way you can
291 +assign some of the states without having to specify them all in order
292 +up until you get to the one you want to assign.
293 +
294 +In speakup, we have assigned the insert key on the number pad to the
295 +altgr keyword. This is not required; you could choose any other
296 +shifted state keyword. We used altgr because it typically represents
297 +the right hand alt key. In Linux each shift key is separate and
298 +independent, so the left shift and the right shift keys are not
299 +necessarily the same. The altgr key is not really used for anything
300 +important, so we steel it.
301 +
302 +Here are the default key assignments for the number eight on the
303 +keypad:
304 +
305 +keycode 72 = KP_8
306 + alt keycode 72 = Ascii_8
307 +
308 +As you can see, the first line starts with keycode followed by 72
309 +which is the actual number assigned to the key when the keyboard port
310 +is read. The KP_8 after the equal sign, is the symbolic representation
311 +of the function called when that key is hit.
312 +
313 +The second line is the same format except it starts with the keyword
314 +alt which is indented. That means that the function at the end of
315 +that line Ascii_8 is applied to the alt-shifted eight key.
316 +
317 +Now here are the speakup assignments for that key:
318 +
319 +keycode 72 = 0x0d0a
320 + altgr keycode 72 = 0x0d20
321 +#keycode 72 = KP_8
322 + alt keycode 72 = Ascii_8
323 +
324 +Notice that the only thing which has changed on the first line is the
325 +function called when the key is struck. It is a hexadecimal number
326 +identifying the function called in a look up table. It is not a
327 +symbolic representation yet because that means we need to change the
328 +loadkeys program to understand our symbolic names. We will do this in
329 +the future but for now it is more expedient to just use the table
330 +indices. You will find a table at the bottom of this document
331 +listing the review functions and their corresponding hex lookups.
332 +
333 +The 0x0d0a in the first line above is speakup's say line function.
334 +The second line ends with 0x0d20 which is speakup's read from top of
335 +screen to reading cursor line.
336 +
337 +The third line is the original key assignment commented out with a
338 +number-sign '#' at the beginning. I do that so I can easily find the
339 +keys I want to affect by symbolic name. Otherwise I would need to
340 +keep a look up table for all the keycodes. I recommend you do this as
341 +well or you'll be very sorry at some point in the future.
342 +
343 +The forth line is just the standard key assignment for the left hand
344 +alt key.
345 +
346 +Now let's say we want to design a different keyboard layout. I'll use
347 +an example for the JAWS style keypad because I've specifically been
348 +asked to help with that. JAWS uses the eight on the keypad to move up
349 +a line or the speakup function to read previous line. JAWS also uses
350 +the keypad_8 key in a shifted mode to read the current line. I
351 +apologize if these are not quite right. It has been a long time since
352 +I used JAWS. So we would have the following two lines:
353 +
354 +keycode 72 = 0x0d0b
355 + altgr keycode 72 = 0x0d0a
356 +
357 +The hex value 0x0d0b in the first line is speakup's SAY_PREVIOUS_LINE
358 +function. The 0x0d0a in the second line is the same say_line function
359 +as we had earlier. So when the number eight is hit on the keypad
360 +speakup will read the previous line and when the number eight is
361 +shifted with the insert key on the keypad it will read the current
362 +line.
363 +
364 +As you can tell, it is not really very difficult to reassign the keys
365 +to different review functions.
366 +
367 +Once you have carefully edited the keymap file, called default.map in
368 +the speakup distribution, you copy it into the /etc/kbd directory.
369 +Make sure you back up the original default.map from that directory
370 +first, if there is one. Then you run loadkeys to load the new map
371 +into the kernel:
372 +
373 +loadkeys /etc/kbd/default.map
374 +
375 +If you wish to build your new keyboard lay-out into the kernel, after
376 +testing it, copy the default.map file into the drivers/char directory,
377 +with the name defkeymap.map, of your Linux source tree. Then rm the
378 +defkeymap.c file and recompile the kernel. Because there is no
379 +defkeymap.c `make' will rebuild it on the next compile.
380 +
381 +Here is a list of the available speakup review functions at this point
382 +in time.
383 +
384 +SAY_CHAR 0x0d04 /* say this character */
385 +SAY_PREV_CHAR 0x0d05 /* say character left of this char */
386 +SAY_NEXT_CHAR 0x0d06 /* say char right of this char */
387 +SAY_WORD 0x0d07 /* say this word under reading cursor */
388 +SAY_PREV_WORD 0x0d08
389 +SAY_NEXT_WORD 0x0d09
390 +SAY_LINE 0x0d0a /* say this line */
391 +SAY_PREV_LINE 0x0d0b /* say line above this line */
392 +SAY_NEXT_LINE 0x0d0c
393 +TOP_EDGE 0x0d0d /* move to top edge of screen */
394 +BOTTOM_EDGE 0x0d0e
395 +LEFT_EDGE 0x0d0f
396 +RIGHT_EDGE 0x0d10
397 +SAY_PHONETIC_CHAR 0x0d11 /* say this character phonetically */
398 +SPELL_WORD 0x0d12 /* spell this word letter by letter */
399 +SAY_SCREEN 0x0d14
400 +SAY_POSITION 0x0d1b
401 +SPEECH_OFF 0x0d1c
402 +SAY_ATTRIBUTES 0x0d1d
403 +SPEAKUP_PARKED 0x0d1e
404 +SAY_FROM_TOP 0x0d20
405 +SAY_TO_BOTTOM 0x0d21
406 +SAY_FROM_LEFT 0x0d22
407 +SAY_TO_RIGHT 0x0d23
408 +
409 diff -Naurp linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/spkguide.txt linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/spkguide.txt
410 --- linux-2.6.13-rc6-git13-gentoo/Documentation/speakup/spkguide.txt 1969-12-31 16:00:00.000000000 -0800
411 +++ linux-2.6.13-rc6-git13-gentoo-speakup/Documentation/speakup/spkguide.txt 2005-08-25 14:06:54.000000000 -0700
412 @@ -0,0 +1,1279 @@
413 +
414 +The Speakup User's Guide
415 +For Speakup 2.0 and Later
416 +By Gene Collins
417 +Last modified on Tue Mar 29 10:54:19 2005
418 +Document version 1.0
419 +
420 +Copyright (c) 2005 Gene Collins
421 +
422 +Permission is granted to copy, distribute and/or modify this document
423 +under the terms of the GNU Free Documentation License, Version 1.2 or
424 +any later version published by the Free Software Foundation; with no
425 +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
426 +copy of the license is included in the section entitled "GNU Free
427 +Documentation License".
428 +
429 +Preface
430 +
431 +The purpose of this document is to familiarize users with the user
432 +interface to Speakup, a Linux Screen Reader. If you need instructions
433 +for installing or obtaining Speakup, visit the web site at
434 +http://linux-speakup.org/. Speakup is a set of patches to the standard
435 +Linux kernel source tree. It can be built as a series of modules, or as
436 +a part of a monolithic kernel. These details are beyond the scope of
437 +this manual, but the user may need to be aware of the module
438 +capabilities, depending on how your system administrator has installed
439 +Speakup. If Speakup is built as a part of a monolithic kernel, and the
440 +user is using a hardware synthesizer, then Speakup will be able to
441 +provide speech access from the time the kernel is loaded, until the time
442 +the system is shutdown. This means that if you have obtained Linux
443 +installation media for a distribution which includes Speakup as a part
444 +of its kernel, you will be able, as a blind person, to install Linux
445 +with speech access unaided by a sighted person. Again, these details
446 +are beyond the scope of this manual, but the user should be aware of
447 +them. See the web site mentioned above for further details.
448 +
449 +1. Starting Speakup
450 +
451 +If your system administrator has installed Speakup to work with your
452 +specific synthesizer by default, then all you need to do to use Speakup
453 +is to boot your system, and Speakup should come up talking. This
454 +assumes of course that your synthesizer is a supported hardware
455 +synthesizer, and that it is either installed in or connected to your
456 +system, and is if necessary powered on.
457 +
458 +It is possible, however, that Speakup may have been compiled into the
459 +kernel with no default synthesizer. It is even possible that your
460 +kernel has been compiled with support for some of the supported
461 +synthesizers and not others. If you find that this is the case, and
462 +your synthesizer is supported but not available, complain to the person
463 +who compiled and installed your kernel. Or better yet, go to the web
464 +site, and learn how to patch Speakup into your own kernel source, and
465 +build and install your own kernel.
466 +
467 +If your kernel has been compiled with Speakup, and has no default
468 +synthesizer set, or you would like to use a different synthesizer than
469 +the default one, then you may issue the following command at the boot
470 +prompt of your boot loader.
471 +
472 +linux speakup_synth=ltlk
473 +
474 +This command would tell Speakup to look for and use a LiteTalk or
475 +DoubleTalk LT at boot up. You may replace the ltlk synthesizer keyword
476 +with the keyword for whatever synthesizer you wish to use. The
477 +speakup_synth parameter will accept the following keywords, provided
478 +that support for the related synthesizers has been built into the
479 +kernel.
480 +
481 +acntsa -- Accent SA
482 +acntpc -- Accent PC
483 +apolo -- Apolo
484 +audptr -- Audapter
485 +bns -- Braille 'n Speak
486 +dectlk -- DecTalk Express (old and new, db9 serial only)
487 +decext -- DecTalk (old) External
488 +dtlk -- DoubleTalk PC
489 +keypc -- Keynote Gold PC
490 +ltlk -- DoubleTalk LT, LiteTalk, or external Tripletalk (db9 serial only)
491 +spkout -- Speak Out
492 +txprt -- Transport
493 +
494 +Note: Speakup does * NOT * support usb connections! Speakup also does *
495 +NOT * support the internal Tripletalk!
496 +
497 +Speakup does support two other synthesizers, but because they work in
498 +conjunction with other software, they must be loaded as modules after
499 +their related software is loaded, and so are not available at boot up.
500 +These are as follows:
501 +
502 +decpc -- DecTalk PC (not available at boot up)
503 +sftsyn -- One of several software synthesizers (not available at boot up)
504 +
505 +See the sections on loading modules and software synthesizers later in
506 +this manual for further details. It should be noted here that the
507 +speakup_synth boot parameter will have no effect if Speakup has been
508 +compiled as modules. In order for Speakup modules to be loaded during
509 +the boot process, such action must be configured by your system
510 +administrator. This will mean that you will hear some, but not all, of
511 +the bootup messages.
512 +
513 +2. Basic operation
514 +
515 +Once you have booted the system, and if necessary, have supplied the
516 +proper bootup parameter for your synthesizer, Speakup will begin
517 +talking as soon as the kernel is loaded. In fact, it will talk a lot!
518 +It will speak all the boot up messages that the kernel prints on the
519 +screen during the boot process. This is because Speakup is not a
520 +separate screen reader, but is actually built into the operating
521 +system. Since almost all console applications must print text on the
522 +screen using the kernel, and must get their keyboard input through the
523 +kernel, they are automatically handled properly by Speakup. There are a
524 +few exceptions, but we'll come to those later.
525 +
526 +Note: In this guide I will refer to the numeric keypad as the keypad.
527 +This is done because the speakupmap.map file referred to later in this
528 +manual uses the term keypad instead of numeric keypad. Also I'm lazy
529 +and would rather only type one word. So keypad it is. Got it? Good.
530 +
531 +Most of the Speakup review keys are located on the keypad at the far
532 +right of the keyboard. The numlock key should be off, in order for these
533 +to work. If you toggle the numlock on, the keypad will produce numbers,
534 +which is exactly what you want for spreadsheets and such. For the
535 +purposes of this guide, you should have the numlock turned off, which is
536 +its default state at bootup.
537 +
538 +You probably won't want to listen to all the bootup messages every time
539 +you start your system, though it's a good idea to listen to them at
540 +least once, just so you'll know what kind of information is available to
541 +you during the boot process. You can always review these messages after
542 +bootup with the command:
543 +
544 +dmesg | more
545 +
546 +In order to speed the boot process, and to silence the speaking of the
547 +bootup messages, just press the keypad enter key. This key is located
548 +in the bottom right corner of the keypad. Speakup will shut up and stay
549 +that way, until you press another key.
550 +
551 +You can check to see if the boot process has completed by pressing the 8
552 +key on the keypad, which reads the current line. This also has the
553 +effect of starting Speakup talking again, so you can press keypad enter
554 +to silence it again if the boot process has not completed.
555 +
556 +When the boot process is complete, you will arrive at a "login" prompt.
557 +At this point, you'll need to type in your user id and password, as
558 +provided by your system administrator. You will hear Speakup speak the
559 +letters of your user id as you type it, but not the password. This is
560 +because the password is not displayed on the screen for security
561 +reasons. This has nothing to do with Speakup, it's a Linux security
562 +feature.
563 +
564 +Once you've logged in, you can run any Linux command or program which is
565 +allowed by your user id. Normal users will not be able to run programs
566 +which require root privileges.
567 +
568 +When you are running a program or command, Speakup will automatically
569 +speak new text as it arrives on the screen. You can at any time silence
570 +the speech with keypad enter, or use any of the Speakup review keys.
571 +
572 +Here are some basic Speakup review keys, and a short description of what
573 +they do.
574 +
575 +keypad 1 -- read previous character
576 +keypad 2 -- read current character (pressing keypad 2 twice rapidly will speak
577 + the current character phonetically)
578 +keypad 3 -- read next character
579 +keypad 4 -- read previous word
580 +keypad 5 -- read current word (press twice rapidly to spell the current word)
581 +keypad 6 -- read next word
582 +keypad 7 -- read previous line
583 +keypad 8 -- read current line (press twice rapidly to hear how much the
584 + text on the current line is indented)
585 +keypad 9 -- read next line
586 +keypad period -- speak current cursor position and announce current
587 + virtual console
588 +
589 +It's also worth noting that the insert key on the keypad is mapped
590 +as the speakup key. Instead of pressing and releasing this key, as you
591 +do under DOS or Windows, you hold it like a shift key, and press other
592 +keys in combination with it. For example, repeatedly holding keypad
593 +insert, from now on called speakup, and keypad enter will toggle the
594 +speaking of new text on the screen on and off. This is not the same as
595 +just pressing keypad enter by itself, which just silences the speech
596 +until you hit another key. When you hit speakup plus keypad enter,
597 +Speakup will say, "You turned me off.", or "Hey, that's better." When
598 +Speakup is turned off, no new text on the screen will be spoken. You
599 +can still use the reading controls to review the screen however.
600 +
601 +3. Using the Speakup Help System
602 +
603 +Speakup has a help system, which is compiled as a module. It is loaded
604 +automatically whenever the Speakup help system is invoked for the first
605 +time, and remains loaded after that, until speakup is unloaded. Note
606 +that if speakup was compiled into a monolithic kernel on your system,
607 +you will not be able to unload Speakup from your kernel. If you try to
608 +use the help system, and find that it is unavailable, then your system
609 +administrator has not installed the Speakup help module, which is called
610 +speakup_help. Complain to your system administrator about this.
611 +
612 +In order to enter the Speakup help system, press and hold the speakup
613 +key (remember that this is the keypad insert key), and press the f1 key.
614 +You will hear the message:
615 +
616 +"Press space to leave help, cursor up or down to scroll, or a letter to
617 +go to commands in list."
618 +
619 +When you press the spacebar to leave the help system, you will hear:
620 +
621 +"Leaving help."
622 +
623 +While you are in the Speakup help system, you can scroll up or down
624 +through the list of available commands using the cursor keys. The list
625 +of commands is arranged in alphabetical order. If you wish to jump to
626 +commands in a specific part of the alphabet, you may press the letter of
627 +the alphabet you wish to jump to.
628 +
629 +You can also just explore by typing keyboard keys. Pressing keys will
630 +cause Speakup to speak the command associated with that key. For
631 +example, if you press the keypad 8 key, you will hear:
632 +
633 +"Keypad 8 is line, say current."
634 +
635 +You'll notice that some commands do not have keys assigned to them.
636 +This is because they are very infrequently used commands, and are also
637 +accessible through the proc system. We'll discuss the proc system later
638 +in this manual.
639 +
640 +You'll also notice that some commands have two keys assigned to them.
641 +This is because Speakup has a built in set of alternative key bindings
642 +for laptop users. The alternate speakup key is the caps lock key. You
643 +can press and hold the caps lock key, while pressing an alternate
644 +speakup command key to activate the command. On most laptops, the
645 +numeric keypad is defined as the keys in the j k l area of the keyboard.
646 +
647 +There is usually a function key which turns this keypad function on and
648 +off, and some other key which controls the numlock state. Toggling the
649 +keypad functionality on and off can become a royal pain. So, Speakup
650 +gives you a simple way to get at an alternative set of key mappings for
651 +your laptop. These are also available by default on desktop systems,
652 +because Speakup does not know whether it is running on a desktop or
653 +laptop. So you may choose which set of Speakup keys to use. Some
654 +system administrators may have chosen to compile Speakup for a desktop
655 +system without this set of alternate key bindings, but these details are
656 +beyond the scope of this manual. To use the caps lock for its normal
657 +purpose, hold the shift key while toggling the caps lock on and off. We
658 +should note here, that holding the caps lock key and pressing the z key
659 +will toggle the alternate j k l keypad on and off.
660 +
661 +4. Keys and Their Assigned Commands
662 +
663 +In this section, we'll go through a list of all the speakup keys and
664 +commands. You can also get a list of commands and assigned keys from
665 +the help system.
666 +
667 +The following list was taken from the speakupmap.map file. Key
668 +assignments are on the left of the equal sign, and the associated
669 +Speakup commands are on the right. The designation "spk" means to press
670 +and hold the speakup key, a.k.a. keypad insert, a.k.a. caps lock, while
671 +pressing the other specified key.
672 +
673 +spk key_f9 = punc_level_dec
674 +spk key_f10 = punc_level_inc
675 +spk key_f11 = reading_punc_dec
676 +spk key_f12 = reading_punc_inc
677 +spk key_1 = vol_dec
678 +spk key_2 = vol_inc
679 +spk key_3 = pitch_dec
680 +spk key_4 = pitch_inc
681 +spk key_5 = rate_dec
682 +spk key_6 = rate_inc
683 +key_kpasterisk = toggle_cursoring
684 +spk key_kpasterisk = speakup_goto
685 +spk key_f1 = speakup_help
686 +spk key_f2 = set_win
687 +spk key_f3 = clear_win
688 +spk key_f4 = enable_win
689 +spk key_f5 = edit_some
690 +spk key_f6 = edit_most
691 +spk key_f7 = edit_delim
692 +spk key_f8 = edit_repeat
693 +shift spk key_f9 = edit_exnum
694 + key_kp7 = say_prev_line
695 +spk key_kp7 = left_edge
696 + key_kp8 = say_line
697 +double key_kp8 = say_line_indent
698 +spk key_kp8 = say_from_top
699 + key_kp9 = say_next_line
700 +spk key_kp9 = top_edge
701 + key_kpminus = speakup_parked
702 +spk key_kpminus = say_char_num
703 + key_kp4 = say_prev_word
704 +spk key_kp4 = say_from_left
705 + key_kp5 = say_word
706 +double key_kp5 = spell_word
707 +spk key_kp5 = spell_phonetic
708 + key_kp6 = say_next_word
709 +spk key_kp6 = say_to_right
710 + key_kpplus = say_screen
711 +spk key_kpplus = say_win
712 + key_kp1 = say_prev_char
713 +spk key_kp1 = right_edge
714 + key_kp2 = say_char
715 +spk key_kp2 = say_to_bottom
716 +double key_kp2 = say_phonetic_char
717 + key_kp3 = say_next_char
718 +spk key_kp3 = bottom_edge
719 + key_kp0 = spk_key
720 + key_kpdot = say_position
721 +spk key_kpdot = say_attributes
722 +key_kpenter = speakup_quiet
723 +spk key_kpenter = speakup_off
724 +key_sysrq = speech_kill
725 + key_kpslash = speakup_cut
726 +spk key_kpslash = speakup_paste
727 +spk key_pageup = say_first_char
728 +spk key_pagedown = say_last_char
729 +key_capslock = spk_key
730 + spk key_z = spk_lock
731 +key_leftmeta = spk_key
732 +ctrl spk key_0 = speakup_goto
733 +spk key_u = say_prev_line
734 +spk key_i = say_line
735 +double spk key_i = say_line_indent
736 +spk key_o = say_next_line
737 +spk key_minus = speakup_parked
738 +shift spk key_minus = say_char_num
739 +spk key_j = say_prev_word
740 +spk key_k = say_word
741 +double spk key_k = spell_word
742 +spk key_l = say_next_word
743 +spk key_m = say_prev_char
744 +spk key_comma = say_char
745 +double spk key_comma = say_phonetic_char
746 +spk key_dot = say_next_char
747 +spk key_n = say_position
748 + ctrl spk key_m = left_edge
749 + ctrl spk key_y = top_edge
750 + ctrl spk key_dot = right_edge
751 +ctrl spk key_p = bottom_edge
752 +spk key_apostrophe = say_screen
753 +spk key_h = say_from_left
754 +spk key_y = say_from_top
755 +spk key_semicolon = say_to_right
756 +spk key_p = say_to_bottom
757 +spk key_slash = say_attributes
758 + spk key_enter = speakup_quiet
759 + ctrl spk key_enter = speakup_off
760 + spk key_9 = speakup_cut
761 +spk key_8 = speakup_paste
762 +shift spk key_m = say_first_char
763 + ctrl spk key_semicolon = say_last_char
764 +
765 +5. The Speakup Proc System
766 +
767 +The Speakup screen reader also creates a speakup subdirectory as a part
768 +of the proc system. You can see these entries by typing the command:
769 +
770 +ls -1 /proc/speakup/*
771 +
772 +If you issue the above ls command, you will get back something like
773 +this:
774 +
775 +/proc/speakup/attrib_bleep
776 +/proc/speakup/bell_pos
777 +/proc/speakup/bleep_time
778 +/proc/speakup/bleeps
779 +/proc/speakup/caps_start
780 +/proc/speakup/caps_stop
781 +/proc/speakup/characters
782 +/proc/speakup/cursor_time
783 +/proc/speakup/delay_time
784 +/proc/speakup/delimiters
785 +/proc/speakup/ex_num
786 +/proc/speakup/freq
787 +/proc/speakup/full_time
788 +/proc/speakup/jiffy_delta
789 +/proc/speakup/key_echo
790 +/proc/speakup/keymap
791 +/proc/speakup/no_interrupt
792 +/proc/speakup/pitch
793 +/proc/speakup/punc_all
794 +/proc/speakup/punc_level
795 +/proc/speakup/punc_most
796 +/proc/speakup/punc_some
797 +/proc/speakup/punct
798 +/proc/speakup/rate
799 +/proc/speakup/reading_punc
800 +/proc/speakup/repeats
801 +/proc/speakup/say_control
802 +/proc/speakup/say_word_ctl
803 +/proc/speakup/silent
804 +/proc/speakup/spell_delay
805 +/proc/speakup/synth_direct
806 +/proc/speakup/synth_name
807 +/proc/speakup/tone
808 +/proc/speakup/trigger_time
809 +/proc/speakup/version
810 +/proc/speakup/voice
811 +/proc/speakup/vol
812 +
813 +In addition to using the Speakup hot keys to change such things as
814 +volume, pitch, and rate, you can also echo values to the appropriate
815 +entry in the /proc/speakup directory. This is very useful, since it
816 +lets you control Speakup parameters from within a script. How you
817 +would write such scripts is somewhat beyond the scope of this manual,
818 +but I will include a couple of simple examples here to give you a
819 +general idea of what such scripts can do.
820 +
821 +Suppose for example, that you wanted to control both the punctuation
822 +level and the reading punctuation level at the same time. For
823 +simplicity, we'll call them punc0, punc1, punc2, and punc3. The scripts
824 +might look something like this:
825 +
826 +#!/bin/bash
827 +# punc0
828 +# set punc and reading punc levels to 0
829 +echo 0 >/proc/speakup/punc_level
830 +echo 0 >/proc/speakup/reading_punc
831 +echo Punctuation level set to 0.
832 +
833 +#!/bin/bash
834 +# punc1
835 +# set punc and reading punc levels to 1
836 +echo 1 >/proc/speakup/punc_level
837 +echo 1 >/proc/speakup/reading_punc
838 +echo Punctuation level set to 1.
839 +
840 +#!/bin/bash
841 +# punc2
842 +# set punc and reading punc levels to 2
843 +echo 2 >/proc/speakup/punc_level
844 +echo 2 >/proc/speakup/reading_punc
845 +echo Punctuation level set to 2.
846 +
847 +#!/bin/bash
848 +# punc3
849 +# set punc and reading punc levels to 3
850 +echo 3 >/proc/speakup/punc_level
851 +echo 3 >/proc/speakup/reading_punc
852 +echo Punctuation level set to 3.
853 +
854 +If you were to store these four small scripts in a directory in your
855 +path, perhaps /usr/local/bin, and set the permissions to 755 with the
856 +chmod command, then you could change the default reading punc and
857 +punctuation levels at the same time by issuing just one command. For
858 +example, if you were to execute the punc3 command at your shell prompt,
859 +then the reading punc and punc level would both get set to 3.
860 +
861 +I should note that the above scripts were written to work with bash, but
862 +regardless of which shell you use, you should be able to do something
863 +similar.
864 +
865 +The Speakup proc system also has another interesting use. You can echo
866 +Speakup parameters into the proc system in a script during system
867 +startup, and speakup will return to your preferred parameters every time
868 +the system is rebooted.
869 +
870 +Most of the Speakup proc parameters can be manipulated by a regular user
871 +on the system. However, there are a few parameters that are dangerous
872 +enough that they should only be manipulated by the root user on your
873 +system. There are even some parameters that are read only, and cannot
874 +be written to at all. For example, the version entry in the Speakup
875 +proc system is read only. This is because there is no reason for a user
876 +to tamper with the version number which is reported by Speakup. Doing
877 +an ls -l on /proc/speakup/version will return this:
878 +
879 +-r--r--r-- 1 root root 0 Mar 21 13:46 /proc/speakup/version
880 +
881 +As you can see, the version entry in the Speakup proc system is read
882 +only, is owned by root, and belongs to the root group. Doing a cat of
883 +/proc/speakup/version will display the Speakup version number, like
884 +this:
885 +
886 +cat /proc/speakup/version
887 +Speakup v-2.00 CVS: Thu Oct 21 10:38:21 EDT 2004
888 +synth dtlk version 1.1
889 +
890 +The display shows the Speakup version number, along with the version
891 +number of the driver for the current synthesizer.
892 +
893 +Looking at entries in the Speakup proc system can be useful in many
894 +ways. For example, you might wish to know what level your volume is set
895 +at. You could type:
896 +
897 +cat /proc/speakup/vol
898 +5
899 +
900 +The number five which comes back is the level at which the synthesizer
901 +volume is set at.
902 +
903 +All the entries in the Speakup proc system are readable, some are
904 +writable by root only, and some are writable by everyone. Unless you
905 +know what you are doing, you should probably leave the ones that are
906 +writable by root only alone. Most of the names are self explanatory.
907 +Vol for controlling volume, pitch for pitch, rate for controlling speaking
908 +rate, etc. If you find one you aren't sure about, you can post a query
909 +on the Speakup list.
910 +
911 +6. Changing Synthesizers
912 +
913 +It is possible to change to a different synthesizer while speakup is
914 +running. In other words, it is not necessary to reboot the system
915 +in order to use a different synthesizer. You can simply echo the
916 +synthesizer keyword to the /proc/speakup/synth_name proc entry.
917 +Depending on your situation, you may wish to echo none to the synth_name
918 +proc entry, to disable speech while one synthesizer is disconnected and
919 +a second one is connected in its place. Then echo the keyword for the
920 +new synthesizer into the synth_name proc entry in order to start speech
921 +with the newly connected synthesizer. See the list of synthesizer
922 +keywords in section 1 to find the keyword which matches your synth.
923 +
924 +7. Loading modules
925 +
926 +As mentioned earlier, Speakup can either be completely compiled into the
927 +kernel, with the exception of the help module, or it can be compiled as
928 +a series of modules. When compiled as modules, Speakup will only be
929 +able to speak some of the bootup messages if your system administrator
930 +has configured the system to load the modules at boo time. The modules
931 +can be loaded after the file systems have been checked and mounted, or
932 +from an initrd. There is a third possibility. Speakup can be compiled
933 +with some components built into the kernel, and others as modules. As
934 +we'll see in the next section, this is particularly useful when you are
935 +working with software synthesizers.
936 +
937 +If Speakup is completely compiled as modules, then you must use the
938 +modprobe command to load Speakup. You do this by loading the module for
939 +the synthesizer driver you wish to use. The driver modules are all
940 +named speakup_<keyword>, where <keyword> is the keyword for the
941 +synthesizer you want. So, in order to load the driver for the DecTalk
942 +Express, you would type the following command:
943 +
944 +modprobe speakup_dectlk
945 +
946 +Issuing this command would load the DecTalk Express driver and all other
947 +related Speakup modules necessary to get Speakup up and running.
948 +
949 +To completely unload Speakup, again presuming that it is entirely built
950 +as modules, you would give the command:
951 +
952 +modprobe -r speakup_dectlk
953 +
954 +The above command assumes you were running a DecTalk Express. If you
955 +were using a different synth, then you would substitute its keyword in
956 +place of dectlk.
957 +
958 +But now, suppose we have a situation where the main Speakup component
959 +is built into the kernel, and some or all of the drivers are built as
960 +modules. Since the main part of Speakup is compiled into the kernel, a
961 +partial Speakup proc system has been created which we can take advantage
962 +of by simply echoing the synthesizer keyword into the
963 +/proc/speakup/synth_name proc entry. This will cause the kernel to
964 +automatically load the appropriate driver module, and start Speakup
965 +talking. To switch to another synth, just echo a new keyword to the
966 +synth_name proc entry. For example, to load the DoubleTalk LT driver,
967 +you would type:
968 +
969 +echo ltlk >/proc/speakup/synth_name
970 +
971 +You can use the modprobe -r command to unload driver modules, regardless
972 +of whether the main part of Speakup has been built into the kernel or
973 +not.
974 +
975 +8. Using Software Synthesizers
976 +
977 +Using a software synthesizer requires that some other software be
978 +installed and running on your system. For this reason, software
979 +synthesizers are not available for use at bootup, or during a system
980 +installation process.
981 +
982 +In order to use a software synthesizer, you must have a package called
983 +Speech Dispatcher running on your system, and it must be configured to
984 +work with one of its supported software synthesizers.
985 +
986 +Two open source synthesizers you might use are Flite and Festival. You
987 +might also choose to purchase the Software DecTalk from Fonix Sales Inc.
988 +If you run a google search for Fonix, you'll find their web site.
989 +
990 +You can obtain a copy of Speech Dispatcher from free(b)soft at
991 +http://www.freebsoft.org/. Follow the installation instructions that
992 +come with Speech Dispatcher in order to install and configure Speech
993 +Dispatcher. You can check out the web site for your Linux distribution
994 +in order to get a copy of either Flite or Festival. Your Linux
995 +distribution may also have a precompiled Speech Dispatcher package.
996 +
997 +Once you've installed, configured, and tested Speech Dispatcher with your
998 +chosen software synthesizer, you still need one more piece of software
999 +in order to make things work. You need a package called speechd-up.
1000 +You get it from the free(b)soft web site mentioned above. After you've
1001 +compiled and installed speechd-up, you are almost ready to begin using
1002 +your software synthesizer.
1003 +
1004 +Before you can use a software synthesizer, you must have created the
1005 +/dev/softsynth device. If you have not already done so, issue the
1006 +following commands as root:
1007 +
1008 +cd /dev
1009 +mknod softsynth c 10 26
1010 +
1011 +While we are at it, we might just as well create the /dev/synth device,
1012 +which can be used to let user space programs send information to your
1013 +synthesizer. To create /dev/synth, change to the /dev directory, and
1014 +issue the following command as root:
1015 +
1016 +mknod synth c 10 25
1017 +
1018 +Now you can begin using your software synthesizer. In order to do so,
1019 +echo the sftsyn keyword to the synth_name proc entry like this:
1020 +
1021 +echo sftsyn >/proc/speakup/synth_name
1022 +
1023 +Next run the speechd_up command like this:
1024 +
1025 +speechd_up &
1026 +
1027 +Your synth should now start talking, and you should be able to adjust
1028 +the pitch, rate, etc.
1029 +
1030 +In this section, we have assumed that your copy of Speakup was compiled
1031 +with the speakup_sftsyn component either built into the kernel, or
1032 +compiled as a module.
1033 +
1034 +9. Using The DecTalk PC Card
1035 +
1036 +The DecTalk PC card is an ISA card that is inserted into one of the ISA
1037 +slots in your computer. It requires that the DecTalk PC software be
1038 +installed on your computer, and that the software be loaded onto the
1039 +Dectalk PC card before it can be used.
1040 +
1041 +You can get the dec_pc.tgz file from the linux-speakup.org site. The
1042 +dec_pc.tgz file is in the ~ftp/pub/linux/speakup directory.
1043 +
1044 +After you have downloaded the dec_pc.tgz file, untar it in your home
1045 +directory, and read the Readme file in the newly created dec_pc
1046 +directory.
1047 +
1048 +The easiest way to get the software working is to copy the entire dec_pc
1049 +directory into /user/local/lib. To do this, su to root in your home
1050 +directory, and issue the command:
1051 +
1052 +cp dec_pc /usr/local/lib
1053 +
1054 +You will need to copy the dtload command from the dec_pc directory to a
1055 +directory in your path. Either /usr/bin or /usr/local/bin is a good
1056 +choice.
1057 +
1058 +You can now run the dtload command in order to load the DecTalk PC
1059 +software onto the card. After you have done this, echo the decpc
1060 +keyword to the synth_name entry in the proc system like this:
1061 +
1062 +echo decpc >/proc/speakup/synth_name
1063 +
1064 +Your DecTalk PC should start talking, and then you can adjust the pitch,
1065 +rate, volume, voice, etc. The voice entry in the Speakup proc system
1066 +will accept a number from 0 through 7 for the DecTalk PC synthesizer,
1067 +which will give you access to some of the DecTalk voices.
1068 +
1069 +10. Using Cursor Tracking
1070 +
1071 +In Speakup version 2.0 and later, cursor tracking is turned on by
1072 +default. This means that when you are using an editor, Speakup will
1073 +automatically speak characters as you move left and right with the
1074 +cursor keys, and lines as you move up and down with the cursor keys.
1075 +
1076 +This is extremely useful, and makes editing files a snap. But there are
1077 +times when cursor tracking can get in your way. So Speakup provides a
1078 +toggle to turn cursor tracking on and off. You do this with the keypad
1079 +asterisk key. Pressing this key repeatedly will toggle the cursor
1080 +tracking on and off, and you will hear Speakup say, "cursoring off", and
1081 +"cursoring on".
1082 +
1083 +Some folks like to turn cursor tracking off while they are using the
1084 +lynx web browser. You definitely want to turn cursor tracking off when
1085 +you are using the alsamixer application. Otherwise, you won't be able
1086 +to hear your mixer settings while you are using the arrow keys.
1087 +
1088 +11. Cut and Paste
1089 +
1090 +One of Speakup's more useful features is the ability to cut and paste
1091 +text on the screen. This means that you can capture information from a
1092 +program, and paste that captured text into a different place in the
1093 +program, or into an entirely different program, which may even be
1094 +running on a different console.
1095 +
1096 +For example, in this manual, we have made references to several web
1097 +sites. It would be nice if you could cut and paste these urls into your
1098 +web browser. Speakup does this quite nicely. Suppose you wanted to
1099 +past the following url into your browser:
1100 +
1101 +http://linux-speakup.org/
1102 +
1103 +Use the speakup review keys to position the reading cursor on the first
1104 +character of the above url. When the reading cursor is in position,
1105 +press the keypad slash key once. Speakup will say, "mark". Next,
1106 +position the reading cursor on the rightmost character of the above
1107 +url. Press the keypad slash key once again to actually cut the text
1108 +from the screen. Speakup will say, "cut". Although we call this
1109 +cutting, Speakup does not actually delete the cut text from the screen.
1110 +It makes a copy of the text in a special buffer for later pasting.
1111 +
1112 +Now that you have the url cut from the screen, you can paste it into
1113 +your browser, or even paste the url on a command line as an argument to
1114 +your browser.
1115 +
1116 +Suppose you want to start lynx and go to the Speakup site.
1117 +
1118 +You can switch to a different console with the alt left and right
1119 +arrows, or you can switch to a specific console by typing alt and a
1120 +function key. These are not Speakup commands, just standard Linux
1121 +console capabilities.
1122 +
1123 +Once you've changed to an appropriate console, and are at a shell prompt,
1124 +type the word lynx, followed by a space. Now press and hold the speakup
1125 +key, while you type the keypad slash character. The url will be pasted
1126 +onto the command line, just as though you had typed it in. Press the
1127 +enter key to execute the command.
1128 +
1129 +The paste buffer will continue to hold the cut information, until a new
1130 +mark and cut operation is carried out. This means you can paste the cut
1131 +information as many times as you like before doing another cut
1132 +operation.
1133 +
1134 +You are not limited to cutting and pasting only one line on the screen.
1135 +You can also cut and paste rectangular regions of the screen. Just
1136 +position the reading cursor at the top left corner of the text to be
1137 +cut, mark it with the keypad slash key, then position the reading cursor
1138 +at the bottom right corner of the region to be cut, and cut it with the
1139 +keypad slash key.
1140 +
1141 +12. Changing the Pronunciation of Characters
1142 +
1143 +Through the /proc/speakup/chars proc entry, Speakup gives you the
1144 +ability to change how Speakup pronounces a given character. You could,
1145 +for example, change how some punctuation characters are spoken. You can
1146 +even change how Speakup will pronounce certain letters.
1147 +
1148 +You may, for example, wish to change how Speakup pronounces the z
1149 +character. The author of Speakup, Kirk Reiser, is Canadian, and thus
1150 +believes that the z should be pronounced zed. If you are an American,
1151 +you might wish to use the zee pronunciation instead of zed. You can
1152 +change the pronunciation of both the upper and lower case z with the
1153 +following two commands:
1154 +
1155 +echo 90 zee >/proc/speakup/characters
1156 +echo 122 zee >/proc/speakup/characters
1157 +
1158 +Let's examine the parts of the two previous commands. They are issued
1159 +at the shell prompt, and could be placed in a startup script.
1160 +
1161 +The word echo tells the shell that you want to have it display the
1162 +string of characters that follow the word echo. If you were to just
1163 +type:
1164 +
1165 +echo hello.
1166 +
1167 +You would get the word hello printed on your screen as soon as you
1168 +pressed the enter key. In this case, we are echoing strings that we
1169 +want to be redirected into the proc system.
1170 +
1171 +The numbers 90 and 122 in the above echo commands are the ascii numeric
1172 +values for the upper and lower case z, the characters we wish to change.
1173 +
1174 +The string zee is the pronunciation that we want Speakup to use for the
1175 +upper and lower case z.
1176 +
1177 +The > symbol redirects the output of the echo command to a file, just
1178 +like in DOS, or at the Windows command prompt.
1179 +
1180 +And finally, /proc/speakup/chars is the file entry in the proc system
1181 +where we want the output to be directed. Speakup looks at the numeric
1182 +value of the character we want to change, and inserts the pronunciation
1183 +string into an internal table.
1184 +
1185 +You can look at the whole table with the following command:
1186 +
1187 +cat /proc/speakup/chars
1188 +
1189 +Speakup will then print out the entire character pronunciation table. I
1190 +won't display it here, but leave you to look at it at your convenience.
1191 +
1192 +13. Mapping Keys
1193 +
1194 +Speakup has the capability of allowing you to assign or "map" keys to
1195 +internal Speakup commands. This section necessarily assumes you have a
1196 +Linux kernel source tree installed, and that it has been patched and
1197 +configured with Speakup. How you do this is beyond the scope of this
1198 +manual. For this information, visit the Speakup web site at
1199 +http://linux-speakup.org/. The reason you'll need the kernel source
1200 +tree patched with Speakup is that the genmap utility you'll need for
1201 +processing keymaps is in the
1202 +/usr/src/linux-<version_number>/drivers/char/speakup directory. The
1203 +<version_number> in the above directory path is the version number of
1204 +the Linux source tree you are working with.
1205 +
1206 +So ok, you've gone off and gotten your kernel source tree, and patched
1207 +and configured it. Now you can start manipulating keymaps.
1208 +
1209 +You can either use the
1210 +/usr/src/linux-<version_number>/drivers/char/speakup/speakupmap.map file
1211 +included with the Speakup source, or you can cut and paste the copy in
1212 +section 4 into a separate file. If you use the one in the Speakup
1213 +source tree, make sure you make a backup of it before you start making
1214 +changes. You have been warned!
1215 +
1216 +Suppose that you want to swap the key assignments for the Speakup
1217 +say_last_char and the Speakup say_first_char commands. The
1218 +speakupmap.map lists the key mappings for these two commands as follows:
1219 +
1220 +spk key_pageup = say_first_char
1221 +spk key_pagedown = say_last_char
1222 +
1223 +You can edit your copy of the speakupmap.map file and swap the command
1224 +names on the right side of the = (equals) sign. You did make a backup,
1225 +right? The new keymap lines would look like this:
1226 +
1227 +spk key_pageup = say_last_char
1228 +spk key_pagedown = say_first_char
1229 +
1230 +After you edit your copy of the speakupmap.map file, save it under a new
1231 +file name, perhaps newmap.map. Then exit your editor and return to the
1232 +shell prompt.
1233 +
1234 +You are now ready to load your keymap with your swapped key assignments.
1235 + Assuming that you saved your new keymap as the file newmap.map, you
1236 +would load your keymap into the proc system like this:
1237 +
1238 +/usr/src/linux-<version_number>/drivers/char/speakup/genmap newmap.map
1239 +>/proc/speakup/keymap
1240 +
1241 +Remember to substitute your kernel version number for the
1242 +<version_number> in the above command. Also note that although the
1243 +above command wrapped onto two lines in this document, you should type
1244 +it all on one line.
1245 +
1246 +Your say first and say last characters should now be swapped. Pressing
1247 +speakup pagedown should read you the first non-whitespace character on
1248 +the line your reading cursor is in, and pressing speakup pageup should
1249 +read you the last character on the line your reading cursor is in.
1250 +
1251 +You should note that these new mappings will only stay in effect until
1252 +you reboot, or until you load another keymap.
1253 +
1254 +One final warning. If you try to load a partial map, you will quickly
1255 +find that all the mappings you didn't include in your file got deleted
1256 +from the working map. Be extremely careful, and always make a backup!
1257 +You have been warned!
1258 +
1259 +14. Using Speakup's Windowing Capability
1260 +
1261 +Speakup has the capability of defining and manipulating windows on the
1262 +screen. Speakup uses the term "Window", to mean a user defined area of
1263 +the screen. The key strokes for defining and manipulating Speakup
1264 +windows are as follows:
1265 +
1266 +speakup + f2 -- Set the bounds of the window.
1267 +Speakup + f3 -- clear the current window definition.
1268 +speakup + f4 -- Toggle window silence on and off.
1269 +speakup + keypad plus -- Say the currently defined window.
1270 +
1271 +These capabilities are useful for tracking a certain part of the screen
1272 +without rereading the whole screen, or for silencing a part of the
1273 +screen that is constantly changing, such as a clock or status line.
1274 +
1275 +There is no way to save these window settings, and you can only have one
1276 +window defined for each virtual console. There is also no way to have
1277 +windows automaticly defined for specific applications.
1278 +
1279 +In order to define a window, use the review keys to move your reading
1280 +cursor to the beginning of the area you want to define. Then press
1281 +speakup + f2. Speakup will tell you that the window starts at the
1282 +indicated row and column position. Then move the reading cursor to the
1283 +end of the area to be defined as a window, and press speakup + f2 again.
1284 + If there is more than one line in the window, Speakup will tell you
1285 +that the window ends at the indicated row and column position. If there
1286 +is only one line in the window, then Speakup will tell you that the
1287 +window is the specified line on the screen. If you are only defining a
1288 +one line window, you can just press speakup + f2 twice after placing the
1289 +reading cursor on the line you want to define as a window. It is not
1290 +necessary to position the reading cursor at the end of the line in order
1291 +to define the whole line as a window.
1292 +
1293 + GNU Free Documentation License
1294 + Version 1.2, November 2002
1295 +
1296 +
1297 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
1298 + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1299 + Everyone is permitted to copy and distribute verbatim copies
1300 + of this license document, but changing it is not allowed.
1301 +
1302 +
1303 +0. PREAMBLE
1304 +
1305 +The purpose of this License is to make a manual, textbook, or other
1306 +functional and useful document "free" in the sense of freedom: to
1307 +assure everyone the effective freedom to copy and redistribute it,
1308 +with or without modifying it, either commercially or noncommercially.
1309 +Secondarily, this License preserves for the author and publisher a way
1310 +to get credit for their work, while not being considered responsible
1311 +for modifications made by others.
1312 +
1313 +This License is a kind of "copyleft", which means that derivative
1314 +works of the document must themselves be free in the same sense. It
1315 +complements the GNU General Public License, which is a copyleft
1316 +license designed for free software.
1317 +
1318 +We have designed this License in order to use it for manuals for free
1319 +software, because free software needs free documentation: a free
1320 +program should come with manuals providing the same freedoms that the
1321 +software does. But this License is not limited to software manuals;
1322 +it can be used for any textual work, regardless of subject matter or
1323 +whether it is published as a printed book. We recommend this License
1324 +principally for works whose purpose is instruction or reference.
1325 +
1326 +
1327 +1. APPLICABILITY AND DEFINITIONS
1328 +
1329 +This License applies to any manual or other work, in any medium, that
1330 +contains a notice placed by the copyright holder saying it can be
1331 +distributed under the terms of this License. Such a notice grants a
1332 +world-wide, royalty-free license, unlimited in duration, to use that
1333 +work under the conditions stated herein. The "Document", below,
1334 +refers to any such manual or work. Any member of the public is a
1335 +licensee, and is addressed as "you". You accept the license if you
1336 +copy, modify or distribute the work in a way requiring permission
1337 +under copyright law.
1338 +
1339 +A "Modified Version" of the Document means any work containing the
1340 +Document or a portion of it, either copied verbatim, or with
1341 +modifications and/or translated into another language.
1342 +
1343 +A "Secondary Section" is a named appendix or a front-matter section of
1344 +the Document that deals exclusively with the relationship of the
1345 +publishers or authors of the Document to the Document's overall subject
1346 +(or to related matters) and contains nothing that could fall directly
1347 +within that overall subject. (Thus, if the Document is in part a
1348 +textbook of mathematics, a Secondary Section may not explain any
1349 +mathematics.) The relationship could be a matter of historical
1350 +connection with the subject or with related matters, or of legal,
1351 +commercial, philosophical, ethical or political position regarding
1352 +them.
1353 +
1354 +The "Invariant Sections" are certain Secondary Sections whose titles
1355 +are designated, as being those of Invariant Sections, in the notice
1356 +that says that the Document is released under this License. If a
1357 +section does not fit the above definition of Secondary then it is not
1358 +allowed to be designated as Invariant. The Document may contain zero
1359 +Invariant Sections. If the Document does not identify any Invariant
1360 +Sections then there are none.
1361 +
1362 +The "Cover Texts" are certain short passages of text that are listed,
1363 +as Front-Cover Texts or Back-Cover Texts, in the notice that says that
1364 +the Document is released under this License. A Front-Cover Text may
1365 +be at most 5 words, and a Back-Cover Text may be at most 25 words.
1366 +
1367 +A "Transparent" copy of the Document means a machine-readable copy,
1368 +represented in a format whose specification is available to the
1369 +general public, that is suitable for revising the document
1370 +straightforwardly with generic text editors or (for images composed of
1371 +pixels) generic paint programs or (for drawings) some widely available
1372 +drawing editor, and that is suitable for input to text formatters or
1373 +for automatic translation to a variety of formats suitable for input
1374 +to text formatters. A copy made in an otherwise Transparent file
1375 +format whose markup, or absence of markup, has been arranged to thwart
1376 +or discourage subsequent modification by readers is not Transparent.
1377 +An image format is not Transparent if used for any substantial amount
1378 +of text. A copy that is not "Transparent" is called "Opaque".
1379 +
1380 +Examples of suitable formats for Transparent copies include plain
1381 +ASCII without markup, Texinfo input format, LaTeX input format, SGML
1382 +or XML using a publicly available DTD, and standard-conforming simple
1383 +HTML, PostScript or PDF designed for human modification. Examples of
1384 +transparent image formats include PNG, XCF and JPG. Opaque formats
1385 +include proprietary formats that can be read and edited only by
1386 +proprietary word processors, SGML or XML for which the DTD and/or
1387 +processing tools are not generally available, and the
1388 +machine-generated HTML, PostScript or PDF produced by some word
1389 +processors for output purposes only.
1390 +
1391 +The "Title Page" means, for a printed book, the title page itself,
1392 +plus such following pages as are needed to hold, legibly, the material
1393 +this License requires to appear in the title page. For works in
1394 +formats which do not have any title page as such, "Title Page" means
1395 +the text near the most prominent appearance of the work's title,
1396 +preceding the beginning of the body of the text.
1397 +
1398 +A section "Entitled XYZ" means a named subunit of the Document whose
1399 +title either is precisely XYZ or contains XYZ in parentheses following
1400 +text that translates XYZ in another language. (Here XYZ stands for a
1401 +specific section name mentioned below, such as "Acknowledgements",
1402 +"Dedications", "Endorsements", or "History".) To "Preserve the Title"
1403 +of such a section when you modify the Document means that it remains a
1404 +section "Entitled XYZ" according to this definition.
1405 +
1406 +The Document may include Warranty Disclaimers next to the notice which
1407 +states that this License applies to the Document. These Warranty
1408 +Disclaimers are considered to be included by reference in this
1409 +License, but only as regards disclaiming warranties: any other
1410 +implication that these Warranty Disclaimers may have is void and has
1411 +no effect on the meaning of this License.
1412 +
1413 +
1414 +2. VERBATIM COPYING
1415 +
1416 +You may copy and distribute the Document in any medium, either
1417 +commercially or noncommercially, provided that this License, the
1418 +copyright notices, and the license notice saying this License applies
1419 +to the Document are reproduced in all copies, and that you add no other
1420 +conditions whatsoever to those of this License. You may not use
1421 +technical measures to obstruct or control the reading or further
1422 +copying of the copies you make or distribute. However, you may accept
1423 +compensation in exchange for copies. If you distribute a large enough
1424 +number of copies you must also follow the conditions in section 3.
1425 +
1426 +You may also lend copies, under the same conditions stated above, and
1427 +you may publicly display copies.
1428 +
1429 +
1430 +3. COPYING IN QUANTITY
1431 +
1432 +If you publish printed copies (or copies in media that commonly have
1433 +printed covers) of the Document, numbering more than 100, and the
1434 +Document's license notice requires Cover Texts, you must enclose the
1435 +copies in covers that carry, clearly and legibly, all these Cover
1436 +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
1437 +the back cover. Both covers must also clearly and legibly identify
1438 +you as the publisher of these copies. The front cover must present
1439 +the full title with all words of the title equally prominent and
1440 +visible. You may add other material on the covers in addition.
1441 +Copying with changes limited to the covers, as long as they preserve
1442 +the title of the Document and satisfy these conditions, can be treated
1443 +as verbatim copying in other respects.
1444 +
1445 +If the required texts for either cover are too voluminous to fit
1446 +legibly, you should put the first ones listed (as many as fit
1447 +reasonably) on the actual cover, and continue the rest onto adjacent
1448 +pages.
1449 +
1450 +If you publish or distribute Opaque copies of the Document numbering
1451 +more than 100, you must either include a machine-readable Transparent
1452 +copy along with each Opaque copy, or state in or with each Opaque copy
1453 +a computer-network location from which the general network-using
1454 +public has access to download using public-standard network protocols
1455 +a complete Transparent copy of the Document, free of added material.
1456 +If you use the latter option, you must take reasonably prudent steps,
1457 +when you begin distribution of Opaque copies in quantity, to ensure
1458 +that this Transparent copy will remain thus accessible at the stated
1459 +location until at least one year after the last time you distribute an
1460 +Opaque copy (directly or through your agents or retailers) of that
1461 +edition to the public.
1462 +
1463 +It is requested, but not required, that you contact the authors of the
1464 +Document well before redistributing any large number of copies, to give
1465 +them a chance to provide you with an updated version of the Document.
1466 +
1467 +
1468 +4. MODIFICATIONS
1469 +
1470 +You may copy and distribute a Modified Version of the Document under
1471 +the conditions of sections 2 and 3 above, provided that you release
1472 +the Modified Version under precisely this License, with the Modified
1473 +Version filling the role of the Document, thus licensing distribution
1474 +and modification of the Modified Version to whoever possesses a copy
1475 +of it. In addition, you must do these things in the Modified Version:
1476 +
1477 +A. Use in the Title Page (and on the covers, if any) a title distinct
1478 + from that of the Document, and from those of previous versions
1479 + (which should, if there were any, be listed in the History section
1480 + of the Document). You may use the same title as a previous version
1481 + if the original publisher of that version gives permission.
1482 +B. List on the Title Page, as authors, one or more persons or entities
1483 + responsible for authorship of the modifications in the Modified
1484 + Version, together with at least five of the principal authors of the
1485 + Document (all of its principal authors, if it has fewer than five),
1486 + unless they release you from this requirement.
1487 +C. State on the Title page the name of the publisher of the
1488 + Modified Version, as the publisher.
1489 +D. Preserve all the copyright notices of the Document.
1490 +E. Add an appropriate copyright notice for your modifications
1491 + adjacent to the other copyright notices.
1492 +F. Include, immediately after the copyright notices, a license notice
1493 + giving the public permission to use the Modified Version under the
1494 + terms of this License, in the form shown in the Addendum below.
1495 +G. Preserve in that license notice the full lists of Invariant Sections
1496 + and required Cover Texts given in the Document's license notice.
1497 +H. Include an unaltered copy of this License.
1498 +I. Preserve the section Entitled "History", Preserve its Title, and add
1499 + to it an item stating at least the title, year, new authors, and
1500 + publisher of the Modified Version as given on the Title Page. If
1501 + there is no section Entitled "History" in the Document, create one
1502 + stating the title, year, authors, and publisher of the Document as
1503 + given on its Title Page, then add an item describing the Modified
1504 + Version as stated in the previous sentence.
1505 +J. Preserve the network location, if any, given in the Document for
1506 + public access to a Transparent copy of the Document, and likewise
1507 + the network locations given in the Document for previous versions
1508 + it was based on. These may be placed in the "History" section.
1509 + You may omit a network location for a work that was published at
1510 + least four years before the Document itself, or if the original
1511 + publisher of the version it refers to gives permission.
1512 +K. For any section Entitled "Acknowledgements" or "Dedications",
1513 + Preserve the Title of the section, and preserve in the section all
1514 + the substance and tone of each of the contributor acknowledgements
1515 + and/or dedications given therein.
1516 +L. Preserve all the Invariant Sections of the Document,
1517 + unaltered in their text and in their titles. Section numbers
1518 + or the equivalent are not considered part of the section titles.
1519 +M. Delete any section Entitled "Endorsements". Such a section
1520 + may not be included in the Modified Version.
1521 +N. Do not retitle any existing section to be Entitled "Endorsements"
1522 + or to conflict in title with any Invariant Section.
1523 +O. Preserve any Warranty Disclaimers.
1524 +
1525 +If the Modified Version includes new front-matter sections or
1526 +appendices that qualify as Secondary Sections and contain no material
1527 +copied from the Document, you may at your option designate some or all
1528 +of these sections as invariant. To do this, add their titles to the
1529 +list of Invariant Sections in the Modified Version's license notice.
1530 +These titles must be distinct from any other section titles.
1531 +
1532 +You may add a section Entitled "Endorsements", provided it contains
1533 +nothing but endorsements of your Modified Version by various
1534 +parties--for example, statements of peer review or that the text has
1535 +been approved by an organization as the authoritative definition of a
1536 +standard.
1537 +
1538 +You may add a passage of up to five words as a Front-Cover Text, and a
1539 +passage of up to 25 words as a Back-Cover Text, to the end of the list
1540 +of Cover Texts in the Modified Version. Only one passage of
1541 +Front-Cover Text and one of Back-Cover Text may be added by (or
1542 +through arrangements made by) any one entity. If the Document already
1543 +includes a cover text for the same cover, previously added by you or
1544 +by arrangement made by the same entity you are acting on behalf of,
1545 +you may not add another; but you may replace the old one, on explicit
1546 +permission from the previous publisher that added the old one.
1547 +
1548 +The author(s) and publisher(s) of the Document do not by this License
1549 +give permission to use their names for publicity for or to assert or
1550 +imply endorsement of any Modified Version.
1551 +
1552 +
1553 +5. COMBINING DOCUMENTS
1554 +
1555 +You may combine the Document with other documents released under this
1556 +License, under the terms defined in section 4 above for modified
1557 +versions, provided that you include in the combination all of the
1558 +Invariant Sections of all of the original documents, unmodified, and
1559 +list them all as Invariant Sections of your combined work in its
1560 +license notice, and that you preserve all their Warranty Disclaimers.
1561 +
1562 +The combined work need only contain one copy of this License, and
1563 +multiple identical Invariant Sections may be replaced with a single
1564 +copy. If there are multiple Invariant Sections with the same name but
1565 +different contents, make the title of each such section unique by
1566 +adding at the end of it, in parentheses, the name of the original
1567 +author or publisher of that section if known, or else a unique number.
1568 +Make the same adjustment to the section titles in the list of
1569 +Invariant Sections in the license notice of the combined work.
1570 +
1571 +In the combination, you must combine any sections Entitled "History"
1572 +in the various original documents, forming one section Entitled
1573 +"History"; likewise combine any sections Entitled "Acknowledgements",
1574 +and any sections Entitled "Dedications". You must delete all sections
1575 +Entitled "Endorsements".
1576 +
1577 +
1578 +6. COLLECTIONS OF DOCUMENTS
1579 +
1580 +You may make a collection consisting of the Document and other documents
1581 +released under this License, and replace the individual copies of this
1582 +License in the various documents with a single copy that is included in
1583 +the collection, provided that you follow the rules of this License for
1584 +verbatim copying of each of the documents in all other respects.
1585 +
1586 +You may extract a single document from such a collection, and distribute
1587 +it individually under this License, provided you insert a copy of this
1588 +License into the extracted document, and follow this License in all
1589 +other respects regarding verbatim copying of that document.
1590 +
1591 +
1592 +7. AGGREGATION WITH INDEPENDENT WORKS
1593 +
1594 +A compilation of the Document or its derivatives with other separate
1595 +and independent documents or works, in or on a volume of a storage or
1596 +distribution medium, is called an "aggregate" if the copyright
1597 +resulting from the compilation is not used to limit the legal rights
1598 +of the compilation's users beyond what the individual works permit.
1599 +When the Document is included in an aggregate, this License does not
1600 +apply to the other works in the aggregate which are not themselves
1601 +derivative works of the Document.
1602 +
1603 +If the Cover Text requirement of section 3 is applicable to these
1604 +copies of the Document, then if the Document is less than one half of
1605 +the entire aggregate, the Document's Cover Texts may be placed on
1606 +covers that bracket the Document within the aggregate, or the
1607 +electronic equivalent of covers if the Document is in electronic form.
1608 +Otherwise they must appear on printed covers that bracket the whole
1609 +aggregate.
1610 +
1611 +
1612 +8. TRANSLATION
1613 +
1614 +Translation is considered a kind of modification, so you may
1615 +distribute translations of the Document under the terms of section 4.
1616 +Replacing Invariant Sections with translations requires special
1617 +permission from their copyright holders, but you may include
1618 +translations of some or all Invariant Sections in addition to the
1619 +original versions of these Invariant Sections. You may include a
1620 +translation of this License, and all the license notices in the
1621 +Document, and any Warranty Disclaimers, provided that you also include
1622 +the original English version of this License and the original versions
1623 +of those notices and disclaimers. In case of a disagreement between
1624 +the translation and the original version of this License or a notice
1625 +or disclaimer, the original version will prevail.
1626 +
1627 +If a section in the Document is Entitled "Acknowledgements",
1628 +"Dedications", or "History", the requirement (section 4) to Preserve
1629 +its Title (section 1) will typically require changing the actual
1630 +title.
1631 +
1632 +
1633 +9. TERMINATION
1634 +
1635 +You may not copy, modify, sublicense, or distribute the Document except
1636 +as expressly provided for under this License. Any other attempt to
1637 +copy, modify, sublicense or distribute the Document is void, and will
1638 +automatically terminate your rights under this License. However,
1639 +parties who have received copies, or rights, from you under this
1640 +License will not have their licenses terminated so long as such
1641 +parties remain in full compliance.
1642 +
1643 +
1644 +10. FUTURE REVISIONS OF THIS LICENSE
1645 +
1646 +The Free Software Foundation may publish new, revised versions
1647 +of the GNU Free Documentation License from time to time. Such new
1648 +versions will be similar in spirit to the present version, but may
1649 +differ in detail to address new problems or concerns. See
1650 +http://www.gnu.org/copyleft/.
1651 +
1652 +Each version of the License is given a distinguishing version number.
1653 +If the Document specifies that a particular numbered version of this
1654 +License "or any later version" applies to it, you have the option of
1655 +following the terms and conditions either of that specified version or
1656 +of any later version that has been published (not as a draft) by the
1657 +Free Software Foundation. If the Document does not specify a version
1658 +number of this License, you may choose any version ever published (not
1659 +as a draft) by the Free Software Foundation.
1660 +
1661 +
1662 +ADDENDUM: How to use this License for your documents
1663 +
1664 +To use this License in a document you have written, include a copy of
1665 +the License in the document and put the following copyright and
1666 +license notices just after the title page:
1667 +
1668 + Copyright (c) YEAR YOUR NAME.
1669 + Permission is granted to copy, distribute and/or modify this document
1670 + under the terms of the GNU Free Documentation License, Version 1.2
1671 + or any later version published by the Free Software Foundation;
1672 + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
1673 + A copy of the license is included in the section entitled "GNU
1674 + Free Documentation License".
1675 +
1676 +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
1677 +replace the "with...Texts." line with this:
1678 +
1679 + with the Invariant Sections being LIST THEIR TITLES, with the
1680 + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
1681 +
1682 +If you have Invariant Sections without Cover Texts, or some other
1683 +combination of the three, merge those two alternatives to suit the
1684 +situation.
1685 +
1686 +If your document contains nontrivial examples of program code, we
1687 +recommend releasing these examples in parallel under your choice of
1688 +free software license, such as the GNU General Public License,
1689 +to permit their use in free software.
1690 +
1691 +The End.
1692 diff -Naurp linux-2.6.13-rc6-git13-gentoo/MAINTAINERS linux-2.6.13-rc6-git13-gentoo-speakup/MAINTAINERS
1693 --- linux-2.6.13-rc6-git13-gentoo/MAINTAINERS 2005-08-22 14:35:18.000000000 -0700
1694 +++ linux-2.6.13-rc6-git13-gentoo-speakup/MAINTAINERS 2005-08-25 14:06:54.000000000 -0700
1695 @@ -2219,6 +2219,13 @@ M: wli@holomorphy.com
1696 L: sparclinux@vger.kernel.org
1697 S: Maintained
1698
1699 +SPEAKUP Console speech output
1700 +P: Kirk Reiser
1701 +M: kirk@braille.uwo.ca
1702 +L: speakup@braille.uwo.ca
1703 +W: http://www.linux-speakup.org
1704 +S: Maintained
1705 +
1706 SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
1707 P: Roger Wolff
1708 M: R.E.Wolff@BitWizard.nl
1709 diff -Naurp linux-2.6.13-rc6-git13-gentoo/arch/arm/Kconfig linux-2.6.13-rc6-git13-gentoo-speakup/arch/arm/Kconfig
1710 --- linux-2.6.13-rc6-git13-gentoo/arch/arm/Kconfig 2005-08-22 14:35:00.000000000 -0700
1711 +++ linux-2.6.13-rc6-git13-gentoo-speakup/arch/arm/Kconfig 2005-08-25 14:06:54.000000000 -0700
1712 @@ -755,6 +755,7 @@ source "drivers/misc/Kconfig"
1713 source "drivers/media/Kconfig"
1714
1715 source "drivers/video/Kconfig"
1716 +source "drivers/char/speakup/Kconfig"
1717
1718 source "sound/Kconfig"
1719
1720 diff -Naurp linux-2.6.13-rc6-git13-gentoo/arch/mips/Kconfig linux-2.6.13-rc6-git13-gentoo-speakup/arch/mips/Kconfig
1721 --- linux-2.6.13-rc6-git13-gentoo/arch/mips/Kconfig 2005-08-22 14:35:01.000000000 -0700
1722 +++ linux-2.6.13-rc6-git13-gentoo-speakup/arch/mips/Kconfig 2005-08-25 14:06:54.000000000 -0700
1723 @@ -839,6 +839,8 @@ config SIBYTE_STANDALONE
1724 depends on SIBYTE_SB1xxx_SOC && !SIBYTE_CFE
1725 default y
1726
1727 +source "drivers/char/speakup/Kconfig"
1728 +
1729 config SIBYTE_STANDALONE_RAM_SIZE
1730 int "Memory size (in megabytes)"
1731 depends on SIBYTE_STANDALONE
1732 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/Kconfig linux-2.6.13-rc6-git13-gentoo-speakup/drivers/Kconfig
1733 --- linux-2.6.13-rc6-git13-gentoo/drivers/Kconfig 2005-08-22 14:38:22.000000000 -0700
1734 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/Kconfig 2005-08-25 14:06:54.000000000 -0700
1735 @@ -52,6 +52,8 @@ source "drivers/media/Kconfig"
1736
1737 source "drivers/video/Kconfig"
1738
1739 +source "drivers/char/speakup/Kconfig"
1740 +
1741 source "sound/Kconfig"
1742
1743 source "drivers/usb/Kconfig"
1744 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/Makefile linux-2.6.13-rc6-git13-gentoo-speakup/drivers/Makefile
1745 --- linux-2.6.13-rc6-git13-gentoo/drivers/Makefile 2005-08-22 14:40:26.000000000 -0700
1746 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/Makefile 2005-08-25 14:06:54.000000000 -0700
1747 @@ -1,4 +1,3 @@
1748 -#
1749 # Makefile for the Linux kernel device drivers.
1750 #
1751 # 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
1752 @@ -25,6 +24,8 @@ obj-$(CONFIG_FB_INTEL) += video
1753 obj-$(CONFIG_SERIO) += input/serio/
1754 obj-y += serial/
1755 obj-$(CONFIG_PARPORT) += parport/
1756 +# load keyboard early so speakup can be quieted
1757 +obj-$(CONFIG_INPUT) += input/
1758 obj-y += base/ block/ misc/ net/ media/
1759 obj-$(CONFIG_NUBUS) += nubus/
1760 obj-$(CONFIG_ATM) += atm/
1761 @@ -47,7 +48,6 @@ obj-$(CONFIG_TC) += tc/
1762 obj-$(CONFIG_USB) += usb/
1763 obj-$(CONFIG_USB_GADGET) += usb/gadget/
1764 obj-$(CONFIG_GAMEPORT) += input/gameport/
1765 -obj-$(CONFIG_INPUT) += input/
1766 obj-$(CONFIG_I2O) += message/
1767 obj-$(CONFIG_I2C) += i2c/
1768 obj-$(CONFIG_W1) += w1/
1769 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/Makefile linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/Makefile
1770 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/Makefile 2005-08-22 14:35:03.000000000 -0700
1771 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/Makefile 2005-08-25 14:06:54.000000000 -0700
1772 @@ -83,6 +83,7 @@ obj-$(CONFIG_SCx200_GPIO) += scx200_gpio
1773 obj-$(CONFIG_GPIO_VR41XX) += vr41xx_giu.o
1774 obj-$(CONFIG_TANBAC_TB0219) += tb0219.o
1775
1776 +obj-$(CONFIG_SPEAKUP) += speakup/
1777 obj-$(CONFIG_WATCHDOG) += watchdog/
1778 obj-$(CONFIG_MWAVE) += mwave/
1779 obj-$(CONFIG_AGP) += agp/
1780 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/consolemap.c linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/consolemap.c
1781 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/consolemap.c 2005-06-17 12:48:29.000000000 -0700
1782 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/consolemap.c 2005-08-25 14:06:54.000000000 -0700
1783 @@ -670,3 +670,4 @@ console_map_init(void)
1784 }
1785
1786 EXPORT_SYMBOL(con_copy_unimap);
1787 +EXPORT_SYMBOL(inverse_translate);
1788 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/keyboard.c linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/keyboard.c
1789 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/keyboard.c 2005-08-22 14:35:03.000000000 -0700
1790 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/keyboard.c 2005-08-25 14:06:54.000000000 -0700
1791 @@ -40,6 +40,13 @@
1792 #include <linux/sysrq.h>
1793 #include <linux/input.h>
1794
1795 +
1796 +#include <linux/speakup.h>
1797 +
1798 +#ifdef CONFIG_SPEAKUP_MODULE
1799 +spk_key_func addr_spk_key = NULL;
1800 +#endif
1801 +
1802 static void kbd_disconnect(struct input_handle *handle);
1803 extern void ctrl_alt_del(void);
1804
1805 @@ -64,6 +71,10 @@ extern void ctrl_alt_del(void);
1806
1807 #define KBD_DEFLOCK 0
1808
1809 +/* Key types processed even in raw modes */
1810 +
1811 +#define TYPES_ALLOWED_IN_RAW_MODE ((1 << KT_SPEC) | (1 << KT_SHIFT) | (1 << KT_SPKUP))
1812 +
1813 void compute_shiftstate(void);
1814
1815 /*
1816 @@ -79,7 +90,7 @@ void compute_shiftstate(void);
1817 typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value,
1818 char up_flag, struct pt_regs *regs);
1819 static k_handler_fn K_HANDLERS;
1820 -static k_handler_fn *k_handler[16] = { K_HANDLERS };
1821 +k_handler_fn *k_handler[16] = { K_HANDLERS };
1822
1823 #define FN_HANDLERS\
1824 fn_null, fn_enter, fn_show_ptregs, fn_show_mem,\
1825 @@ -100,15 +111,18 @@ static fn_handler_fn *fn_handler[] = { F
1826 const int max_vals[] = {
1827 255, ARRAY_SIZE(func_table) - 1, ARRAY_SIZE(fn_handler) - 1, NR_PAD - 1,
1828 NR_DEAD - 1, 255, 3, NR_SHIFT - 1, 255, NR_ASCII - 1, NR_LOCK - 1,
1829 - 255, NR_LOCK - 1, 255
1830 + 255, NR_LOCK - 1, 255, 255
1831 };
1832
1833 const int NR_TYPES = ARRAY_SIZE(max_vals);
1834
1835 struct kbd_struct kbd_table[MAX_NR_CONSOLES];
1836 -static struct kbd_struct *kbd = kbd_table;
1837 +struct kbd_struct *kbd = kbd_table;
1838 static struct kbd_struct kbd0;
1839
1840 +EXPORT_SYMBOL(kbd);
1841 +EXPORT_SYMBOL(k_handler);
1842 +
1843 int spawnpid, spawnsig;
1844
1845 /*
1846 @@ -256,12 +270,14 @@ void kd_mksound(unsigned int hz, unsigne
1847 }
1848 }
1849 }
1850 - if (ticks)
1851 - mod_timer(&kd_mksound_timer, jiffies + ticks);
1852 + if (ticks)
1853 + mod_timer(&kd_mksound_timer, jiffies + ticks);
1854 } else
1855 kd_nosound(0);
1856 }
1857
1858 +EXPORT_SYMBOL(kd_mksound);
1859 +
1860 /*
1861 * Setting the keyboard rate.
1862 */
1863 @@ -603,6 +619,7 @@ static void k_spec(struct vc_data *vc, u
1864 if (up_flag)
1865 return;
1866 if (value >= ARRAY_SIZE(fn_handler))
1867 + if (up_flag || (value >= ARRAY_SIZE(fn_handler)))
1868 return;
1869 if ((kbd->kbdmode == VC_RAW ||
1870 kbd->kbdmode == VC_MEDIUMRAW) &&
1871 @@ -1119,6 +1136,13 @@ static void kbd_keycode(unsigned int key
1872 key_map = key_maps[shift_final];
1873
1874 if (!key_map) {
1875 +#ifdef CONFIG_SPEAKUP
1876 + if (speakup_key(vc, shift_final, keycode, K(KT_SHIFT,0), !down, regs ))
1877 + return;
1878 +#elif defined(CONFIG_SPEAKUP_MODULE)
1879 + if ( addr_spk_key && (*addr_spk_key)(vc, shift_final,
1880 + keycode, K(KT_SHIFT,0), !down, regs) ) return;
1881 +#endif
1882 compute_shiftstate();
1883 kbd->slockstate = 0;
1884 return;
1885 @@ -1136,10 +1160,17 @@ static void kbd_keycode(unsigned int key
1886 }
1887
1888 type -= 0xf0;
1889 -
1890 - if (raw_mode && type != KT_SPEC && type != KT_SHIFT)
1891 +#ifdef CONFIG_SPEAKUP
1892 + if (speakup_key(vc, shift_final, keycode, keysym, !down, regs ))
1893 return;
1894 +#elif defined(CONFIG_SPEAKUP_MODULE)
1895 + if ( addr_spk_key && (*addr_spk_key)(vc, shift_final,
1896 + keycode, keysym, !down, regs) ) return;
1897 +#endif
1898
1899 + if (raw_mode && type != KT_SPEC && type != KT_SHIFT )
1900 + return;
1901 +
1902 if (type == KT_LETTER) {
1903 type = KT_LATIN;
1904 if (vc_kbd_led(kbd, VC_CAPSLOCK)) {
1905 @@ -1148,7 +1179,6 @@ static void kbd_keycode(unsigned int key
1906 keysym = key_map[keycode];
1907 }
1908 }
1909 -
1910 (*k_handler[type])(vc, keysym & 0xff, !down, regs);
1911
1912 if (type != KT_SLOCK)
1913 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/BUGS linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/BUGS
1914 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/BUGS 1969-12-31 16:00:00.000000000 -0800
1915 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/BUGS 2001-10-18 05:53:52.000000000 -0700
1916 @@ -0,0 +1,10 @@
1917 +Well, there are probably just thousands to squash, but these are the
1918 +ones I think of as bugs.
1919 +
1920 +There is a problem with speakup interrogating LiteTalks with rom
1921 +versions of at least 3.22 and earlier. (kirk)
1922 +
1923 +I define bugs as things which aren't working correctly although
1924 +they've been implemented. NOT features which haven't been added yet.
1925 +
1926 + Kirk
1927 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/ChangeLog linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/ChangeLog
1928 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/ChangeLog 1969-12-31 16:00:00.000000000 -0800
1929 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/ChangeLog 2005-08-04 10:40:51.000000000 -0700
1930 @@ -0,0 +1,2649 @@
1931 +2005-08-04 Thursday 12:42 kirk
1932 +
1933 + Here are the first set of revisions to include screen comparing and
1934 + attribute or highlight tracking thanks to Mike McDonald of APH. I am
1935 + also starting a general clean-up of the code to remove kernel support
1936 + before 2.6.12. I will also be starting to modularize all text output
1937 + by speakup to support other character sets than just ISO-8859-1.
1938 + (kirk)
1939 +
1940 +2005-06-27 Monday 10:12 kirk
1941 +
1942 + Removed the static int errno declaration line 81 in speakup.c which
1943 + seemed to be causing gcc4 or at least fedora gcc great amounts of
1944 + angst. It doesn't seem to bother gcc 3.x so why not. (kirk)
1945 +
1946 +2005-06-24 Friday 14:53 kirk
1947 +
1948 + Okay, some how I checked in the older patches in four places in vt.c.
1949 + Go figure! I have just hopefully fixed those so they should actually
1950 + work. I'll depend on Gene and Bill to beat on this if possible. They
1951 + own the professional hammers. (kirk)
1952 +
1953 +2005-06-24 Friday 14:32 kirk
1954 +
1955 + Adding in a couple of small patches to clean up the module handling of
1956 + speakup. Once thanks to Daniel Drake for these. Let's see if I can
1957 + get this patch to check in properly now. (kirk)
1958 +
1959 +2005-06-22 Wednesday 16:16 kirk
1960 +
1961 + Checking in the changes to speakup for 2.6.12. This will make speakup
1962 + cvs incompatible with previous versions of the kernel before 2.6.12.
1963 + Many thanks to Daniel Drake of the gentoo project who managed to send
1964 + me patches before I had my changes very far underway. (kirk)
1965 +
1966 +2005-04-19 Tuesday 14:37 kirk
1967 +
1968 + This is getting tedious. The speakup.c does not like being the old
1969 + version! 'grin' (kirk)
1970 +
1971 +2005-04-19 Tuesday 12:26 kirk
1972 +
1973 + Updating Changlog, fixed a missing line in install script to move into
1974 + the kernel tree root needed for tar ball installation. Also checked
1975 + in another copy of the 2.4.27 speakup.c which somehow disappeared
1976 + after my last checkin. Let's see if this fixes the 2.4.27 plus cut
1977 + and paste hang problem. (kirk)
1978 +
1979 +2005-04-07 Thursday 15:57 gene
1980 +
1981 + Added Speakup User's Guide to the Speakup tree (Gene)
1982 +
1983 +2005-03-30 Wednesday 14:02 gene
1984 +
1985 + Changed max pitch in DecTalk Express driver from 100 to 200 (Gene)
1986 +
1987 +2005-03-02 Wednesday 20:23 kirk
1988 +
1989 + I have been also trying to figure out why the cvs mail is not going
1990 + out recently so this is mostly just a test of that and updating the
1991 + change log. (kirk)
1992 +
1993 +2005-03-02 Wednesday 20:04 kirk
1994 +
1995 + Well, I broke it good with the last check in and now I'm trying to fix
1996 + it. When I took a patch against speakup.c on checkin I forgot it
1997 + would check in the speakup.c as well so that won't work. Now I am
1998 + trying the other approach to copy a speakup.c into place on a 2.4.x
1999 + checkout. We'll see if it works. (kirk)
2000 +
2001 +2005-03-02 Wednesday 17:43 kirk
2002 +
2003 + Just checking in the new speakup.c.patch diff. (kirk)
2004 +
2005 +2005-03-02 Wednesday 17:40 kirk
2006 +
2007 + Making changes to the 2.6.11 branch of speakup. Had to change four
2008 + areas of vt.c and we should now have our speakup cursor updating
2009 + working once again. Thanks to Daniel Drake of Gentoo for supplying a
2010 + patch against speakup.c with all the vc_data structure and variable
2011 + changes. I am making a v2.6 patch against the 2.4.x speakup.c to
2012 + hopefully allow us to maintain both trees for a little while longer.
2013 + (kirk)
2014 +
2015 + Also made a minor change to speakup_dectlk.c driver to accommodate
2016 + female voices thanks to Ken Hitt for that. (kirk)
2017 +
2018 +2004-12-28 Tuesday 15:11 kirk
2019 +
2020 + Just checking in the latest ChangeLog. (kirk)
2021 +
2022 +2004-12-28 Tuesday 14:21 kirk
2023 +
2024 + [no log message]
2025 +
2026 +2004-12-28 Tuesday 14:03 kirk
2027 +
2028 + 2.6.10 changed the structure of console_callback() which did away with
2029 + the curcons variable for the total local context and made it local to
2030 + a if then clause. Also moved the function up about 40 lines in the
2031 + vt.c file which caused the patch to fail on checkout. (kirk)
2032 +
2033 +2004-10-21 Thursday 10:39 kirk
2034 +
2035 + I fixed host-progs-y to hostprogs-y which may have been screwing up
2036 + some people when installing keymaps and the like. (kirk)
2037 +
2038 +2004-10-20 Wednesday 14:28 kirk
2039 +
2040 + Okay, it seems that the atkbd must get registered in the serio modules
2041 + someplace because moving it below that in the drivers/Makefile allows
2042 + it to not only compile but actually boot the system as well. I also
2043 + fix the integer/pointer warning in line 917 of speakup.c. Now I just
2044 + have to get speakup to work once again. (kirk)
2045 +
2046 +2004-10-20 Wednesday 10:14 kirk
2047 +
2048 + Checking in the first set of modifications for the 2.6.9 kernel
2049 + speakup tree. Modified drivers/Makefile and arch/mips/Kconfig with a
2050 + successful compile. I still have to run some tests to check
2051 + operation. (kirk)
2052 +
2053 +2004-08-29 Sunday 23:52 kirk
2054 +
2055 + Minor fix to vt.c under 2.6.8.1 which prevented one hunk of the vt.c
2056 + patch from being applied.
2057 +
2058 + Thanks to Garry Turkington for finding the problem with speakup not
2059 + compiling under the amd 64 bit processors. I hope this will take care
2060 + of all 64 bit architectures. Garry's solution to the problem follows.
2061 + (kirk)
2062 +
2063 + In speakup.c you include the console_macros.h file from the drivers/char
2064 + directory. This is included before linux/modules.h which is fine in and
2065 + of itself. But in modules.h there's a
2066 + definition for :
2067 + struct attribute attr;
2068 +
2069 + This is conditional, within a
2070 + #ifdef CONFIG_MODULES
2071 +
2072 + The problem is that console_macros.h defines a macro called attr. So if
2073 + that definition above is hit the macro is included and everything barfs
2074 + horribly.
2075 +
2076 + So the solution is to move the #include "../console_macros.h" in speakup.c
2077 + from its current position further down - I put it after the
2078 + #include <linux/consolemap.h> just to be safe. Everything then compiles
2079 + fine and from a quick 10 minutes playing around seems to work well on my
2080 + Athlon64 box.
2081 +
2082 + I still don't understand the conditional compilation and why this hits on
2083 + the x86_64 build I've been using. Note that the attr nameclash isn't
2084 + Speakup specific - any module including that console_macros.h file is at
2085 + the same risk. I need to spend a little time understanding what the
2086 + conditional means and what config options hit it.
2087 +
2088 +2004-06-07 Monday 10:53 kirk
2089 +
2090 + Fixed the problem with not being able to switch between synths that
2091 + are built-in to the kernel. Changed the softsynth internal synth name
2092 + to sftsyn and applied Ammer's patch to fix the synth init string for
2093 + the DECTalk Express. Thanks Ameer. (kirk)
2094 +
2095 +2004-05-13 Thursday 16:05 yue
2096 +
2097 + include #include<linux/module.h> in consolemap.c, make sure EXPORT_SYMBOL
2098 + is defined in this file
2099 +
2100 +2004-05-13 Thursday 13:38 kirk
2101 +
2102 + First of all I believe I have fixed the say screen run together
2103 + problem but I haven't tested it myself so someone please let me know
2104 + if I squashed it. We were properly putting a blank space at the end
2105 + of the line but weren't incrementing the pointer correctly.
2106 +
2107 + Next Steve Holmes submitted a new script version of speakupconf which
2108 + will now save speakup settings separately for different synths. Thank
2109 + you Steve.
2110 +
2111 + And last but by no means least Ameer Armaly has submitted two patches
2112 + for the default speakup key map the first of which he claims makes the
2113 + qwerty keyboard map act more closely like the key pad keys. Secondly
2114 + he made some changes I requested which now place volume and pitch
2115 + increment and decrement on keyboard 1234 next to the rate decrement
2116 + and increment. We have moved the review and reading punctuation keys
2117 + up to speakup-f9 through speakup-f12 and move edit xnum to
2118 + speakup-shift-f5. Thank you very much for these changes Ameer. (kirk)
2119 +
2120 +2004-05-11 Tuesday 16:34 kirk
2121 +
2122 + Adding the new consolemap.c patch for 2.4.x. (kirk)
2123 +
2124 +2004-05-11 Tuesday 16:32 kirk
2125 +
2126 + Removing the selection.c patch for 2.4.x and taking the initial patch
2127 + for consolemap.c. (kirk)
2128 +
2129 +2004-05-11 Tuesday 16:29 kirk
2130 +
2131 + Initial check in of the 2.4.x modifications for cut and paste. I
2132 + believe this is still broken so try it at your own risk. My machine
2133 + has major hardware problems which prevent me getting this working
2134 + correctly just now. I'll try again from another machine later. (kirk)
2135 +
2136 +2004-05-11 Tuesday 14:45 kirk
2137 +
2138 + Adding the new patch file for consolemap.c which just needed to have a
2139 + function inverse_translate() exported. (kirk)
2140 +
2141 +2004-05-11 Tuesday 14:44 kirk
2142 +
2143 + Checking in the first draft of my cut and paste work around for 2.6.xx
2144 + kernels. This will temporarily break 2.4.xx kernels until I get the
2145 + changes there made. We are moving to our own selection.c routines
2146 + which are much smaller than the set_selection in selection.c because
2147 + we only keep the char-by-char mode and throw away the
2148 + highlighting. (kirk)
2149 +
2150 +2004-04-14 Wednesday 16:25 kirk
2151 +
2152 + Reverted the speakup Makefile change to $V that John Mylchreest
2153 + requested because it broke 2.4.x compiling. I need to get more
2154 + clarification on that because it doesn't look like it should have
2155 + affected his situation in anycase. (kirk)
2156 +
2157 +2004-04-06 Tuesday 13:26 kirk
2158 +
2159 + Fixed the problem with say current word when the reading cursor was
2160 + past the end of characters on the line. Fixed the say window problem
2161 + of only reading half of the line when a say window was hit. Modified
2162 + the speakup Makefile by request of John Mylchreest to remove the
2163 + $(topdir) variable being referenced because it seems to play havock
2164 + with koutput which Gentoo is using to build objects outside of the
2165 + tree. (kirk)
2166 +
2167 +2004-03-11 Thursday 14:35 kirk
2168 +
2169 + Checking in the new patch which is needed to make the keyboard
2170 + responce time changes that Gene checked in last week. I didn't
2171 + realize it needed a new patch so his change didn't take. (kirk)
2172 +
2173 +2004-03-11 Thursday 14:31 kirk
2174 +
2175 + Have removed the Kconfig patches for architectures alpha and m68k in
2176 + kernel 2.6.4 because they are using the same Kconfig as is i386 and
2177 + ppc. (kirk)
2178 +
2179 +2004-03-10 Wednesday 14:56 kirk
2180 +
2181 + This is just some clean up of the 2.6.3 kernel tree. Removed the ppc
2182 + architecture patch because they are now using the standard
2183 + drivers/Kconfig which is patched for speakup under the i386
2184 + architecture. Editted speakup_drvcommon.c and speakup_keypc.c to
2185 + clean up some warnings during compile time. (kirk)
2186 +
2187 +2004-03-06 Saturday 10:55 kirk
2188 +
2189 + Okay a bit of administrative housekeeping and some small but useful
2190 + tweaks. First of all much thanks to Ameer Armaly for finding a work
2191 + around for 2.6.x kernels to restore keyboard responciveness during the
2192 + boot sequence. Thank you to a host of folks that have sent me tweaks
2193 + for the speakup_apolo driver which I have just gotten around to
2194 + installing. I cannot remember all of your names but I know Christer
2195 + Extrum was one contributor please let me know how you all like the new
2196 + changes. I have updated the Todo list after a couple of years. It was
2197 + surprising to find how many of the items we had actually
2198 + accomplished. (kirk)
2199 +
2200 +2004-03-06 Saturday 01:09 kirk
2201 +
2202 + Okay, I have updated ChangeLog and patched drivers/char/Makefile to
2203 + work with 2.4.25. This is mostly a test to see if the cvs mailing
2204 + list is once again working or not. (kirk)
2205 +
2206 +2004-03-05 Friday 16:53 gene
2207 +
2208 + Patched drivers/Makefile to get early keyboard response at boot. (Gene)
2209 +
2210 +2003-12-22 Monday 16:22 kirk
2211 +
2212 + Finally got get_word() working the way I intended it to. Considerably
2213 + simpler code. Made a number of small modifications to various
2214 + drivers. We still have the kernel hang problem when trying to remove
2215 + modules when both speakup and the drivers are modularized. I'm not
2216 + sure what the hell is up with that. Sort of looks like a timing issue
2217 + but I can't see how or where. (kirk)
2218 +
2219 +2003-12-10 Wednesday 11:53 kirk
2220 +
2221 + Checking in the fixes to drivers/char/Makefile for the 2.4.23 kernel.
2222 + Hopefully this will still allow earlier 2.4.x kernels to still patch.
2223 + (kirk)
2224 +
2225 +2003-12-10 Wednesday 10:29 kirk
2226 +
2227 + Checking in the initial version of speakup_sftsyn.c a simple device
2228 + for software synthesizers. It will create a device /dev/softsynth
2229 + with major number 10 and minor 26 one higher than our /dev/synth.
2230 + This is a read only device and can be built as either a module or into
2231 + the kernel. (kirk)
2232 +
2233 + Also fixed a few minor other bugs, the double 'n' on the on/off label
2234 + which I've fixed at least twice before. Moved the park clear up a few
2235 + lines in handle_cursor so that bloody reading cursor is released when
2236 + a cursor key is hit. Fixed the kernel oops when unloading speakup as
2237 + a module with modprobe on the console. (kirk)
2238 +
2239 +2003-11-27 Thursday 08:41 kirk
2240 +
2241 + Okay, I'm checking in the probable fix for the mysterious 2.6.xx bleep
2242 + problem thanks to Jamie Teh. It seems that somehow two lines have
2243 + been being removed from keyboard.c when checking in some fix well in
2244 + the past. The two lines were:
2245 +
2246 + if (ticks)
2247 + mod_timer(&kd_mksound_timer, jiffies + ticks);
2248 +
2249 + Would someone running 2.6.0-test? please try this and let us know how
2250 + it works. (kirk)
2251 +
2252 +2003-11-20 Thursday 14:35 gene
2253 +
2254 + Updated the config help formatting in speakup/Kconfig. (Gene)
2255 +
2256 +2003-11-15 Saturday 14:13 david
2257 +
2258 + the synth struct was incorrectly named and it would not link
2259 + as a built-in
2260 +
2261 +2003-11-14 Friday 15:03 kirk
2262 +
2263 + Fixed Config.in to indicate the three to six character string rather
2264 + than four to six, thanks to Mario Lang for that. Also fixed a
2265 + conflict in Kconfig introduced when Gene checked in his new
2266 + configuration help information for the 2.6.xx kernels. (kirk)
2267 +
2268 +2003-11-13 Thursday 16:38 gene
2269 +
2270 + Wrote configuration help In Kconfig file for 2.6. (Gene)
2271 +
2272 +2003-11-13 Thursday 10:51 david
2273 +
2274 + fixed bad timer set code also cursortrack variable for possibly more
2275 + types of cursoring in the future.
2276 +
2277 +2003-11-12 Wednesday 15:53 kirk
2278 +
2279 + Made the modifications for the Apollo synth in the Configure.help for
2280 + the 2.4.xx kernels. (kirk)
2281 +
2282 +2003-11-12 Wednesday 15:41 kirk
2283 +
2284 + Fixed the problem with the Speakout synth not getting detected on load
2285 + thanks to Steve Holmes. I over looked fixing Apolo to Apollo in
2286 + Config.in thanks to Bill Acker for noticing that. I still have to fix
2287 + it in Config.help but I'll do that shortly. Put fuzzy say_word
2288 + processing back in when say_word_ctl is not set thanks to John Covici
2289 + for that one. I also put cursor tracking on/off back in do to a cast
2290 + of thousands asking for it. Mostly at the instigation of Gene
2291 + Collins. You'll have to check to see if it actually works Gene.
2292 + (kirk)
2293 +
2294 +2003-11-11 Tuesday 09:51 david
2295 +
2296 + the keynote pc driver off the machine which had the working version, oops!
2297 +
2298 +2003-11-06 Thursday 14:00 kirk
2299 +
2300 + These are mostly maintenance fixes. I added the Keynote Gold PC
2301 + configuration information to Kconfig. I edited the keynote driver
2302 + speakup_keypc.c so it actually compiles. Someone else will have to
2303 + test this because I don't have a Keynote Gold PC. I removed the
2304 + serial_in functions which were not being used from the
2305 + speakup_acntsa.c and speakup_bns.c drivers. I actually finally got
2306 + around to fixing the Apollo driver and related other code to use
2307 + apollo with two 'l's like it should have been a long time ago. (kirk)
2308 +
2309 +2003-11-03 Monday 09:31 david
2310 +
2311 + fixed a multiplier bug in common so it would do negative multipliers.
2312 + also added prliminary keynote pc driver.
2313 +
2314 +2003-11-01 Saturday 17:45 kirk
2315 +
2316 + I moved the synth_alive setting to true up a number of lines. The
2317 + synths which depend on that variable were not receiving their
2318 + initialization strings because it wasn't set quite early enough. The
2319 + speakup_write() returns if synth_alive isn't set and so it wasn't
2320 + sending out the initialization strings. (kirk)
2321 +
2322 + I put a ten millisecond delay back in the probing code for the
2323 + speakout which I removed when updating last time. It may be the
2324 + reason the probe is failing on the Speakouts. (kirk)
2325 +
2326 +2003-10-28 Tuesday 11:15 david
2327 +
2328 + fixed volume command for j norton
2329 +
2330 +2003-10-24 Friday 14:20 david
2331 +
2332 + the EXPORT-OBJ is now fixed
2333 +
2334 +2003-10-24 Friday 14:00 david
2335 +
2336 + ok hopefully keyboard.c and char/Makefile will patch correctly
2337 +
2338 +2003-10-23 Thursday 10:14 david
2339 +
2340 + added delay for accent-sa.
2341 + also fixed bug where if word ended in col-80 and next line had word in col-1
2342 + next-word key would skip first workd on next line.
2343 +
2344 +2003-10-20 Monday 09:58 kirk
2345 +
2346 + Changed patch for architecture i386 from arch/i386/Kconfig to
2347 + drivers/Kconfig for kernels above 2.6.0-test7. I suspect this may
2348 + happen to many of the architecture files over time. Makes sense
2349 + really. (kirk)
2350 +
2351 +2003-10-10 Friday 16:08 kirk
2352 +
2353 + I have fixed the say_next_word bug which when moving to the next line
2354 + misses the partial word at the beginning of line caused by a wrap
2355 + around on the screen. I have also created a new
2356 + /proc/speakup/say_word_ctl option to allow a user to set whether they
2357 + have the old say word behavior or returns space if between words. The
2358 + default is the old way although not quite because I still have to fix
2359 + the way it used to check words. It will eventually have more control
2360 + options than just 0 return word or 1 return space on space. (kirk)
2361 +
2362 +2003-10-08 Wednesday 13:29 kirk
2363 +
2364 + Temporarily removing the MOD_INC_AND_DEC_USE_COUNT variables for now.
2365 + I am not sure they are particularly useful. (kirk)
2366 +
2367 +2003-10-08 Wednesday 11:02 kirk
2368 +
2369 + Made a couple of syntax changes to speakup_key_help and
2370 + speakup_acntsa.c. Also modified the Dectalk PC internal
2371 + driver. (kirk)
2372 +
2373 +2003-10-07 Tuesday 21:04 kirk
2374 +
2375 + Okay, I have modified all of the drivers except the Dectalk PC
2376 + internal. People are free to try them and let me know how they do or
2377 + don't work. (kirk)
2378 +
2379 +2003-10-07 Tuesday 16:02 kirk
2380 +
2381 + This is an experimental check in of speakup which has many changes and
2382 + fixes and most likely broken bits, in it. It is dangerous to use this
2383 + currently and unless you have an Apollo, Transport or LiteTalk it just
2384 + plain won't work.
2385 +
2386 + Now what I have done so far. Modified synth_request_region to steel
2387 + the tty's away from the operating system if we're being loaded as a
2388 + module or modules. Heavily modified the module sections of the code
2389 + to work properly under 2.6.x and 2.4.2? hopefully. Modified three
2390 + drivers so far to not pretend to be ready and available when they are
2391 + not. We get away with it under 2.4.x but not under 2.6.x. I don't
2392 + remember what else just now but a lot of changes. (kirk)
2393 +
2394 + When this is all finished you will be able to load or unload with
2395 + either modprobe or echo whichever you prefer. It will hopefully make
2396 + it easier for loading modules at boot time. (kirk)
2397 +
2398 +2003-09-19 Friday 10:03 kirk
2399 +
2400 + Just updating the ChangeLog before commensing to break things! (kirk)
2401 +
2402 +2003-09-19 Friday 10:01 kirk
2403 +
2404 + Updating the 2.6.0 tree based on 2.6.0-test5 which modified once again
2405 + how the arch Kconfig's are arranged. Also including the decpc driver
2406 + and fixing a Kconfig bug for the Audapter under 2.6.x kernels. (kirk)
2407 +
2408 +2003-08-18 Monday 13:02 gene
2409 +
2410 + Reverted from Jul 23 to Jul 16 LiteTalk driver because of a bad port test. (Gene)
2411 +
2412 +2003-08-08 Friday 14:15 david
2413 +
2414 + added punc level 4 for reading of extended characters above ascii 127
2415 + changed the say/spell word functions so that if not on a word say space
2416 + instead of dragging to the nearest word, prevented me from hearing
2417 + collumn misallignments.
2418 +
2419 +2003-08-02 Saturday 20:56 david
2420 +
2421 + fixed accent driver, forgot to set synth_alive (cuss cuss)
2422 + So it use to only talk when you pressed kill oops :-)
2423 +
2424 +2003-08-01 Friday 16:23 david
2425 +
2426 + fixed flush and some hanging issues. Also better board detection.
2427 +
2428 +2003-07-31 Thursday 11:27 david
2429 +
2430 + the dec_pc beta driver. You will also need dec_pc.tgz to init the
2431 + dec_pc board. The source for dtload is here.
2432 + the dec_pc.tgz contains dtload, a Readme and the dec_pc software.
2433 +
2434 +2003-07-30 Wednesday 14:50 david
2435 +
2436 + hmmm fixed help? darn thing didn't even compile. oops!!
2437 +
2438 +2003-07-30 Wednesday 14:45 david
2439 +
2440 + fixed help so it doesn't hang.
2441 + also removed the synthlist for modules. this means that new synth
2442 + can be loaded as modules without re-compiling speakup.
2443 + It now just looks for a module speakup_(name) with a valid check value
2444 + in the synth header.
2445 +
2446 +2003-07-28 Monday 18:48 david
2447 +
2448 + fixed dec to be more responsive after flush.
2449 + instead of waiting 100ms, wiat for receive ctl-a
2450 + from express, signals done flush.
2451 +
2452 +2003-07-23 Wednesday 14:26 david
2453 +
2454 + fixed bug in ltlk where if no synth kernel hung
2455 + waiting for input. Also made sure other
2456 + synths could not hang on startup.
2457 +
2458 +2003-07-22 Tuesday 17:17 kirk
2459 +
2460 + Checking in the 2.6.x changes to Makefile to support Davids new
2461 + makemapdata.c and makemapdata.h files. (kirk)
2462 +
2463 +2003-07-22 Tuesday 15:15 kirk
2464 +
2465 + Okay, I lied earlier as usual. This fix works and I know it! (kirk)
2466 +
2467 +2003-07-22 Tuesday 10:51 kirk
2468 +
2469 + Hopefully fixed once and for all the copy and paste call to
2470 + set_selection() for 2.4.x and 2.6.x kernels. Had to revert to using a
2471 + silly #if (linux_version_code) macro for a function argument which
2472 + gets bumped in 2.4.x kernels but is used as is in the 2.6.x
2473 + tree. (kirk)
2474 +
2475 +2003-07-21 Monday 08:26 david
2476 +
2477 + fixed keyhelp so speakup key is not announced twice as in
2478 + keypad 0, speakup keypad 0
2479 + the speakup mapping is required so speakup key is processed
2480 + when speakup bit is set.
2481 + also genmap now detects two functions mapped to same key combination.
2482 +
2483 +2003-07-18 Friday 10:08 david
2484 +
2485 + makemapdata.c creates mapdata.h which is used to
2486 + build genmap
2487 +
2488 +2003-07-18 Friday 10:07 david
2489 +
2490 + split genmap into two programs so includes do not
2491 + have to be available.
2492 + makemapdata constructs the tables which genmap uses
2493 + mapdata.h is compiled into genmap so it can be stand-alone
2494 +
2495 +2003-07-17 Thursday 16:24 david
2496 +
2497 + enlarged keytable was causing misread of say attributes,
2498 + also version #if on inc_mod_use_count was wrong
2499 +
2500 +2003-07-17 Thursday 09:46 david
2501 +
2502 + a script to load/save speakup configurations. run as speakupconf load/save
2503 + as root saves in /etc/speakup, as non-root saves in $HOME/.speakup
2504 +
2505 +2003-07-17 Thursday 08:09 kirk
2506 +
2507 + Checked in Kconfig-shared.patch which I forgot to check in yesterday.
2508 + Removed arch/mips/Kconfig which has been replaced with Kconfig-shared.
2509 + Fixed copy-and-paste which wasn't working in the 2.5.x and 2.6.x
2510 + kernel branches. (kirk)
2511 +
2512 +2003-07-16 Wednesday 20:50 kirk
2513 +
2514 + Rechecking in the 2.4.21 changes to speakup. I have also changed the
2515 + default punctuation delimeters to none and moved reading punc default
2516 + back to some. (kirk)
2517 +
2518 +2003-07-16 Wednesday 17:17 david
2519 +
2520 + long awaited keymap proc entry. use genmap to create the map.
2521 + as in genmap personal.map >/proc/speakup/keymap
2522 + or genmap personal.map >key_save
2523 + then at startup cat key_save >/proc/speakup/keymap
2524 +
2525 +2003-07-16 Wednesday 13:51 kirk
2526 +
2527 + Adding in initial support for Linux version 2.6.x. (kirk)
2528 +
2529 +2003-07-16 Wednesday 09:07 david
2530 +
2531 + added a check value to synth structure to validate on init.
2532 + added synth flags for synth speciffic processing.
2533 + added synth speciffic code for dectalk to insert a space between
2534 + puncs and alphas to stop dec from spelling urls etc when punc is not
2535 + spoken.
2536 +
2537 +2003-07-15 Tuesday 16:29 david
2538 +
2539 + added extended numeric processing to do $4.00 correctly.
2540 + no exnum chars are currently on, edit them is bound to speakup f9
2541 +
2542 +2003-07-11 Friday 08:43 david
2543 +
2544 + added a type 2 key echo for always speaking key even if system does not
2545 + echo, useful for validating visa numbers etc. in forms.
2546 +
2547 +2003-07-08 Tuesday 08:51 david
2548 +
2549 + fixed keyboard so works in raw mode and also prev hang bug fix from 2.4
2550 +
2551 +2003-07-08 Tuesday 08:35 david
2552 +
2553 + fixed keyboard hang, caused by shift_state pointing at null map
2554 + and I passed KT_SPKUP instead of KT_SHIFT which caused shift_state to not be computed
2555 +
2556 +2003-06-26 Thursday 14:32 kirk
2557 +
2558 + Modified Makefile to handle compiling of genmap and the speakupmap.h
2559 + dependency correctly once again in the 2.4.x tree. Also updated
2560 + ChangeLog because it hasn't been done for a while. (kirk)
2561 +
2562 +2003-06-26 Thursday 13:43 kirk
2563 +
2564 + These are mostly changes to try to get the modularization working with
2565 + the 2.5.x kernel tree. They may have had an unstablizing affect on
2566 + the 2.4.x tree so beware.
2567 +
2568 + Changes include modifying genmap.c to hopefully work in both the 2.4.x
2569 + and 2.5.x trees. This has not yet been tested on the 2.4.x tree
2570 + although it will be soon. The reason for it's changes are because the
2571 + 2.4.x kernels 'cd' into each directory and then run Makefile. In the
2572 + 2.5.x kernels all compiling is run from the tree root.
2573 +
2574 + Modified Makefile to also use the 2.5.x Makefile changes and reordered
2575 + the synth lines alphabetically.
2576 +
2577 + Modified a couple of drivers and the module include files to
2578 + incorporate Tom Stivers module licensing strings which will hopefully
2579 + stop the tainted kernel messages on module loading.
2580 +
2581 + Partially incorporated the modularization code into keyboard.c, vt.c
2582 + and I'm not sure what other patches. This is not complete. Speakup
2583 + works if built-in but I am getting all sorts of kernel oopses when
2584 + loading modules. There's something I don't have quite right just
2585 + yet. (kirk)
2586 +
2587 +2003-06-19 Thursday 09:41 kirk
2588 +
2589 + qUpdated files for 2.4.21 which will require using it. Files changed are arch/mips/config-share.in, drivers/char/Makefile, drivers/char/keyboard.c and removed the miscdevices.h patch which doesn't appear to be necessary any longer. (kirk)
2590 +
2591 +2003-06-18 Wednesday 16:29 david
2592 +
2593 + added module include
2594 +
2595 +2003-06-17 Tuesday 16:37 david
2596 +
2597 + fixes to makefiles in speakup and char so it actually builds :-)
2598 +
2599 +2003-06-16 Monday 16:55 david
2600 +
2601 + added hopefully all the exported symbols for
2602 + modular speakup
2603 +
2604 +2003-06-16 Monday 16:40 david
2605 +
2606 + added the patch for vt.c to export kd_mksound for spk module
2607 +
2608 +2003-06-16 Monday 16:38 david
2609 +
2610 + modularized speakup now works on 2.4.
2611 + loading any synth with modprobe should load spk.o and start talking
2612 +
2613 +2003-06-13 Friday 12:43 david
2614 +
2615 + added key exploring to help so they ident when pressed.
2616 + also took off the unsigned from the int currcons as
2617 + fg_console is an int so the called funcs ought to take an int
2618 +
2619 +2003-06-13 Friday 08:39 kirk
2620 +
2621 + A couple of small fixes I keep making and forgetting to check in. Fixed
2622 + CONFIG_SPEAKUP_APOLO in the Kconfig file. Placed a space after cap in
2623 + the caps_start string for the apolo. I can't remember what else
2624 + off-hand. (kirk)
2625 +
2626 +2003-06-12 Thursday 15:48 kirk
2627 +
2628 + A simple typo fix in ld_help although I like having hell in the middle
2629 + of help. (kirk)
2630 +
2631 +2003-06-12 Thursday 14:39 david
2632 +
2633 + keyinfo.h is #defines and enum formerly in include/linux/speakup.h
2634 + these are not kernel specific and might as well be here!
2635 +
2636 +2003-06-12 Thursday 14:37 david
2637 +
2638 + moved defines to keyinfo.h and 2.5 task scheduling stuff
2639 +
2640 +2003-06-12 Thursday 14:30 david
2641 +
2642 + moved defines for keys to keyinfo.h in speakup directory.
2643 + version 2.5 scheduling also
2644 +
2645 +2003-06-12 Thursday 12:07 david
2646 +
2647 + added speakup_keyhelp.c
2648 + key help module
2649 +
2650 +2003-06-12 Thursday 12:05 david
2651 +
2652 + added a rather nifty key help module currently speakup-f1
2653 + must do make modules and make modules_install to install it.
2654 +
2655 +2003-05-30 Friday 13:18 david
2656 +
2657 + changed special handlers to return int so -1 is error, 0 let system
2658 + do key, 1 we used the key.
2659 + also changed read_punc default to 3.
2660 + also goto can end with another goto press or enter,
2661 + I prefer enter to do the goto.
2662 +
2663 +2003-05-30 Friday 09:52 david
2664 +
2665 + moved the re-enable synth to speech_kill as this is the total speech off
2666 + also fixed a bug where if speakup_off it was reading when cursor keys pressed
2667 +
2668 +2003-05-27 Tuesday 21:19 david
2669 +
2670 + forgot to add speech_kill to speakupmap.map
2671 +
2672 +2003-05-27 Tuesday 11:20 kirk
2673 +
2674 + I believe I've fixed the 2.5.x speech output going away. It was
2675 + is_cursor never getting set back to zero because of an inverted test
2676 + in cursor_stop_timer(). Took one hell of a lot of work to hunt it
2677 + down though. I also fixed another bug which was passing a u_char in a
2678 + function header when the calling argument was actually an int, talk
2679 + about interesting results. (kirk)
2680 +
2681 +2003-05-23 Friday 11:04 david
2682 +
2683 + fixed a couple of missing parens in speakup.h and took out double setting
2684 + of $V in Makefile. It stays set from first test.
2685 +
2686 +2003-05-22 Thursday 19:35 kirk
2687 +
2688 + Okay, doesn't it figure that I couldn't get it right the first time
2689 + anytime. Moved the #if linux_version_code test block for the
2690 + #includes down to get around the voodoo compiler errors. Also had to
2691 + remove a line I missed having in a version check #ifdef in
2692 + speakup_drvcommon.c. (kirk)
2693 +
2694 +2003-05-22 Thursday 17:21 kirk
2695 +
2696 + This is the first preliminary check in of the new #if revisions for
2697 + the 2.4.x and 2.5.x kernels. The files affected are Makefile,
2698 + speakup.c, speakup_drvcommon.c and spk_priv.h. I have also removed
2699 + the speakupmap section of Kconfig and the char/Makefile related to the
2700 + speakupmap code. Hopefully this won't break anything but world peace
2701 + is probably just around the corner as well. (kirk)
2702 +
2703 +2003-05-21 Wednesday 16:40 david
2704 +
2705 + fixed keyboard.h and speakup.h for b2.5 kernels
2706 +
2707 +2003-05-21 Wednesday 16:21 david
2708 +
2709 + #ifdef versioned Kirk's changed for 2.5
2710 + added a version of Terry Cudney's keymap so laptop users will be happy
2711 + allowed multiple defs of the speakup key currently
2712 + caps_lock, left_meta and numpad_insert
2713 +
2714 +2003-05-16 Friday 18:20 kirk
2715 +
2716 + Okay, I've figured out what's wrong now I have to figure out how to
2717 + fix it. Here is a temporary fix though I think. I'm placing the
2718 + original 2.4.20 spk_priv.h back in place. (kirk)
2719 +
2720 +2003-05-16 Friday 18:07 kirk
2721 +
2722 + To weird, this is 2.4.x being fixed yet again. (kirk)
2723 +
2724 +2003-05-16 Friday 18:04 kirk
2725 +
2726 + Okay, trying this once again. this is the 2.5.x tree. (kirk)
2727 +
2728 +2003-05-16 Friday 17:44 kirk
2729 +
2730 + This is just getting to weird. This is another check in of Makefile,
2731 + speakup.c and speakup_drvcommon.c for the 2.4.20 tree. These seem to
2732 + keep getting overwritten when I checkin the 2.5.x tree. (kirk)
2733 +
2734 +2003-05-16 Friday 16:53 kirk
2735 +
2736 + cvs add'ing the new spk_priv.h file for 2.5.x. (kirk)
2737 +
2738 +2003-05-16 Friday 16:51 kirk
2739 +
2740 + Forgot to checkin a slightly modified spk_priv.h earlier. It seems
2741 + the timer_list structure has changed somewhat in 2.5.x kernels. The
2742 + member structure list has changed names to entry. (kirk)
2743 +
2744 +2003-05-16 Friday 15:40 kirk
2745 +
2746 + Okay, checking the proper 2.4.x Makefile, speakup.c and
2747 + speakup_drvcommon.c files hopefully. (kirk)
2748 +
2749 +2003-05-16 Friday 14:57 yue
2750 +
2751 + Still trying to clean up all of my screw-ups from the original checkin
2752 + of the 2.5.x material. (kirk)
2753 +
2754 +2003-05-16 Friday 14:04 yue
2755 +
2756 + Forgot to add the new patch files in diff-v25. Time to take a break I
2757 + think. (kirk)
2758 +
2759 +2003-05-16 Friday 13:20 yue
2760 +
2761 + Just removing the config.help which isn't needed under v2.5.x any
2762 + longer. (kirk)
2763 +
2764 +2003-05-16 Friday 12:43 yue
2765 +
2766 + This is the first checkin of the new 2.5.x speakup code. We have
2767 + created patches against the 2.4.x versions of speakup Makefile,
2768 + speakup.c speakup_drvcommon.c, as well as adding Kconfig which is the
2769 + new 2.5.x configuration system. (kirk really Yue)
2770 +
2771 +2003-05-13 Tuesday 13:05 david
2772 +
2773 + took out the console announce, added stuff for the soon coming help handler
2774 + add speakup.o to the objects that export symbols in Makefile
2775 +
2776 +2003-05-13 Tuesday 10:35 david
2777 +
2778 + moved the shift check in speakup_key so the spk key can be one
2779 + of the shift/ctrl/alts if someone wants that.
2780 + added announcement when switching consoles.
2781 + added flag to stop multiple misc_register from being done,
2782 + crashed kernel if called more than once.
2783 +
2784 +2003-05-13 Tuesday 09:51 kirk
2785 +
2786 + Okay, I fucked things up big time when I cleaned up the Makefile last
2787 + night. I kinda cleaned up to much. I think it's all better
2788 + now. (kirk)
2789 +
2790 +2003-05-12 Monday 21:48 kirk
2791 +
2792 + Fixed a couple of typos in checkout. BTW, everyone needs a new
2793 + checkout script. (kirk)
2794 +
2795 +2003-05-12 Monday 21:35 kirk
2796 +
2797 + Turning on the --silent flag in patch. (kirk)
2798 +
2799 +2003-05-12 Monday 21:28 kirk
2800 +
2801 + Adding in the new patch files in diff-v24. (kirk)
2802 +
2803 +2003-05-12 Monday 21:05 kirk
2804 +
2805 + Cleaning up the speakup Makefile and about to destroy checkin and
2806 + checkout. Hopefully not for long. I, if successful, am modifying the
2807 + files in diff-vxx to be relative to the root dir which is the top
2808 + directory of the kernel tree. Checkout will first look for a command
2809 + line argument pointing to the kernel tree. If none is given it will
2810 + check for the existence of a kernel and Documentation directory in the
2811 + current directory and if found will determine that it is in the root
2812 + directory and set ROOTDIR accordingly. if not we will fall back to
2813 + assuming the tree is in /usr/src/linux. (kirk)
2814 +
2815 +2003-05-12 Monday 19:36 david
2816 +
2817 + fixed edit punc/delim/repeats to allow shift.
2818 + Also allow alpha in delim/repeats
2819 +
2820 +2003-05-12 Monday 17:20 david
2821 +
2822 + added the shift states to thespeakup internam key_buf
2823 + required for help, coming soon.
2824 + also extened key_max to 128 so windows keys could be used.
2825 +
2826 +2003-05-12 Monday 11:38 david
2827 +
2828 + added more info to the keymap, also finished spk key now defineable.
2829 + added it to map as KEY_KP0. genmap just puts out numbers to speakupmap.h now.
2830 + working towards /proc/speakup/keymap loading.
2831 + using genmap to generate the proc stuff as well as the built-in map.
2832 + added error checking to set_key_info as well as pass in the buffer so we could
2833 + have console speciffic keymaps if we want too at a later time.
2834 +
2835 +2003-05-10 Saturday 18:36 david
2836 +
2837 + in the second call to speakup_key keysym was uninitialized and could have
2838 + inadvertantly called one of the handlers with bad data.
2839 +
2840 +2003-05-10 Saturday 14:45 david
2841 +
2842 + I put the fix in for keyboard.c so if no map speakup_key will
2843 + still be called. also the = in genmap.c
2844 +
2845 +2003-05-10 Saturday 13:33 kirk
2846 +
2847 + Okay, added an equal sign to the output loop condition in genmap.c
2848 + which was causing the speakupmap.h to be cut-off one entry to soon.
2849 + Removed a 'l' from the word coll in say_position() which was causing
2850 + some synths the Audapter in particular to mispronounce it. Removed
2851 + symbols.h because it appears we do not need it any longer. (kirk)
2852 +
2853 +2003-05-10 Saturday 00:00 david
2854 +
2855 + fixed a tolower bug in genmap.c as you can't downshift a quoted string.
2856 + also some module unloading code in speakup.c to restore the key_handlers.
2857 + Still more module stuff to be done.
2858 +
2859 +2003-05-09 Friday 15:17 david
2860 +
2861 + spk_con_module.h is include by ../console.c when speakup
2862 + is configured as a module.
2863 +
2864 +2003-05-09 Friday 15:16 david
2865 +
2866 + the new mappings generated from speakupmap.map
2867 +
2868 +2003-05-09 Friday 15:15 david
2869 +
2870 + now speakupmap.h is included in speakup to provide mappings
2871 +
2872 +2003-05-09 Friday 15:13 david
2873 +
2874 + changed genmap and speakupmap.map to be the new style of keymaps
2875 + key names are now from include/linux/input.h
2876 + no special default keymap anymore, speakup mappings are done in speakup itself.
2877 + many changes in speakup.c also for local keymapping and more moving towards being able to be a
2878 + module. the speakup key numpad 0 is currently hardcoded but may change soon.
2879 + the modifiers currently supported are shift, ctrl, alt, altgr, spk and double
2880 + the double press keys can now be anything which has a single press map.
2881 + Warning: this is relatively untested code and may not be extremely stable
2882 + although it has not crashed for me.
2883 +
2884 +2003-05-07 Wednesday 13:14 david
2885 +
2886 + more moving to a module version. fixed init so is module callable by moving
2887 + the code into speakup_open accept the initial alloc then module can alloc first console
2888 + and call open. Also changed KT_SPKUP to 14 so if null synth they will
2889 + be ignored.
2890 +
2891 +2003-05-05 Monday 09:56 kirk
2892 +
2893 + Starting the trashing of 2.2.x kernel support. We are moving toward
2894 + 2.4.x and 2.5.x. (kirk)
2895 +
2896 +2003-05-05 Monday 09:46 david
2897 +
2898 + start of modularizing speakup.
2899 + also fixed char/Makefile so in no speakup default keymap the kernel still
2900 + compiles. changed parms to speakup_key for mapping of speakup keys in speakup
2901 + itself to support 2.5 kernels.
2902 +
2903 +2003-05-03 Saturday 19:29 kirk
2904 +
2905 + Fixed bug in say_next_word which caused skipping over the entire next
2906 + word if you were on the space just before the word. (kirk)
2907 +
2908 +2003-05-02 Friday 20:10 kirk
2909 +
2910 + Moved spk_register_dev() into proc_init() and removed the main.c patch
2911 + to do the registration. That should fix the devfs hang problem. Also
2912 + took the \r out of the synth_interrogate() function in
2913 + speakup_ltlk.c. (kirk)
2914 +
2915 +2003-05-02 Friday 18:43 kirk
2916 +
2917 + Fixed the problem with writing back to a string file in /proc/speakup
2918 + by surrounding the string in quotes and prepending a \x before
2919 + unprintable characters. I think it's a bit of a kludge so if anyone
2920 + sees a more elligant solution to the problem please invoke
2921 + same. (kirk)
2922 +
2923 +2003-05-02 Friday 12:01 kirk
2924 +
2925 + Now that I've added the ChangeLog, maybe just maybe I should make sure
2926 + it's up to date. (kirk)
2927 +
2928 +2003-05-02 Friday 11:56 kirk
2929 +
2930 + Adding the correct tome offset from Steve Homes for the Speak Out
2931 + driver. Also adding the ChangeLog which I thought was already part of
2932 + it. Go figure. (kirk)
2933 +
2934 +2003-05-01 Thursday 10:52 david
2935 +
2936 + fixed a bug in phonetic char and also have it prefix digits with number.
2937 +
2938 +2003-04-30 Wednesday 22:33 david
2939 +
2940 + try to get the cvs to eat my tab mod in console.c so tabbed
2941 + columns read properly
2942 +
2943 +2003-04-30 Wednesday 22:27 david
2944 +
2945 + fixed a bug where punctuation allowed to synth when punct is off said
2946 + nothing but could announce repeats.
2947 + also suppress multiples so repeats don't give long pauses.
2948 + added a write of a space in the console for a tab so tabbed columns
2949 + read properly not run together.
2950 +
2951 +2003-04-30 Wednesday 19:14 kirk
2952 +
2953 + I've put a test in synth_interrogate() to break from the rom version
2954 + loop if i gets larger than 48. I'm trying to find out what could
2955 + cause some ltlks to hang the system. (kirk)
2956 +
2957 +2003-04-30 Wednesday 17:02 kirk
2958 +
2959 + Just checking in the latest cvs logs. We have been remiss in keeping
2960 + on top of it.. (kirk)
2961 +
2962 +2003-04-30 Wednesday 14:29 david
2963 +
2964 + forgot to append a space in speak_char, kind of sounds funny!
2965 +
2966 +2003-04-30 Wednesday 14:21 david
2967 +
2968 + fixed one line windows, forgot to set bottom.
2969 + also some optimization in synth_start and spkup_write.
2970 + took the ex_num handling for now as it was buggy
2971 +
2972 +2003-04-30 Wednesday 12:35 kirk
2973 +
2974 + Changed speakup_ltlk.c to support the newer chip set needing a \r the
2975 + interrogate command. This now works with the TrippleTalk serial ports
2976 + on the usb synths as well. (Kirk)
2977 +
2978 +2003-04-29 Tuesday 08:43 kirk
2979 +
2980 + Fix synth detection string in speakup_audptr.c from "0x05[q" to
2981 + "\x05[q". (kirk)
2982 +
2983 +2003-04-28 Monday 12:24 david
2984 +
2985 + fixed chars_write_proc a rather silly bug, well two of them,
2986 + a bad optimization, and cnt was not zero when going back to get_more
2987 +
2988 +2003-04-25 Friday 15:35 david
2989 +
2990 + fixed get_word so if on a space before a word, advances one char.
2991 + Also an odd bug insay_word where multiple words of one char the same would get counted
2992 + as repeats, append a space to the word to stop this behaviour.
2993 +
2994 +2003-04-24 Thursday 15:32 david
2995 +
2996 + speakup.h in include/linux needs updating
2997 +
2998 +2003-04-24 Thursday 13:40 david
2999 +
3000 + fixed the rate and voice keys in the map I got caught by cut and paste
3001 +
3002 +2003-04-24 Thursday 13:28 kirk
3003 +
3004 + Fixed lock_status[] array to remove the second 'n' in on. Rewrote the
3005 + probe routine for the Transport driver to get a more reliable probing
3006 + on module loads. (kirk)
3007 +
3008 +2003-04-24 Thursday 12:09 david
3009 +
3010 + added reading level punctuation on speakup 3-4 top row numbers, moved rate to speakup 5-6
3011 + and voice change on speakup 7-8 top row numbers
3012 + also took out the __init declarations on places that may be called
3013 + more than once such as synth init/probe code
3014 +
3015 +2003-04-23 Wednesday 21:03 kirk
3016 +
3017 + A small modification to the top_edge() function to try to correct the
3018 + move to top of screen problem. (kirk)
3019 +
3020 +2003-04-23 Wednesday 20:14 david
3021 +
3022 + fixed a bug where numlock also made cursor keys numeric
3023 + was passing scancode to speakup_key not the translated keycode.
3024 + also makes numeric + and / work too!
3025 +
3026 +2003-04-23 Wednesday 13:53 david
3027 +
3028 + fix to mod_code that should fix the null pointer problem
3029 + If a module was installed wile another synth was active the wrong pointer
3030 + was updated
3031 +
3032 +2003-04-22 Tuesday 22:13 david
3033 +
3034 + fixed prev and next word so they stop on lines containing only delimiters
3035 + hopefully right this time.
3036 +
3037 +2003-04-22 Tuesday 11:16 david
3038 +
3039 + turn off temp park on type KT_SPEC keys such as enter, locks etc.
3040 +
3041 +2003-04-22 Tuesday 11:06 david
3042 +
3043 + added window which can be set, cleared, silenced or read,
3044 + currently bound to speakup with f1-f4 respectively
3045 + added keyboard editing of punc/delimiter/repeat chars.
3046 + currently mapped as follows:
3047 + speakup f5, edit some. speakup f6, edit most.
3048 + speakup f7, edit delimiters. speakup f8, edit repeats.
3049 + also touched initial rates in dectlk, decext, dtlk and ltlk synth files.
3050 +
3051 +2003-04-21 Monday 14:03 kirk
3052 +
3053 + I've fixed a character misplacement in speakup_decext.c in serprobe().
3054 + I hope this fixes Genes problem. (kirk)
3055 +
3056 +2003-04-21 Monday 12:35 kirk
3057 +
3058 + Just changing grave to accent again in the characters array. This is
3059 + really a test to see how cvs logging to a mailing list works. (kirk)
3060 +
3061 +2003-04-21 Monday 12:28 kirk
3062 +
3063 + Just changing grave to accent again in the characters array. This is
3064 + really a test to see how cvs logging to a mailing list works. (kirk)
3065 +
3066 +2003-04-18 Friday 15:44 david
3067 +
3068 + fixed open brace function begins, added numlock on gives numbers, fixed bugs in next/prev word
3069 + bleeps for attrib and bleep now do: 0 nothing, 1 beep, 2 announce, 3 both
3070 + changed speakup_reset to speakup_key, better name.
3071 + changed temperary park so it goes on only you move the review cursor.
3072 + i.e. prev/next char, word, line, edges, first/last char.
3073 +
3074 +2003-04-16 Wednesday 14:04 kirk
3075 +
3076 + I've changed speakupmap.map keycode 14 back to Delete from Backspace.
3077 + Thank you David for finding that. I've also changed the grave accent
3078 + key back to accent from grave which I'm afraid blends into strings to
3079 + well. (kirk)
3080 +
3081 +2003-04-14 Monday 16:32 kirk
3082 +
3083 + I forgot to #include "cvsversion.h" in the last check in. This also
3084 + has David's new speakup_reset() function. I haven't tested it
3085 + yet. (kirk)
3086 +
3087 +2003-04-14 Monday 14:37 kirk
3088 +
3089 + Okay, this is the first check in of Dave Borowski's major revisions to
3090 + speakup. It includes automagic cursor tracking, synth driver
3091 + modularization a whole bunch of rewritten code and a whack of new bugs
3092 + as well. This is very unstable currently, use at your own
3093 + risk. (kirk)
3094 +
3095 +2003-03-18 Tuesday 16:11 kirk
3096 +
3097 + Put a key definition into speakupmap.map for ShiftR keycode 55 which I
3098 + forgot to include when I was modifying how the map worked. This
3099 + restores the speakup go to column and row with the insert cursoring
3100 + mode. (kirk)
3101 +
3102 +2002-12-13 Friday 20:15 kirk
3103 +
3104 + Okay, to fix the problem when there is no speakup map loaded and
3105 + numlock is turned on, I've renamed all altgr modifiers to Shiftr which
3106 + is not used. I also changed the key check in speakup_control to the
3107 + shiftr code. As far as I can tell this fixes the problem. I had to
3108 + define the keymaps = line to include the 32 weight for the shiftr
3109 + key. (kirk)
3110 +
3111 +2002-08-15 Thursday 20:00 gene
3112 +
3113 + Fix multiple quick_quiet definition for 2.2.x (Gene)
3114 +
3115 +2002-08-07 Wednesday 14:10 kirk
3116 +
3117 + Stupid me forgot to remove a plus sign. Sorry about that folks. (kirk)
3118 +
3119 +2002-08-07 Wednesday 12:27 kirk
3120 +
3121 + Just fixing the miscdev.h /dev/synth entry which was rejected because a new line added to the file. (kirk)
3122 +
3123 +2002-07-05 Friday 21:52 gene
3124 +
3125 + fixed 2.2.x numlock 0 bug (Gene)
3126 +
3127 +2002-07-05 Friday 14:01 kirk
3128 +
3129 + Checking numlock keyboard enter '0' fix for 2.4.18 in keyboard.c
3130 + (kirk)
3131 +
3132 +2002-07-05 Friday 13:51 kirk
3133 +
3134 + Added in David Borowski's patches with takes speakupmap.map with text
3135 + strings representing the functions and converts them to their hex
3136 + string values usable by loadkeys. This patch affects Makefile in
3137 + speakup, speakupmap.map and a new file genmap.c. (kirk)
3138 +
3139 + Fixed the bug which placed a '0' on the command line when hitting
3140 + 'enter' with numlock mode on. Speakup_control() was being called from
3141 + do_spec() with a bad value. (kirk)
3142 +
3143 +2002-06-14 Friday 15:55 gene
3144 +
3145 + Edited drivers/char/Makefile to elimate multiple keymap definition problem (Gene)
3146 +
3147 +2002-06-13 Thursday 17:43 kirk
3148 +
3149 + Removed the speakup/Makefile patch I added last week because I found a
3150 + cleaner way to handle the make build variable changes. (kirk)
3151 +
3152 +2002-06-13 Thursday 10:21 jim
3153 +
3154 + /usr/src/linux/drivers/char/Makefile:
3155 + truncated line to read:
3156 + KEYMAP =
3157 + (jim)
3158 +
3159 +2002-06-11 Tuesday 14:24 kirk
3160 +
3161 + Once again fixing changes to drivers/char/Makefile and speakup/Makefile. I think this will work better and more cleanly now. (kirk)
3162 +
3163 +2002-06-10 Monday 13:58 kirk
3164 +
3165 + Trying to fix speakup/Makefile so it is the original once again. (kirk)
3166 +
3167 +2002-06-04 Tuesday 15:00 kirk
3168 +
3169 + Adding the new speakup/Makefile.patch to the cvs repository. (kirk)
3170 +
3171 +2002-06-04 Tuesday 14:57 kirk
3172 +
3173 + Modified drivers/charMakefile to fix rejected speakup patch. I also
3174 + had to modify speakup/Makefile to use export-objs instead of O_OBJECTS
3175 + which was causing multiple symbol definitions from
3176 + speakupmap.o. (kirk)
3177 +
3178 +2002-04-30 Tuesday 13:25 kirk
3179 +
3180 + Updating speakup to 2.5.11 and fixing ppc architecture patch. Also
3181 + included the move to end of line function from 2.4.x and 2.2.x trees.
3182 + (kirk)
3183 +
3184 +2002-04-11 Thursday 09:31 gene
3185 +
3186 + Checked in nr_speakup changes for 2.2.x to fix load keys problem (Gene)
3187 +
3188 +2002-04-10 Wednesday 14:30 kirk
3189 +
3190 + Changed NR_SPKUP to 0x2a in keyboard.h which was causing an unable to
3191 + bind error when leading speakupmap.map with loadkeys in 2.4.x
3192 + kernels with the new control-kp1 key. (kirk)
3193 + ----------------------------------------------------------------------
3194 + speakupmap.map CVS:
3195 + diff-v24/^usr^src^linux^Documentation^Configure.help.patch CVS:
3196 + diff-v24/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy
3197 + diff-v24/^usr^src^linux^Documentation^speakup^keymap-tutorial.copy
3198 + diff-v24/^usr^src^linux^arch^alpha^config.in.patch CVS:
3199 + diff-v24/^usr^src^linux^arch^arm^config.in.patch CVS:
3200 + diff-v24/^usr^src^linux^arch^i386^config.in.patch CVS:
3201 + diff-v24/^usr^src^linux^arch^m68k^config.in.patch CVS:
3202 + diff-v24/^usr^src^linux^arch^mips^config.in.patch CVS:
3203 + diff-v24/^usr^src^linux^arch^ppc^config.in.patch CVS:
3204 + diff-v24/^usr^src^linux^arch^sparc64^config.in.patch CVS:
3205 + diff-v24/^usr^src^linux^arch^sparc^config.in.patch CVS:
3206 + diff-v24/^usr^src^linux^drivers^char^Makefile.patch CVS:
3207 + diff-v24/^usr^src^linux^drivers^char^console.c.patch CVS:
3208 + diff-v24/^usr^src^linux^drivers^char^keyboard.c.patch CVS:
3209 + diff-v24/^usr^src^linux^drivers^char^selection.c.patch CVS:
3210 + diff-v24/^usr^src^linux^fs^proc^root.c.patch CVS:
3211 + diff-v24/^usr^src^linux^include^linux^keyboard.h.patch CVS:
3212 + diff-v24/^usr^src^linux^include^linux^miscdevice.h.patch CVS:
3213 + diff-v24/^usr^src^linux^include^linux^proc_fs.h.patch CVS:
3214 + diff-v24/^usr^src^linux^include^linux^speakup.h.copy CVS:
3215 + diff-v24/^usr^src^linux^init^main.c.patch CVS:
3216 + ----------------------------------------------------------------------
3217 +
3218 +2002-04-04 Thursday 11:33 gene
3219 +
3220 + Updated DefaultKeyAssignments for 2.2.x kernels - Gene Collins
3221 +
3222 +2002-04-02 Tuesday 12:27 kirk
3223 +
3224 + Editted defaultKeyAssignments to reflect the new key combination
3225 + control keypad 1 for move to last character on line. (kirk)
3226 +
3227 +2002-04-02 Tuesday 10:45 kirk
3228 +
3229 + Added new function end_of_line() to move the reading cursor to the
3230 + last character on the current line. (kirk)
3231 +
3232 +2002-03-27 Wednesday 10:44 kirk
3233 +
3234 + Have modified speakup_shut_off() or whatever it's called to not sync
3235 + the reading cursor to the actual cursor when temporarily shutting off
3236 + speakup. It was a request from Geoff Shang and others. (kirk)
3237 +
3238 + I cleaned up the Todo file to remove recent changes in features.
3239 + (kirk)
3240 +
3241 +2002-03-03 Sunday 22:32 kirk
3242 +
3243 + Checking in changes for 2.4.18 which stop the two patch hunks from
3244 + failing on keyboard.c. As far as I can tell they are format changes
3245 + which don't have anything to do with speakup directly. (kirk)
3246 +
3247 +2002-02-19 Tuesday 11:12 kirk
3248 +
3249 + Checking in modifications to linux/init/main.c for 2.5.5pre1. I still
3250 + need to find a better place for that patch; it is very out of place
3251 + there now. (kirk)
3252 +
3253 +2002-02-05 Tuesday 22:31 gene
3254 +
3255 +
3256 + Updated 2.2 tree with the new numlock handling code. (Gene)
3257 +
3258 +2002-02-05 Tuesday 20:22 kirk
3259 +
3260 + Removed some duplicate #include lines in speakup.c (kirk)
3261 +
3262 +2002-02-05 Tuesday 11:15 kirk
3263 +
3264 + Made the changes to move numlock checking code out of keyboard.c into
3265 + speakup_control() in the 2.4.x tree. (kirk)
3266 +
3267 +2002-02-05 Tuesday 11:01 kirk
3268 +
3269 + Moved the numlock checking code into speakup_control() where it
3270 + belongs and out of keyboard.c in the 2.5.x tree. (kirk)
3271 +
3272 +2002-02-04 Monday 15:18 kirk
3273 +
3274 + Just adding the new Config.help copy file into cvs. (kirk)
3275 +
3276 +2002-02-04 Monday 15:16 kirk
3277 +
3278 + Modified speakup to work with linux 2.5.3 which intailed changing the
3279 + patch for linux/init/main.c and creating Config.help for the speakup
3280 + directory instead of the linuxDocumentation/Configure.help. The help
3281 + for each subdirectory is now maintained within that directory.
3282 +
3283 + Also hand patched keyboard.c to be compatible with the numlock changes
3284 + to the 2.4.x tree. Just dropped speakup.h from that distribution in
3285 + place it hasn't changed much yet. (Kirk)
3286 +
3287 +2002-01-25 Friday 10:48 gene
3288 +
3289 +
3290 + Updated 2.2 tree to work with new keypad numlock layout (Gene)
3291 +
3292 +2002-01-20 Sunday 17:46 kirk
3293 +
3294 + I've changed the #define's for TOP_EDGE, LEFT_EDGE and RIGHT_EDGE from
3295 + 0x4[def] which are out of range for nr speakup keys to values in
3296 + range. I hope this fixes the problem without breaking something
3297 + else. (kirk)
3298 +
3299 +2002-01-20 Sunday 16:13 kirk
3300 +
3301 + Removed a few double tab chars before altgr keycodes 71 and 73.
3302 + Hopefully this will correct the key binding problem when loading
3303 + speakupmap.map with loadkeys. (kirk)
3304 +
3305 +2002-01-11 Friday 14:43 gene
3306 +
3307 +
3308 + Checked in numlock feature for the 2.2 tree. (Gene)
3309 +
3310 +2002-01-11 Friday 11:11 kirk
3311 +
3312 + Modified the Apollo driver to allow chars above 0x80 through as an
3313 + experiment to see if foreign languages using those upper characters
3314 + will work correctly. (kirk)
3315 +
3316 +2002-01-10 Thursday 16:37 kirk
3317 +
3318 + Woops! Some how we lost cut and paste in our upgrades to numlock
3319 + control. Wouldn't that just make everyone happy! (kirk)
3320 +
3321 +2002-01-10 Thursday 15:41 kirk
3322 +
3323 + Checking in speakup.h again for the 2.4.x tree, it didn't take. (Kirk)
3324 +
3325 +2002-01-09 Wednesday 17:54 kirk
3326 +
3327 + For some reason speakup.h didn't get updated this morning. Should be
3328 + okay now. (kirk)
3329 +
3330 +2002-01-09 Wednesday 09:58 kirk
3331 +
3332 + Woops, the correct keyboard.c didn't get checked in. (kirk)
3333 +
3334 +2002-01-09 Wednesday 08:16 kirk
3335 +
3336 + Added numlock feature to allow the keypad to act as a normal number
3337 + pad when the numlock is on. (Yue)
3338 +
3339 +2001-12-21 Friday 10:49 kirk
3340 +
3341 + Just checking in for kernel 2.5.1 to stay sync'd with the code. (kirk)
3342 +
3343 +2001-12-07 Friday 11:55 kirk
3344 +
3345 + Updating speakup for kernel 2.5.1pre6. Seems to be something weird
3346 + going on. I think I'll have to edit some of the patches by
3347 + hand. (kirk)
3348 +
3349 +2001-12-05 Wednesday 14:33 kirk
3350 +
3351 + Cleaned up speakup.h and speakup.c which were giving warnings during
3352 + compile and moved stuff around to compile with 2.5.1pre5. (kirk)
3353 +
3354 +2001-11-23 Friday 14:44 kirk
3355 +
3356 + Hmmm, something went wrong with the first attempt at adding the
3357 + diff-v25 directory tree, so we're trying again. (kirk)
3358 +
3359 +2001-11-23 Friday 09:45 kirk
3360 +
3361 + Checking in changes to speakup.c to have the system bleep when a shift key is hit while the caps lock is on. (Yue)
3362 +
3363 +2001-11-23 Friday 09:41 kirk
3364 +
3365 + Opening a new branch of speakup for the new version 2.5.0 of
3366 + linux. (Kirk)
3367 +
3368 +2001-11-13 Tuesday 13:36 jim
3369 +
3370 + speakup.c:
3371 + Fixed the mixed case pitching bug.
3372 + The speech rates for upper and lower case chars when spelling a word
3373 + should now be the same.
3374 + (Jim Danley)
3375 +
3376 +2001-10-26 Friday 21:38 jim
3377 +
3378 + Fixed /usr/src/linux/drivers/char/Makefile patch to work with kernels
3379 + 2.4.12 and 2.4.13
3380 + (Jim)
3381 +
3382 +2001-10-18 Thursday 08:53 jim
3383 +
3384 + Removed the cut and paste bug description from the BUGS file. (Jim)
3385 +
3386 +2001-10-14 Sunday 15:28 jim
3387 +
3388 + Part two of the selection.c patch for 2.2. This process sure was fun! (Jim)
3389 +
3390 +2001-10-14 Sunday 15:21 jim
3391 +
3392 + Just adding the new patch file for selection.c in the diff-v22 patch
3393 + directory. (Jim)
3394 +
3395 +2001-10-14 Sunday 14:45 kirk
3396 +
3397 + Just adding the new patch file for selection.c in the diff-v24 patch
3398 + directory. (kirk)
3399 +
3400 +2001-10-14 Sunday 14:42 kirk
3401 +
3402 + Changed selection.c to test if call is coming from userspace or kernel
3403 + space and using GFP_ATOMIC if it is being called from kernel-space.
3404 + This works around kmalloc not returning and hanging the system in
3405 + set_selection for the block and paste function of speakup. (Jim)
3406 +
3407 +2001-10-12 Friday 12:10 jim
3408 +
3409 + speakup.c:
3410 + Removed statements which were appending 0x00 to buffers to be spoken
3411 + from functions say_curr_line and say_line_from_to.
3412 +
3413 + Inspected and modified all spkup_write() calls to be consistent,
3414 + that is, end in \n and count is correct.
3415 + (Jim Danley)
3416 +
3417 +2001-10-09 Tuesday 08:34 kirk
3418 +
3419 + Updated the BUGS and Todo list to reflect current speakup
3420 + states. (kirk)
3421 +
3422 +2001-10-07 Sunday 21:19 jim
3423 +
3424 + speakup.c:
3425 + Moved following variable declarations to top of function speakup_cut().
3426 + int ret;
3427 + unsigned char args[6*sizeof(short)];
3428 + unsigned short *arg;
3429 + static char *buf = "speakup_cut: set_selection failed: ";
3430 + (Jim Danley)
3431 +
3432 +2001-10-07 Sunday 17:11 jim
3433 +
3434 + Put speakup_dectlk.c back to its original state. Sorry about that!
3435 +
3436 + Also added a clear_selection() call to speakup.c when hitting the "mark"
3437 + key to remove (if any) hi-lighting of a previous mark/cut from the screen.
3438 + (Jim Danley)
3439 +
3440 +2001-10-05 Friday 09:14 kirk
3441 +
3442 + Checking in a slight change to speakupmap.map to uncomment alt-keypad
3443 + five to allow ascii five for extended character sets. (kirk)
3444 +
3445 +2001-10-02 Tuesday 12:34 kirk
3446 +
3447 + Modified installation and readme files for the version 1.0 release in
3448 + linux/Documentation/speakup. (kirk)
3449 +
3450 +2001-10-02 Tuesday 11:00 kirk
3451 +
3452 + Start of the check-ins for the official speakup v-1.00 release.
3453 + Modified checkin to change cvsversion format. Modified install to
3454 + remove reference to touching speakupmap.map. Modified speakup.c to
3455 + reflect version now moved to v-1.00. (kirk)
3456 +
3457 +2001-10-02 Tuesday 01:18 jim
3458 +
3459 + Modified the way that cut/paste variables are stored. No longer in spk_t
3460 + structure but stand-alone (one per speakup rather than one per console).
3461 +
3462 + speakup.c:
3463 + eliminated unsigned short mode = 0; /* char-by-char selection */
3464 + by assigning it directly.
3465 +
3466 + Added globals
3467 + char mark_cut_flag;
3468 + unsigned short mark_x, mark_y;
3469 +
3470 + /usr/include/linux/include/linux/speakup.h:
3471 + removed mark_x and mark_y from the spk_t structure and the associated
3472 + defines.
3473 + (Jim Danley)
3474 +
3475 +2001-09-17 Monday 19:58 jim
3476 +
3477 + speakup.c:
3478 + Added:
3479 + #define Mark_Cut_Bit 0x04
3480 + #define Mark_Cut_Bit_Mask 0xFB
3481 +
3482 + Changed from using bit 2 of spk_shut_up to bit 2 of spk_sound to
3483 + indicate mark/cut state.
3484 +
3485 + Removed statement that was assigning 2 to second byte of first short
3486 + in args array.
3487 + (Jim Danley)
3488 +
3489 +2001-09-14 Friday 15:43 kirk
3490 +
3491 + Removed the blank line at the bottom of drivers/char/Makefile which I
3492 + must have dreamed I removed in the last log. (kirk)
3493 +
3494 +2001-09-14 Friday 15:28 kirk
3495 +
3496 + Added a couple of missing key definitions in DefaultKeyAssignments.
3497 + Removed the blank line at the bottom of drivers/char/Makefile.
3498 + Rewrote spell_word() to use say_curr_char() and super stream line
3499 + it. (kirk)
3500 +
3501 +2001-09-14 Friday 14:11 jim
3502 +
3503 + speakup_dectlk.c:
3504 + Changed the valid pitch range from 0-99 to 50-350.
3505 + (Jim Danley)
3506 +
3507 +2001-09-14 Friday 01:28 jim
3508 +
3509 + Made similar changes to add cut and paste feature to 2.2 kernels. (Jim Danley
3510 +
3511 +2001-09-13 Thursday 23:13 jim
3512 +
3513 + diff-v2[24]/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy:
3514 + Added:
3515 + KeyPad-/ Mark and Cut screen region.
3516 + InsKeyPad-/ Paste screen region into any console.
3517 + (Jim Danley)
3518 +
3519 +2001-09-13 Thursday 21:41 jim
3520 +
3521 + Wrote mark/cut/paste feature.
3522 +
3523 + Usage:
3524 + 1. Move reading cursor to one end of the block of text you wish to cut
3525 + 2. Press the mark/cut key. You should hear "mark".
3526 + 3. Move reading cursor to other end of block of text to be cut.
3527 + 4. Press the mark/cut key. You should hear "cut".
3528 + 5. The cut buffer is now saved.
3529 + 6. Move to a program in any console where you wish to copy the cut buffer.
3530 + 7. Press the paste key. You should hear "paste" and text from
3531 + the cut buffer will be output just as if you had entered it
3532 + at the keyboard.
3533 +
3534 + Note: Trailing whitespace is stripped and newlines added where appropriate.
3535 +
3536 + speakup.c:
3537 + Added two new functions; speakup_cut() and speakup_paste()
3538 +
3539 + speakupmap.map:
3540 + Modified default keymap so that keypad divide toggles mark/cut and
3541 + insert-keypad divide is paste.
3542 +
3543 + /usr/src/linux/include/linux/speakup.h:
3544 + Added two new variables to the spk_t structure; unsigned long mark_x, mark_y
3545 + to store the coordinates of the beginning of the mark area to be cut.
3546 + Added:
3547 + #define spk_mx speakup_console[currcons]->mark_x
3548 + #define spk_my speakup_console[currcons]->mark_y
3549 + #define SPEAKUP_CUT 0x27
3550 + #define SPEAKUP_PASTE 0x28
3551 + Added two new prototypes:
3552 + extern void speakup_cut(unsigned int, struct tty_struct *);
3553 + extern void speakup_paste(struct tty_struct *);
3554 +
3555 + /usr/src/linux/drivers/char/keyboard.c:
3556 + In function do_spkup():
3557 + Added case blocks for SPEAKUP_CUT and SPEAKUP_PASTE.
3558 +
3559 + /usr/src/linux/include/linux/keyboard.h:
3560 + Added:
3561 + #define K_SPEAKUP_CUT K(KT_SPKUP,SPEAKUP_CUT)
3562 + #define K_SPEAKUP_PASTE K(KT_SPKUP,SPEAKUP_PASTE)
3563 + and modified: (was 27)
3564 + #define NR_SPKUP 0x29
3565 +
3566 + Also modified patch/copy files below in both diff-v22 and diff-v24 directories.
3567 + ^usr^src^linux^include^linux^keyboard.h.patch
3568 + ^usr^src^linux^drivers^char^keyboard.c.patch
3569 + ^usr^src^linux^include^linux^speakup.h.copy
3570 +
3571 +2001-09-08 Saturday 22:22 kirk
3572 +
3573 + Re-implementing the alpha patch for kernels 2.4.x which somehow keeps
3574 + getting lost. I also removed the bottom three lines of the checkout
3575 + script which are not needed anymore because we include a
3576 + speakupmap.c. (Kirk)
3577 +
3578 +2001-08-30 Thursday 17:25 kirk
3579 +
3580 + Modified drivers/char/Makefile to work with the new speakupmap.c
3581 + changes to 2.4.x. These changes include a portion of Shane's patch as
3582 + well as other rewrites by me. (kirk)
3583 +
3584 +2001-08-30 Thursday 16:17 kirk
3585 +
3586 + Modified drivers/char/Makefile and speakup/Makefile to accomodate the
3587 + new 2.4.9ac3 Makefile changes. This will also include a new
3588 + speakupmap.c moving towards Shane's Makefile patches for the 2.2.x
3589 + kernels, not included yet. (kirk)
3590 +
3591 +2001-08-29 Wednesday 21:26 kirk
3592 +
3593 + Just adding new patch against linux/init/main.c to cvs. (kirk)
3594 +
3595 +2001-08-29 Wednesday 21:23 kirk
3596 +
3597 + Rewrote speakup_init() to call a function speakup_register_devsynth()
3598 + which gets called from do_basic_setup in init/main.c. We need to do
3599 + this so that miscdevice will get called after the mm has been set up.
3600 + This should allow devfs to work with speakup. (kirk)
3601 +
3602 +2001-08-26 Sunday 13:54 kirk
3603 +
3604 + Removed an old comment line from console.c which prevent clean
3605 + patching against 2.4.8ac11. (kirk)
3606 +
3607 +2001-08-25 Saturday 18:46 kirk
3608 +
3609 + Modified keyboard.c, keyboard.h, speakup.c and speakup.h to conform with the standard kernel source tree under 2.4.x kernels. (Kirk)
3610 +
3611 +2001-08-25 Saturday 18:30 kirk
3612 +
3613 + Removing lxdialog patch files and removing their entries from
3614 + patchlist-22. These are now part of the standard 2.2.19+ kernel
3615 + tree. (Kirk)
3616 + ----------------------------------------------------------------------
3617 + patchlist-v22 speakupmap.map symbols.h CVS:
3618 + diff-v22/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy
3619 + diff-v22/^usr^src^linux^Documentation^speakup^keymap-tutorial.copy
3620 + Removed Files: CVS:
3621 + diff-v22/^usr^src^linux^scripts^lxdialog^menubox.c.patch CVS:
3622 + ----------------------------------------------------------------------
3623 +
3624 +2001-08-25 Saturday 18:15 kirk
3625 +
3626 + Changed keyboard.c, keyboard.h, speakup.c and speakup.h to conform to
3627 + the standard linux kernel tree code style for the 2.2.x
3628 + kernels. (Kirk)
3629 +
3630 +2001-08-18 Saturday 03:31 jim
3631 +
3632 + diff-v22/^usr^src^linux^drivers^char^keyboard.c.patch: Modified patch
3633 + to allow raw keyboard for version 2.2 kernels. (Jim Danley)
3634 +
3635 +2001-08-02 Thursday 13:47 kirk
3636 +
3637 + Adding \x20 to the flush string for the Audapter synths. (Kirk)
3638 +
3639 +2001-07-31 Tuesday 19:07 jim
3640 +
3641 + speakup_ltlk.c: appended \x20 to flush string of \x18 for litetalk driver.
3642 + This seems to fix the bug that was causing first chars to be dropped by
3643 + the double lt and litetalk synths for some users. (Jim Danley)
3644 +
3645 +2001-07-26 Thursday 20:12 kirk
3646 +
3647 + A few small clean ups trying to get 2.4.7 to work. (Kirk)
3648 +
3649 +2001-07-16 Monday 11:30 kirk
3650 +
3651 + Added KT_SPKUP to allowed_in_raw_mode macro so speakup's review
3652 + functions are available in raw mode for v-2.4.x kernels. (Kirk)
3653 +
3654 +2001-03-17 Saturday 15:40 jim
3655 +
3656 + speakup.c:
3657 + Added silent feature.
3658 + The print screen key kills and revives speakup. Sending specific values to
3659 + /proc/speakup/silent now allows the same control without having to press a key.
3660 + Valid settings are 0 through 3.
3661 + 0 and 2 turn on speakup if not already alive.
3662 + 1 and 3 turn off speakup if not already killed.
3663 + 0 and 1 announce the changes as the print screen key does,
3664 + 2 and 3 act silently.
3665 + (Jim Danley)
3666 +
3667 +2001-03-17 Saturday 08:45 jim
3668 +
3669 + speakup.c and symbols.h:
3670 + Added bell position feature.
3671 + When a letter is typed in column bell_pos, console beeps.
3672 + Valid settings are 0 through video_num_columns. Zero disables.
3673 + Get/set via /proc/speakup/bell_pos.
3674 + (Brian Borowski)
3675 +
3676 +2001-03-13 Tuesday 14:50 jim
3677 +
3678 + speakup.c:
3679 + Added code in say_screen() to insert a space at the end of full lines.
3680 + (Gene Collins)
3681 +
3682 +2001-03-13 Tuesday 14:40 jim
3683 +
3684 + speakup.c:
3685 + Found and fixed a couple of places where synth_write() was writing len of
3686 + string plus 1 which caused a NULL to be sent to the synth which causes
3687 + problems for the Doubletalk LT.
3688 +
3689 + speakup.c and keyboard.c for 2.2 and 2.4
3690 + Corrected the length parameter on several spkup_write() statements which
3691 + were also sending unnecessary NULLs.
3692 +
3693 + Corrected spelling of /proc/speakup/transport directory. (Jim Danley)
3694 +
3695 +2001-02-28 Wednesday 10:55 kirk
3696 +
3697 + Removing the make menuconfig patches for checklist.c and menubox.c
3698 + because they have been included in linux 2.4.2. (Kirk)
3699 +
3700 +2001-02-11 Sunday 14:05 kirk
3701 +
3702 + Checking support for alpha support in 2.4.x kernels. (Kirk)
3703 +
3704 +2001-01-30 Tuesday 20:55 kirk
3705 +
3706 + Fixed arch/ppc/config.in to source drivers/char/Config.in which had
3707 + gotten broken in the post 2.4.0 ac patches. (Kirk)
3708 +
3709 +2001-01-28 Sunday 23:53 jim
3710 +
3711 + Reduced duplicate code in proc_speakup_synth_init() by creating two arrays
3712 + of strings, read_only[] and root_writable[] and using these arrays in
3713 + for loops.
3714 + Bumped version numbers on remaining serial synth drivers. (Jim Danley)
3715 +
3716 +2001-01-28 Sunday 20:26 kirk
3717 +
3718 + Made modifications to speakup.h for v2.2 and the remainder of the
3719 + serial synth drivers to use the initialize_uart() function in
3720 + speakup_drvcommon.c. (Kirk)
3721 +
3722 +2001-01-28 Sunday 19:15 kirk
3723 +
3724 + Made changes to 2.4.0 to move uart initialization code into
3725 + speakup_drvcommon.c and modified speakup_dectlk.c to use that
3726 + change. (Kirk)
3727 +
3728 +2001-01-28 Sunday 00:26 jim
3729 +
3730 + Modified the serprobe() function in the Accent SA driver.
3731 + This should allow the Accent SA to start talking from a cold boot with
3732 + no help from the lilo serial= or speakup_ser= options.
3733 + Ran speakup_acntsa.c through Lindent.
3734 + Bumped speakup_acntsa.c version number. (Jim Danley)
3735 +
3736 +2001-01-27 Saturday 23:26 jim
3737 +
3738 + Modified the serprobe() function in the Dectalk Express driver.
3739 + My Dectalk Express now starts talking just fine from a cold boot with
3740 + no help from the lilo serial= or speakup_ser= options.
3741 + Ran speakup_dectlk.c through Lindent and cleaned up some comments.
3742 + Bumped Dectalk Express driver version number. (Jim Danley)
3743 +
3744 +2001-01-25 Thursday 17:58 jim
3745 +
3746 + Worked on the write handler for /proc/speakup/synth.
3747 + It error-checks new_synth_name, prints out msg if synth selected is
3748 + already in use, looks for new_synth_name in list of synths compiled into
3749 + kernel, and prepares to switch to new synth.
3750 + Ran speakup.c through Lindent and cleaned up some comments. (Jim Danley)
3751 +
3752 +2001-01-24 Wednesday 22:59 jim
3753 +
3754 +
3755 + Modified speakup_drvcommon.c so that those synth-specific /proc file
3756 + entries which are writable will now accept "" to trigger resetting of
3757 + the default value.
3758 + Ran speakup_drvcommon.c through Lindent and cleaned up some comments.
3759 + (Jim Danley)
3760 +
3761 +2001-01-24 Wednesday 12:33 kirk
3762 +
3763 + Made changes for Maintaners to v-24. (Kirk)
3764 +
3765 +2001-01-24 Wednesday 12:31 kirk
3766 +
3767 + Another typo fix in Configure.help and an update to the URL in Maintaners. (Kirk)
3768 +
3769 +2001-01-24 Wednesday 11:57 kirk
3770 +
3771 + Fixed clarification in Configure.help in v-24. (Kirk)
3772 +
3773 +2001-01-24 Wednesday 11:56 kirk
3774 +
3775 + Fixed spelling error in Config.in and modified Configure.help yet again. (Kirk)
3776 +
3777 +2001-01-24 Wednesday 11:47 kirk
3778 +
3779 + Fixed formatting in v-24 configure.help. (Kirk)
3780 +
3781 +2001-01-24 Wednesday 11:46 kirk
3782 +
3783 + Fixed indentation and spelling errors in configure.help. (Kirk)
3784 +
3785 +2001-01-24 Wednesday 10:49 kirk
3786 +
3787 + Fixing the v-2.4 version of the Configure.help file. (Kirk)
3788 +
3789 +2001-01-24 Wednesday 10:47 kirk
3790 +
3791 + Updated the Configure.help documentation and re-arranged the speakup
3792 + Config.in file. (Kirk)
3793 +
3794 +2001-01-23 Tuesday 15:45 jim
3795 +
3796 +
3797 + Modified speakup.c to handle input in either upper or lower case written
3798 + to the /proc file entries for those settings that accept a range of
3799 + values that includes alpha chars.
3800 + The value is forced to lower case before any comparisons.
3801 + Modified the synth driver range parameters to accept only lower case as follows:
3802 + rate in both speakup_acntpc.c and speakup_acntsa.c,
3803 + pitch and volume in speakup_apolo.c,
3804 + tone in speakup_txprt.c.
3805 + Bumped synth driver version numbers.
3806 + (Jim Danley)
3807 +
3808 +2001-01-23 Tuesday 11:58 jim
3809 +
3810 +
3811 + Fixed typo in speakup_dectlk.c.
3812 + (Jim Danley)
3813 +
3814 +2001-01-23 Tuesday 11:39 jim
3815 +
3816 +
3817 + Moved full_time into the spk_synth structure for all synths and created
3818 + /proc/speakup/synth-specific/full_time entry.
3819 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
3820 + (Jim Danley)
3821 +
3822 +2001-01-23 Tuesday 01:14 jim
3823 +
3824 +
3825 + Added to the TODO list.
3826 + (Jim Danley)
3827 +
3828 +2001-01-23 Tuesday 00:42 jim
3829 +
3830 +
3831 + Moved delay_time, trigger_time, and jiffy_delta into the spk_synth
3832 + structure for all synths.
3833 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
3834 + Assigned following default values for Accent SA and Audapter drivers:
3835 + delay_time = 400, trigger_time = 5, jiffy_delta = 3.
3836 + Bumped synth driver version numbers.
3837 + (Jim Danley)
3838 +
3839 +2001-01-22 Monday 21:32 jim
3840 +
3841 +
3842 + Moved INIT_STRING and REINIT_STRING into the spk_synth structure for all synths.
3843 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
3844 + Commented out some unused driver code that caused compile warnings.
3845 + (Jim Danley)
3846 +
3847 +2001-01-22 Monday 17:44 jim
3848 +
3849 +
3850 + Test number 2.
3851 + (Jim Danley)
3852 +
3853 +2001-01-22 Monday 16:28 kirk
3854 +
3855 +
3856 + Testing my new CVS login.
3857 + (Jim Danley)
3858 +
3859 +2001-01-21 Sunday 19:48 kirk
3860 +
3861 + Wrote char *strlwr(char *) and now use it to be certain that the
3862 + synth_name (provided by the user in config or at boot time) is forced
3863 + to lower case.
3864 + (Jim Danley)
3865 +
3866 +2001-01-21 Sunday 13:53 kirk
3867 +
3868 + Added /proc/speakup/synth entry -- read-only so far.
3869 + Removed old ioctl functions from speakup.c
3870 + Wrote xlate function to translate escape chars in user provided strings.
3871 + Added synth_name to "unknown synthesizer" message at boot up.
3872 + Check for length of synth_name.
3873 + Made certain that synth_name is NULL terminated.
3874 + (Jim Danley)
3875 +
3876 +2001-01-21 Sunday 09:03 kirk
3877 +
3878 + Changed synth_write("\n", 2);
3879 + to synth_write("\n", 1);
3880 + when sending user provided synth settings via /proc to the synth.
3881 + This *might* fix the problem reported by litetalk users.
3882 + Cleaned up some comments and indenting.
3883 + (Jim Danley)
3884 +
3885 +2001-01-14 Sunday 21:05 matt
3886 +
3887 + Checking in 2.2.x patches for the last modification. (Matt)
3888 +
3889 +2001-01-14 Sunday 20:49 kirk
3890 +
3891 + Checking in Matt Campbells driver rewrite to include all the synths in
3892 + the kernel at the same time. (Kirk)
3893 +
3894 +2001-01-10 Wednesday 12:16 kirk
3895 +
3896 + Fixed bug when writing to /proc/speakup files caps_start, caps_stop,
3897 + punc_some, and punc_most.
3898 + Defined PUNC_CHARS and PUNC_CHARS_SIZE in symbols.h.
3899 + Added MULTI_CHAR to list of possible spk_variable.flags, necessary to
3900 + define a list of chars that must belong to another list of chars --
3901 + used for punc_some and punc_most.
3902 + Set arbitrary limit of 33 chars on caps_*.
3903 + Set PUNC_CHARS_SIZE char limit on user supplied value to punc_some and punc_most.
3904 + Fixed erroneous error strings.
3905 + #define'd error conditions to make code more clear.
3906 + Added STRING_TOO_LONG and CHAR_NOT_ONE_OF.
3907 + Added missing volume setting to DEFAULT_STATIC for Dectalk Express.
3908 + (Jim Danley)
3909 +
3910 +2001-01-08 Monday 19:08 kirk
3911 +
3912 + Made more changes to the cursoring. I got backspace working in and
3913 + out of cursoring. (Kirk)
3914 +
3915 +2001-01-08 Monday 16:25 kirk
3916 +
3917 + I have rewritten the cursoring routine speakup_check() to hopefully
3918 + improve it. We are not there yet! (Kirk)
3919 +
3920 +2001-01-07 Sunday 16:05 kirk
3921 +
3922 + Just fixing some indentation settings. (Kirk)
3923 +
3924 +2001-01-07 Sunday 13:37 kirk
3925 +
3926 + added a single line to the top of speakup.c for testing.
3927 + (Jim Danley)
3928 +
3929 +2001-01-07 Sunday 12:58 kirk
3930 +
3931 + Fixed char/Makefile to build depends which it wasn't doing for some
3932 + reason under 2.2.18. (Kirk)
3933 +
3934 +2001-01-07 Sunday 12:16 kirk
3935 +
3936 + Fixed char/Makefile to create the speakup/.depend correctly. I don't
3937 + know why it wasn't working before. Everything else did. (Kirk)
3938 +
3939 +2001-01-07 Sunday 12:05 kirk
3940 +
3941 + modified range checking code in speakup.c to handle negative numbers in
3942 + user provided parameter to /proc/speakup/* and also in spk_variable.valid.
3943 + (Jim Danley)
3944 +
3945 +2001-01-07 Sunday 09:02 kirk
3946 +
3947 + cleaned up and commented symbols.h.
3948 + re-wrote some of the range logic in symbols.h and speakup.c.
3949 + changed char valid[33] to char *valid in spk_variable struct.
3950 + dropped 0xff as char string terminator for spk_variable.valid member.
3951 + removed NUMERIC from rate flags for accents.
3952 + made /proc/speakup/tone read-only for dectalk express.
3953 + (Jim Danley)
3954 +
3955 +2001-01-06 Saturday 15:52 kirk
3956 +
3957 + Reorganized the Todo list and placed bugs in the bugs file. (Kirk)
3958 +
3959 +2001-01-05 Friday 21:19 kirk
3960 +
3961 + Made modifications to fix the make menuconfig bug in 2.4.0. (Kirk)
3962 +
3963 +2001-01-05 Friday 20:42 kirk
3964 +
3965 + Modified menubox.c in lxdialog to fix bug with initial menus not being
3966 + shown completely. (Kirk)
3967 +
3968 +2001-01-05 Friday 15:54 kirk
3969 +
3970 + merged symbols_*.h into symbols.h and removed symbols_*.h from CVS.
3971 + cleaned up the format a bit along the way.
3972 + (Jim Danley)
3973 +
3974 +2001-01-04 Thursday 18:33 kirk
3975 +
3976 + Modified the console.c, speakup.h and speakup.c for the 2.4.0 kernels.
3977 + I have also removed vt.c in preparation for just using the
3978 + /proc/speakup configuration system. (Kirk)
3979 +
3980 +2001-01-04 Thursday 12:11 kirk
3981 +
3982 + Starting major changes for merging into the kernel source tree. Files
3983 + updated are console.c speakup.c speakup.h and vt.c. I have built a
3984 + new set of functions to interact with the kernel which will be speakup
3985 + functions if speakup is configured in and null stubs if speakup is not
3986 + configured in. So far they include: speakup_allocate(), speakup_bs(),
3987 + speakup_con_update(), speakup_con_write() and speakup_init(). These
3988 + changes only affect the 2.2.18 tree currently. (Kirk)
3989 +
3990 +2001-01-03 Wednesday 10:04 kirk
3991 +
3992 + Fixed transport driver by giving the uart time to settle before
3993 + testing for the port. (Kirk)
3994 +
3995 +2001-01-02 Tuesday 20:18 kirk
3996 +
3997 + First attempt to change checkout to work with an installed tarball and
3998 + update it to cvs. (Kirk)
3999 +
4000 +2001-01-02 Tuesday 14:09 kirk
4001 +
4002 + Made tchanges to make v24 compatible with 2.4.0-prerelease. (Kirk)
4003 +
4004 +2001-01-02 Tuesday 09:50 kirk
4005 +
4006 + Added code to correctly parse range string for /proc file speech
4007 + parameters which use a range of chars.
4008 + Added a priority of KERN_ALERT to printk statements that need to be
4009 + displayed on user's console regardless.
4010 + Enhanced warning output if user attempts to assign a value out of range
4011 + to a /proc variable.
4012 + (Jim Danley)
4013 +
4014 +2000-12-31 Sunday 13:20 kirk
4015 +
4016 + Rewrote checkclean and changed semee to semi in the character
4017 + array. (Kirk)
4018 +
4019 +2000-12-31 Sunday 12:12 kirk
4020 +
4021 + Fixed syntax errors in speakup_txprt.c and modified the install
4022 + script. (Kirk)
4023 +
4024 +2000-12-31 Sunday 11:43 kirk
4025 +
4026 + Fixing typo's in the documentation files. (Kirk)
4027 +
4028 +2000-12-30 Saturday 23:33 kirk
4029 +
4030 + Rewrote install and INSTALLATION for a different installing
4031 + design. (Kirk)
4032 +
4033 +2000-12-30 Saturday 17:03 kirk
4034 +
4035 + We are officially version v-0.10. (Kirk)
4036 +
4037 +2000-12-30 Saturday 16:58 kirk
4038 +
4039 + Modified the installation file and created an install script. (Kirk)
4040 +
4041 +2000-12-30 Saturday 15:13 kirk
4042 +
4043 + Fixed a syntax problem with speakup_audptr.c. (Kirk)
4044 +
4045 +2000-12-30 Saturday 14:58 kirk
4046 +
4047 + Placed a length limit on reading of version number in
4048 + speakup_audptr.c. (Kirk)
4049 +
4050 +2000-12-30 Saturday 13:12 kirk
4051 +
4052 + Adding file changes for v22. (Kirk)
4053 +
4054 +2000-12-30 Saturday 13:10 kirk
4055 +
4056 + Removing files related to version changes. (Kirk)
4057 +
4058 +2000-12-30 Saturday 13:00 kirk
4059 +
4060 + Changed structure of Documentation/speakup and related files to remove
4061 + references to speakup version for ease in updating documentation.
4062 + (Kirk)
4063 +
4064 +2000-12-29 Friday 14:00 kirk
4065 +
4066 + echo "" > /proc/speakup/characters now resets to defaults for consistency.
4067 + wrote script to reset all speakup defaults
4068 + added key_echo toggle to speakup vars controllable by user
4069 + via /proc/speakup/key_echo
4070 + key_echo is not 100% -- keypad slash talks even if key_echo == 0
4071 + (Jim Danley)
4072 +
4073 +2000-12-24 Sunday 16:46 kirk
4074 +
4075 + finished ability to write to /proc files, changed some default char descs, added "direct" to /proc
4076 +
4077 +2000-12-22 Friday 15:04 kirk
4078 +
4079 + These are the cursoring fixes for the 2.4.0-testxx kernels. They also
4080 + include the requested changes I was experimenting with by Alan Cox in
4081 + preparation for kernel source tree inclusion. (Kirk)
4082 +
4083 +2000-12-22 Friday 13:54 kirk
4084 +
4085 + Fixed up some of the cursoring issues and have started making the
4086 + changes requested by Alan Cox in preparation for kernel source tree
4087 + inclusion. (Kirk)
4088 +
4089 +2000-12-21 Thursday 08:56 kirk
4090 +
4091 + rewrite of speakup_characters_write_proc() to handle fragmented buffers when called by dd, cp, or cat in kernel 2.4 (Jim Danley)
4092 +
4093 +2000-12-20 Wednesday 12:17 kirk
4094 +
4095 + Cleaned up some warnings. (Kirk)
4096 +
4097 +2000-12-20 Wednesday 11:32 kirk
4098 +
4099 + Fixed toggle for synth timeout to set it off when waking up the
4100 + synth. (Kirk)
4101 +
4102 +2000-12-19 Tuesday 19:31 kirk
4103 +
4104 + This is atest fix to see if I have helped eliminate the synth bleed
4105 + through problem with all of the synths. (Kirk)
4106 +
4107 +2000-12-19 Tuesday 16:29 kirk
4108 +
4109 + quick change to speakup_audptr.c to fix synth_ver typo for kernel 2.2.18 (Jim Danley)
4110 +
4111 +2000-12-19 Tuesday 15:35 kirk
4112 +
4113 + Checking in the 2.2.18 fixes for the synth hanging problems. (Kirk)
4114 +
4115 +2000-12-19 Tuesday 15:10 kirk
4116 +
4117 + Finally fixed the synth hanging problem on synth turn off. (Kirk)
4118 +
4119 +2000-12-18 Monday 14:44 kirk
4120 +
4121 + Just updating BUGS to put the backspace problem to bed. (Kirk)
4122 +
4123 +2000-12-18 Monday 14:40 kirk
4124 +
4125 + Checking in the backspace fix for 2.4.0-test11. Yeah! Finally
4126 + fixed. (Kirk)
4127 +
4128 +2000-12-18 Monday 14:14 kirk
4129 +
4130 + Fixed the backspace bug at last! In 2.2.18 so far. (Kirk)
4131 +
4132 +2000-12-18 Monday 10:03 kirk
4133 +
4134 + Checking in Jim Danleys changes again. When will I learn to checkout
4135 + before checking in?? (Kirk)
4136 +
4137 +2000-12-15 Friday 13:50 kirk
4138 +
4139 + Checking first draft of menubox.c and checklist.c for
4140 + v-2.4.0-testxx. (Kirk)
4141 +
4142 +2000-12-15 Friday 13:48 kirk
4143 +
4144 + Taking first diff of menubox.c and checklist.c for v2.4.0-test11 for
4145 + make menuconfig cursoring. (Kirk)
4146 +
4147 +2000-12-15 Friday 13:17 kirk
4148 +
4149 + Checking in the new diffs of menubox.c and checklist.c for the first
4150 + time. (Kirk)
4151 +
4152 +2000-12-15 Friday 13:14 kirk
4153 +
4154 + Taking first diff of the make menuconfig patches from checklist.c and
4155 + menubox.c. (Kirk)
4156 +
4157 +2000-12-12 Tuesday 18:56 kirk
4158 +
4159 + Fixed a spelling error added to Todo list and fix speakup.c to not
4160 + need the is_alive() function. (Kirk)
4161 +
4162 +2000-12-12 Tuesday 15:21 kirk
4163 +
4164 + Fixed speakup to patch correctly with 2.2.18. Unfortunately it won't
4165 + work with kernels less than 2.2.18 anymore. It was totally agreed
4166 + upon by the folks on the reflector. It's not my fault mom! (Kirk)
4167 +
4168 +2000-12-12 Tuesday 10:41 kirk
4169 +
4170 + Fix a problem with a conflict in cvsversion.h. (Kirk)
4171 +
4172 +2000-12-11 Monday 20:40 kirk
4173 +
4174 + Attempt to fix the Audapter driver by limiting how long it can stay in
4175 + kernel space. (Kirk)
4176 +
4177 +2000-12-11 Monday 17:37 kirk
4178 +
4179 + Made a slight fix to spk_reset() and moved it's call up a bit in
4180 + handle_scancodes(); (Kirk)
4181 +
4182 +2000-12-11 Monday 16:28 kirk
4183 +
4184 + Just checking in the cvs adds for the new diff-v24 patch files. (Kirk)
4185 +
4186 +2000-12-11 Monday 16:25 kirk
4187 +
4188 + Checking in the 2.4.0 kernel patches for Jim Danley's /proc file
4189 + system additions. (Kirk)
4190 +
4191 +2000-12-11 Monday 14:34 kirk
4192 +
4193 + Checking in added proc files. (Kirk)
4194 +
4195 +2000-12-11 Monday 14:31 kirk
4196 +
4197 + Added two new files to v22 kernel for /proc file system,
4198 + linux/include/linux/proc_fs.h and linux/fs/proc/root.c. (Kirk)
4199 +
4200 +2000-12-11 Monday 12:59 kirk
4201 +
4202 + Checking in Jim Danleys /proc file system additions to speakup. (Kirk)
4203 +
4204 +2000-12-09 Saturday 19:14 kirk
4205 +
4206 + Changed spk_control to test for zero specifically on say_control. (Kirk)
4207 +
4208 +2000-12-09 Saturday 18:29 kirk
4209 +
4210 + Changed spk_control to say capslock scroll_lock and num_lock even when
4211 + say_control isn't on. (Kirk)
4212 +
4213 +2000-12-08 Friday 16:21 kirk
4214 +
4215 + Removing the linux version 2.3.xx stuff again. (Kirk)
4216 +
4217 +2000-12-08 Friday 15:40 kirk
4218 +
4219 + patched Configure.help by hand from v2.4 and committing. (Kirk)
4220 +
4221 +2000-12-08 Friday 14:47 kirk
4222 +
4223 + Checked in diff-v22/^usr^src^linux^Documentation^Configure.help.patch
4224 + which seems to have been missed as well as the init/main.c stuff.
4225 + This is really weird (Kirk)
4226 +
4227 +2000-12-08 Friday 14:40 kirk
4228 +
4229 + Added the -d flag to updat in checkout to see if we get cleanup
4230 + improvement. (Kirk)
4231 +
4232 +2000-12-08 Friday 13:13 kirk
4233 +
4234 + Removing patchlist and the linux 2.3.xx support. (Kirk)
4235 +
4236 +2000-12-08 Friday 13:07 kirk
4237 +
4238 + Edited check.orig and fix.orig to use the new patchlist filename
4239 + convention. (Kirk)
4240 +
4241 +2000-12-07 Thursday 22:17 kirk
4242 +
4243 + Just checking in the new files, three to be exact. (kirk)
4244 +
4245 +2000-12-07 Thursday 22:14 kirk
4246 +
4247 + rewrote checkin, checkout and moved patchlist to patchlist-v22 and
4248 + patchlist-v24 because we were missing the linux/init/main.c patches
4249 + and we didn't have a way to handle different files for different
4250 + versions. (kirk)
4251 +
4252 +2000-12-06 Wednesday 19:06 kirk
4253 +
4254 + Added support for the codepage 437 extended character set. (Jim and Kirk)
4255 +
4256 +2000-11-29 Wednesday 11:30 kirk
4257 +
4258 + Fixed the 2.2.xx kernels to have the almost correct backspace code.
4259 + Also move the new character output in do_con_write() to lf(). I've
4260 + experimentally put a 'space' in to see if that helps the wrapping
4261 + during console output. (Kirk)
4262 +
4263 +2000-11-27 Monday 15:38 kirk
4264 +
4265 + Fix or partial to the backspace problem at least on 2.4.0-test11. I
4266 + probably broke cursoring.
4267 +
4268 +2000-11-22 Wednesday 20:12 kirk
4269 +
4270 + Fixed a stupid unused variable by deleting it.
4271 + Fixed speakup_file_write to send raw user data to the synth. (Thanx Matt)
4272 +
4273 +2000-11-21 Tuesday 15:10 kirk
4274 +
4275 + Adjusted console.c patch for test11 of 2.4.0.
4276 +
4277 +2000-11-16 Thursday 11:42 kirk
4278 +
4279 + Modified all drivers to test for no port when clearing the holding
4280 + register.
4281 +
4282 +2000-11-16 Thursday 07:56 kirk
4283 +
4284 + Fixed console.c patch to compensate for the line movement. in Test10.
4285 +
4286 +2000-10-24 Tuesday 11:10 kirk
4287 +
4288 + Fix to the LiteTalk driver to get around the hanging when the synth isn't
4289 + on.
4290 +
4291 +2000-10-23 Monday 12:15 kirk
4292 +
4293 + Fixed dtlk driver so non-valid ports are released correctly in
4294 + dev_probe. Also added externs for synth_request_region and
4295 + release. (Kirk)
4296 +
4297 +2000-08-28 Monday 13:29 kirk
4298 +
4299 + Fixed Makefile for 2.4.0-test7 in drivers/char.
4300 +
4301 +2000-08-17 Thursday 16:21 kirk
4302 +
4303 + Birth of cursoring for version 2.4.xx kernels.
4304 +
4305 +2000-08-17 Thursday 12:06 kirk
4306 +
4307 + Okay, I proclaim the birth of cursoring, at least in the 2.2.x kernels. Next we'll try the 2.3/4.x kernels.
4308 +
4309 +2000-08-17 Thursday 11:01 kirk
4310 +
4311 + Fixed CFLAGS to EXTRA_CFLAGS in Makefile to get speakup to compile
4312 + again. The break took place between 2.4.0-test4 and test5.
4313 +
4314 +2000-07-20 Thursday 10:43 kirk
4315 +
4316 + Changed krealloc to just use kfree instead of kfree_s. Kirk
4317 +
4318 +2000-07-03 Monday 14:19 kirk
4319 +
4320 + Fixed one line in keyboard.c and changes to cvs
4321 +
4322 +2000-06-29 Thursday 16:32 andy
4323 +
4324 + Fixed checkin / cvsversion.h
4325 +
4326 +2000-06-29 Thursday 16:26 andy
4327 +
4328 + v2.2.x keyboard.c + speakup_kill() fix
4329 +
4330 +2000-06-29 Thursday 16:00 andy
4331 +
4332 + v2.2 addition of speakup_kill() function (bound to sysreq key)
4333 +
4334 +2000-06-29 Thursday 15:56 andy
4335 +
4336 + v2.4 addition of speakup_kill() function (bound to sysrq key)
4337 +
4338 +2000-06-26 Monday 16:19 andy
4339 +
4340 + Added (very minimal) read() and ioctl() functions for /dev/synth.
4341 +
4342 +2000-06-23 Friday 11:16 andy
4343 +
4344 + Fixed miscdevice.h bad patch
4345 +
4346 +2000-06-22 Thursday 15:47 andy
4347 +
4348 + Fixed defkeymap.c not being built properly.
4349 +
4350 +2000-06-22 Thursday 15:17 andy
4351 +
4352 + Fixed v2.2.x zero-byte patch bug
4353 +
4354 +2000-06-22 Thursday 14:48 andy
4355 +
4356 + Checkout prunes now.
4357 +
4358 +2000-06-22 Thursday 12:48 andy
4359 +
4360 + Forgot to kill the old patch files... cleaning up.
4361 +
4362 +2000-06-22 Thursday 12:45 andy
4363 +
4364 + Changed checkin/checkout philosophy...
4365 + v2.2.x, v2.3.x, v2.4.x trees are all in this release
4366 +
4367 +2000-06-21 Wednesday 16:27 andy
4368 +
4369 + More checkin/checkout fixes.
4370 +
4371 +2000-06-21 Wednesday 16:19 andy
4372 +
4373 + Changed checkin/checkout philosophy, so 0-byte files aren't such a headache
4374 +
4375 +2000-06-21 Wednesday 14:13 andy
4376 +
4377 + New checkout script, fixing non-updating of previously patched files.
4378 +
4379 +2000-06-20 Tuesday 15:14 andy
4380 +
4381 + /dev/synth (MAJOR 10, MINOR 25) fix for v2.2.x tree
4382 +
4383 +2000-06-19 Monday 16:02 andy
4384 +
4385 + checkin script that fixes busted/nonexstant .orig files
4386 +
4387 +2000-06-19 Monday 13:08 andy
4388 +
4389 + cvsversion.h fix
4390 + speakup_decext.c fix for v2.2.x (no such member 'list' problem)
4391 +
4392 +2000-06-14 Wednesday 16:00 andy
4393 +
4394 + TODO update
4395 +
4396 +2000-06-14 Wednesday 15:25 andy
4397 +
4398 + Fixed:
4399 + checkin 'older than' bug
4400 + disabled <caps|num|scroll>-lock speech when spk_shut_up is set
4401 +
4402 +2000-06-14 Wednesday 13:15 andy
4403 +
4404 + Added a cvsversion.h and cvs date tracking into speakup.
4405 +
4406 +2000-06-14 Wednesday 12:44 andy
4407 +
4408 + Oops. Forgot these.
4409 +
4410 +2000-06-14 Wednesday 08:06 kirk
4411 +
4412 + Put SYNTH_MINOR #ifdefs in miscdevices.h for v2.2.x kernels.
4413 + Updated Todo file and temporarily incremented version number of speakup. (Kirk)
4414 +
4415 +2000-06-13 Tuesday 16:30 andy
4416 +
4417 + v2.4.x spanky checkin
4418 +
4419 +2000-06-13 Tuesday 15:36 andy
4420 +
4421 + v2.4.x checkin for /dev/synth stuff.
4422 +
4423 +2000-06-13 Tuesday 15:28 andy
4424 +
4425 + typo fix.
4426 +
4427 +2000-06-13 Tuesday 15:23 andy
4428 +
4429 + v2.2.x checkin for the new /dev/synth stuff.
4430 +
4431 +2000-06-13 Tuesday 15:17 andy
4432 +
4433 + Added a /dev/synth fops to speakup (MAJOR 10, MINOR 25), so that users can
4434 + use the synth without speakup (but why?). :)
4435 +
4436 + Also fixed a couple of issues with the check* scripts, and added a -p option
4437 + to checkin to just create patches.
4438 +
4439 +2000-06-12 Monday 14:36 andy
4440 +
4441 + Had a 0-byte defkeymap.c file...
4442 +
4443 +2000-06-12 Monday 14:26 andy
4444 +
4445 + Fixed the screwed up v2.2.x patch files, and added a fixorig script which
4446 + copies .orig files from /usr/src/linux.orig as stated in the
4447 + patchlist file
4448 +
4449 +2000-06-09 Friday 16:03 andy
4450 +
4451 + TODO change
4452 +
4453 +2000-06-09 Friday 14:21 andy
4454 +
4455 + added checkclean script
4456 +
4457 +2000-06-09 Friday 12:46 andy
4458 +
4459 + updates to the v2.2.x tree.
4460 +
4461 +2000-06-08 Thursday 14:59 andy
4462 +
4463 + Fixed v2.2.x diffs, and made a few changes to checkin/checkout/checkorig..
4464 +
4465 + Namely,
4466 + checkin:
4467 + fixed bailout on CVSROOT set
4468 + diffs only for new or files that have changed since last patch
4469 + cvs adds directories properly
4470 + checks exit values of cvs commands
4471 + checkout/checkorig:
4472 + zeroes out .orig files that should exist and should be zeroed
4473 + patchlist:
4474 + now specifies patchfiles in the form:
4475 + <0|1>,<file>
4476 + where the first number is a flag to copy the file to create
4477 + a <file>.orig, or create a zero-byte file (0) for <file>.orig
4478 +
4479 +2000-06-07 Wednesday 15:52 kirk
4480 +
4481 + [no log message]
4482 +
4483 +2000-06-07 Wednesday 14:15 andy
4484 +
4485 + checkin mod
4486 +
4487 +2000-06-07 Wednesday 14:14 andy
4488 +
4489 + date test added to ./checkin
4490 +
4491 +2000-06-07 Wednesday 14:11 andy
4492 +
4493 + test
4494 +
4495 +2000-06-07 Wednesday 14:09 andy
4496 +
4497 + test patch
4498 +
4499 +2000-06-07 Wednesday 13:02 kirk
4500 +
4501 + test of checkin on spanky
4502 +
4503 +2000-06-07 Wednesday 12:32 andy
4504 +
4505 + more checkin/checkout updates
4506 +
4507 +2000-06-07 Wednesday 12:19 andy
4508 +
4509 + quick print fix for checkin script
4510 +
4511 +2000-06-07 Wednesday 12:17 andy
4512 +
4513 + Fixed new tree commit/checkout/update bugs with checkin and checkout
4514 +
4515 +2000-06-07 Wednesday 12:10 kirk
4516 +
4517 + v24 tree added to cvs
4518 +
4519 +2000-06-07 Wednesday 11:30 andy
4520 +
4521 + logic error in ./checkin
4522 +
4523 + New diff-vXX directories are added now... just cp -a diff-vYY div-vXX, and
4524 + kill the CVS/ dir.
4525 +
4526 +2000-06-05 Monday 15:54 andy
4527 +
4528 + Fixed ./checkin to 'cvs add' created patch directories.
4529 +
4530 +2000-06-05 Monday 15:39 andy
4531 +
4532 + Added synth_release_region, and seperated out a speakup_drvcommon.c file,
4533 + which contains common driver stuff -- current just synth_release_region(),
4534 + and synth_request_region().
4535 +
4536 +2000-06-02 Friday 15:32 andy
4537 +
4538 + Final test??
4539 +
4540 +2000-06-02 Friday 14:11 andy
4541 +
4542 + bleah
4543 +
4544 +2000-06-02 Friday 13:58 andy
4545 +
4546 + another test.. *sigh*
4547 +
4548 +2000-06-02 Friday 13:57 andy
4549 +
4550 + foo
4551 +
4552 +2000-06-02 Friday 13:49 andy
4553 +
4554 + test 342.7
4555 +
4556 +2000-06-02 Friday 12:56 andy
4557 +
4558 + wrong checkout script.
4559 +
4560 +2000-06-02 Friday 12:51 andy
4561 +
4562 + Yet another test.
4563 +
4564 +2000-06-01 Thursday 15:45 andy
4565 +
4566 + test #2
4567 +
4568 +2000-06-01 Thursday 15:40 andy
4569 +
4570 + ./checkin script test
4571 +
4572 +2000-06-01 Thursday 15:38 andy
4573 +
4574 + Initial version of speakup in CVS.
4575 +
4576 +2000-06-01 Thursday 15:38 andy
4577 +
4578 + Initial revision
4579 +
4580 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Changes linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Changes
4581 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Changes 1969-12-31 16:00:00.000000000 -0800
4582 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Changes 2000-06-01 12:38:40.000000000 -0700
4583 @@ -0,0 +1,221 @@
4584 +version 0.09
4585 +
4586 +May.24.2000, fixed piles o' bugs, and patched speakup forward to kernel
4587 +2.3.99-pre8 (at least). (Andy)
4588 +
4589 +sometime before May 24th, 2000, wrote several new drivers. (Kirk)
4590 +
4591 +version 0.08
4592 +
4593 +18/11/1999, Finally nailed down and fixed a bug with the serial
4594 +drivers filling their buffer and causing the kernel to hang. Of
4595 +course, once again I've totally rewritten the serial drivers. (Kirk)
4596 +
4597 +10/11/1999, Fixed the end of buffer water mark so the kernel wouldn't
4598 +over run the buffer when a process was put to sleep but there was
4599 +already enough chars in the loop to over write end of buffer and trash
4600 +the system. (Kirk)
4601 +
4602 +29/10/1999, Added code to the drivers to test the kernel version, so
4603 +we could include the proper wait_queue tags for 2.2.x vs 2.3.x. (Kirk)
4604 +
4605 +27/10/1999, fix small bug which made the reading cursor not get stored
4606 +when switching between allocated consoles. (Kirk)
4607 +
4608 +08/10/1999, Totally rewrote all drivers to follow fixed format. No
4609 +more will we have drivers which don't look anything like the other
4610 +drivers. (Kirk)
4611 +
4612 +15/09/1999, Rewrote synth drivers and kernel to support command line
4613 +loading of synth ports at boot time. (Andy)
4614 +
4615 +14/09/1999, Rewrote portions of the speakup_ltlk.c driver to fix a
4616 +problem with the DoubleTalk LT losing the first character sent to it
4617 +after a null character. Seems to be a problem only with the LT, not
4618 +being able to deal with characters immediately following NULLs.
4619 +(Kirk)
4620 +
4621 +10/08/1999, Completed writing absolute go to function for speakup
4622 +reading cursor. (Andy)
4623 +
4624 +04/08/1999, Completed routines for speaking punctuation and
4625 +non-character assigned keys, such as shift/control/alt. (Andy)
4626 +
4627 +02/08/1999, Added routines to kernel.c and speakup to allow capturing
4628 +of keystrokes when they're hit. This allows us to speakup characters
4629 +which are typed for cursor control detection and pronouncing chars
4630 +which are not in the allowable punctuation set. (Andy)
4631 +
4632 +23/07/1999, Added routine speakup_check() to help track cursor
4633 +movement for cursor position pronunciation. It isn't working yet.
4634 +(Kirk)
4635 +
4636 +16/07/1999, Rewrote serial probe in ltlk driver to deal with autobaud
4637 +versions of the LiteTalk and DoubleTalk LT. (Andy)
4638 +
4639 +05/07/1999, Fixed a problem with characters like tick and dash which
4640 +don't get passed through to the synth even though they don't get
4641 +spoken. They are needed to get the synth to handle some words
4642 +correctly. (Kirk)
4643 +
4644 +25/06/1999, Fixed a bug I missed which caused speakup to not read the
4645 +last character on a line with say_curr_line(). (Kirk)
4646 +
4647 +25/06/1999, Fixed a bug which caused speakup to miss the end of
4648 +wrapped around words to the next line. (Kirk)
4649 +
4650 +
4651 +version 0.07
4652 +
4653 +18/06/1999, Rewrote the Speakout driver to make it more inline with
4654 +the current driver design. This driver hasn't been tested yet. An
4655 +exercise for John. (Andy)
4656 +
4657 +17/06/1999, Finished rewriting and testing the new version of load_spk
4658 +utilities to handle multiple synths. This intailed redesigning the
4659 +entire way synth control protocals are stored and passed back and
4660 +forth between configuration files and the ioctl() handler. (Andy)
4661 +
4662 +31/05/1999, Finished writing the driver for the Accent SA and
4663 +Transport external synthesizers. (Kirk)
4664 +
4665 +20/05/1999, Rewrote portions of the DTLK and LTLK drivers to fix slow
4666 +responce and choppiness of the output with say_curr_line and
4667 +say_screen. (Kirk)
4668 +
4669 +18/05/1999, Finished the make config changes to make it easier to
4670 +include various synths before compiling the kernel. This included a
4671 +lot of changes to make files and config.in files as well as the
4672 +config.hlp and maintainers documents. We have moved speakup to its
4673 +own subdirectory under linux/drivers/char and will place all future
4674 +files in there. (Kirk)
4675 +
4676 +17/05/1999, Placed newline characters at the end of all strings in
4677 +speakup.c to facilitate proper output with the Speakout driver. (Kirk)
4678 +
4679 +13/05/1999, Finished writing and testing the ACNTPC driver for the
4680 +Accent PC synthesizer. (Kirk)
4681 +
4682 +11/05/1999, Finished writing and testing the LTLK driver for the
4683 +LightTalk synthesizer. (Andy)
4684 +
4685 +version 0.06
4686 +
4687 +07/04/1999, Hunted down and squashed a bug which caused the system to
4688 +lock up when X11 allocated another console. Now, you want to talk
4689 +about weird bugs? (Kirk and Andy)
4690 +
4691 +05/04/1999, Fixed a small bug where the reading cursor structure was
4692 +floating when switching from console to console. (Kirk)
4693 +
4694 +05/03/1999, Finally got repeat function to work correctly. It didn't
4695 +want to give the proper repeat value on say_word and say_line. (Kirk)
4696 +
4697 +4/27/1999, Changed the two shut up functions to sync the reading
4698 +cursor with the console cursor. (Kirk)
4699 +
4700 +4/25/1999, Added a say hex and ASCII value function. (Brian)
4701 +
4702 +4/22/1999, Added our own punctuation handling. This will give us
4703 +consistancy across various synthesizers. It also allows us custom
4704 +punctuation sets. We have four levels currently, NONE, SOME, MOST,
4705 +ALL. The some and most can be user defined, this will eventually
4706 +become a configuration option with loadspk. (Kirk)
4707 +
4708 +4/19/1999, Added a repeat count function so that speakup doesn't read
4709 +all of a repeating sequence of characters like dashes or equal signs.
4710 +(Kirk)
4711 +
4712 +4/15/1999, Rewrote the synth driver to be smaller and utilize
4713 +buffering all the time. This entailed a total rewrite of the driver.
4714 +It works much better than the older style driver. We won't try to be
4715 +compatible with external drivers anymore. That caused us much grief!
4716 +(Kirk)
4717 +
4718 +Version 0.05
4719 +
4720 +03/01/1999, Modified the kernel code and wrote a number of functions
4721 +for loading and dumping speakups configuration settings. The two
4722 +client programs are loadspk and dumpspk, see the accompanying README
4723 +and INSTALLATION files for details. (Andy)
4724 +
4725 +Version 0.04
4726 +
4727 +12/23/1998, Added park reading cursor function. It toggles on and off
4728 +like the speakup off function. (Kirk)
4729 +
4730 +12/10/1998, added code to announce cursor function calls. This is to
4731 +help me try and figure out how and what to say when. (Kirk)
4732 +
4733 +12/08/1998, Added a check in say character to beep when the colour
4734 +attribute changes. (Kirk)
4735 +
4736 +12/08/1998, rewrote say previous and next word to wrap around at the
4737 +end of lines and beep when going from line to line. (Kirk)
4738 +
4739 +12/07/1998, Fixed a little bug which read the bottom half of a
4740 +character which was higher than 0x7f. It makes make menuconfig work a lot
4741 +nicer. (Kirk)
4742 +
4743 +12/07/1998, Added some new functions to read from reading cursor to
4744 +bottom of screen, read from top of screen, read from left edge of
4745 +screen to reading cursor and read from reading cursor to right edge of
4746 +screen. These are basically stub functions which call two general
4747 +purpose functions say_screen_from_to() and say_line_from_to(). (Kirk)
4748 +
4749 +version 0.03
4750 +
4751 +11/19/1998, Added say phonetic character function. I have temporarily
4752 +bound it to InsKeyPad-2. (Kirk)
4753 +
4754 +11/19/1998, Added pronunciation of caps, num and scroll lock on and
4755 +off in keyboard.c. (Andy)
4756 +
4757 +11/18/1998, Fixed the bug which made speakup say the entire current
4758 +word even if it wrapped over the end of line. I also made
4759 +say_curr_word read the word to the right if you have your reading
4760 +cursor on the space just to the left of the word. Makes it a little
4761 +nicer for reading links in lynx. (Kirk)
4762 +
4763 +version 0.02
4764 +
4765 +11/11/1998, fixed a little problem with the attr byte not being
4766 +correct when speakup_update() was called. (Kirk)
4767 +
4768 +11/11/1998, fixed consoles which are not the foreground console
4769 +speaking while they're updating their screens. (Kirk)
4770 +
4771 +11/11/1998, put in the GPL stuff and revised the documentation. (Kirk)
4772 +
4773 +11/10/1998, Rewrote the say_screen function to be super faster than it
4774 +was. (Kirk)
4775 +
4776 +11/10/1998, started to scratch in the soft parked system for reviewing
4777 +around the screen. This is mostly to prevent the reading cursor from
4778 +moving whenever the screen clock or something gets updated. (Kirk)
4779 +
4780 +11/09/1998, rewrote sections of dtlk.c to do away with writing out
4781 +inside cli()/sti() statements. Now we time out after 4 usec and
4782 +assume we missed the bit drop on the rdy bit because of an interrupt.
4783 +Seems to work pretty well except the damn thing reads garbage until
4784 +the bogomips line. Sure is more responsive normally though. (Kirk)
4785 +
4786 +11/05/1998, got the total shut_up routine to work correctly. In
4787 +vc_allocate() we were allocating a new structure every time it was
4788 +called. It was supposed to be everytime a new console was
4789 +successfully allocated. (Kirk)
4790 +
4791 +11/04/1998, Wrote colour attribute routine say_attrib(). I have
4792 +temporarily assigned it to the keypad-period. (Kirk)
4793 +
4794 +11/02/1998, vmalloc() didn't work, to early in the boot process. So
4795 +took our 8192 byte buffer directly by using kmem_start. (Kirk)
4796 +
4797 +10/29/1998, Increased dtlk buffer to 8192 bytes by moving to vmalloc()
4798 +and vfree() instead of get_free_page()/free_page(). We have moved
4799 +from one PAGE_SIZE to two. (kirk)
4800 +
4801 +10/29/1998, changed spk_shut_up to use bit 8 for total shut up instead
4802 +of a seperate variable. Works independantly for each console
4803 +now. (kirk)
4804 +
4805 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Config.in linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Config.in
4806 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Config.in 1969-12-31 16:00:00.000000000 -0800
4807 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Config.in 2003-12-10 07:29:56.000000000 -0800
4808 @@ -0,0 +1,26 @@
4809 +tristate 'Speakup console speech' CONFIG_SPEAKUP
4810 +if [ "$CONFIG_SPEAKUP" != "n" ]; then
4811 + comment 'Type "y" for each synthesizer you want built into the kernel.'
4812 + dep_tristate "Accent SA, acntsa" CONFIG_SPEAKUP_ACNTSA $CONFIG_SPEAKUP
4813 + dep_tristate "Accent PC, acntpc" CONFIG_SPEAKUP_ACNTPC $CONFIG_SPEAKUP
4814 + dep_tristate "Apollo, apollo" CONFIG_SPEAKUP_APOLLO $CONFIG_SPEAKUP
4815 + dep_tristate "Audapter, audptr" CONFIG_SPEAKUP_AUDPTR $CONFIG_SPEAKUP
4816 + dep_tristate "Braille 'n' Speak, bns" CONFIG_SPEAKUP_BNS $CONFIG_SPEAKUP
4817 + dep_tristate "DECtalk Express, dectlk" CONFIG_SPEAKUP_DECTLK $CONFIG_SPEAKUP
4818 + dep_tristate "DECtalk External (old), decext" CONFIG_SPEAKUP_DECEXT $CONFIG_SPEAKUP
4819 + dep_tristate "DECtalk PC (big ISA card), decpc" CONFIG_SPEAKUP_DECPC $CONFIG_SPEAKUP
4820 + if [ "$CONFIG_SPEAKUP_DECPC" = "y" ] ;then
4821 + comment 'warning: decpc can only be built as a module'
4822 + fi
4823 + comment 'In order to use this you will need'
4824 + comment 'the dtload program and DECPC software files '
4825 + comment 'Read the accompanying DECPC documentation for more details'
4826 + dep_tristate "DoubleTalk PC, dtlk" CONFIG_SPEAKUP_DTLK $CONFIG_SPEAKUP
4827 + dep_tristate "Keynote Gold PC, keypc" CONFIG_SPEAKUP_KEYPC $CONFIG_SPEAKUP
4828 + dep_tristate "DoubleTalk LT or LiteTalk, ltlk" CONFIG_SPEAKUP_LTLK $CONFIG_SPEAKUP
4829 + dep_tristate "Software synthesizers /dev/sftsyn, sftsyn" CONFIG_SPEAKUP_SFTSYN $CONFIG_SPEAKUP
4830 + dep_tristate "Speak Out, spkout" CONFIG_SPEAKUP_SPKOUT $CONFIG_SPEAKUP
4831 + dep_tristate "Transport, txprt" CONFIG_SPEAKUP_TXPRT $CONFIG_SPEAKUP
4832 + comment 'Enter the three to six character synth string from above or none.'
4833 + string "Default synthesizer for Speakup" CONFIG_SPEAKUP_DEFAULT "none"
4834 +fi
4835 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Kconfig linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Kconfig
4836 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Kconfig 1969-12-31 16:00:00.000000000 -0800
4837 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Kconfig 2003-12-10 07:29:56.000000000 -0800
4838 @@ -0,0 +1,210 @@
4839 +menu "Speakup console speech"
4840 +config SPEAKUP
4841 + tristate "Build speakup console speech"
4842 + ---help---
4843 +
4844 + This is the Speakup screen reader. Think of it as a
4845 + video console for blind people. If built in to the
4846 + kernel, it can speak evrything on the text console from
4847 + boot up to shutdown. For more information on Speakup,
4848 + point your browser at http://www.linux-speakup.org/.
4849 + There is also a mailing list at the above url that you
4850 + can subscribe to.
4851 +
4852 + Supported synthesizers are accent sa, accent pc, appollo
4853 + II., Auddapter, Braille 'n Speak, Dectalk external
4854 + (old), Dectalk PC (full length isa board), Dectalk
4855 + express, Doubletalk, Doubletalk LT or Litetalk,
4856 + Keynote
4857 + Gold internal PC, software synthesizers, Speakout, and transport.
4858 +
4859 + Speakup can either be built in or compiled as a module
4860 + by answering y or m. If you answer y here, then you
4861 + must answer either y or m to at least one of the
4862 + synthesizer drivers below. If you answer m here, then
4863 + the synthesizer drivers below can only be built as
4864 + modules.
4865 +
4866 + These drivers are not standalone drivers, but must be
4867 + used in conjunction with Speakup. Think of them as
4868 + video cards for blind people.
4869 +
4870 +
4871 + The Dectalk pc driver can only be built as a module, and
4872 + requires software to be pre-loaded on to the card before
4873 + the module can be loaded. See the decpc choice below
4874 + for more details.
4875 +
4876 + If you are not a blind person, or don't have access to
4877 + one of the listed synthesizers, you should say n.
4878 +
4879 +config SPEAKUP_ACNTSA
4880 + depends on SPEAKUP
4881 + tristate "Accent SA, acntsa"
4882 + ---help---
4883 +
4884 + This is the Speakup driver for the accent sa
4885 + synthesizer. You can say y to build it into the kernel,
4886 + or m to build it as a module. See the configuration
4887 + help on the Speakup choice above for more info.
4888 +
4889 +config SPEAKUP_ACNTPC
4890 + depends on SPEAKUP
4891 + tristate "Accent PC, acntpc"
4892 + ---help---
4893 +
4894 + This is the Speakup driver for the accent pc
4895 + synthesizer. You can say y to build it into the kernel,
4896 + or m to build it as a module. See the configuration
4897 + help on the Speakup choice above for more info.
4898 +
4899 +config SPEAKUP_APOLLO
4900 + depends on SPEAKUP
4901 + tristate "Apollo, apollo"
4902 + ---help---
4903 +
4904 + This is the Speakup driver for the Apollo II
4905 + synthesizer. You can say y to build it into the kernel,
4906 + or m to build it as a module. See the configuration
4907 + help on the Speakup choice above for more info.
4908 +
4909 +config SPEAKUP_AUDPTR
4910 + depends on SPEAKUP
4911 + tristate "Audapter, audptr"
4912 + ---help---
4913 +
4914 + This is the Speakup driver for the Audapter synthesizer.
4915 + You can say y to build it into the kernel, or m to
4916 + build it as a module. See the configuration help on the
4917 + Speakup choice above for more info.
4918 +
4919 +config SPEAKUP_BNS
4920 + depends on SPEAKUP
4921 + tristate "Braille 'n' Speak, bns"
4922 + ---help---
4923 +
4924 + This is the Speakup driver for the Braille 'n' Speak
4925 + synthesizer. You can say y to build it into the kernel,
4926 + or m to build it as a module. See the configuration
4927 + help on the Speakup choice above for more info.
4928 +
4929 +config SPEAKUP_DECTLK
4930 + depends on SPEAKUP
4931 + tristate "DECtalk Express, dectlk"
4932 + ---help---
4933 +
4934 + This is the Speakup driver for the DecTalk Express
4935 + synthesizer. You can say y to build it into the kernel,
4936 + or m to build it as a module. See the configuration
4937 + help on the Speakup choice above for more info.
4938 +
4939 +config SPEAKUP_DECEXT
4940 + depends on SPEAKUP
4941 + tristate "DECtalk External (old), decext"
4942 + ---help---
4943 +
4944 + This is the Speakup driver for the DecTalk External
4945 + (old) synthesizer. You can say y to build it into the
4946 + kernel, or m to build it as a module. See the
4947 + configuration help on the Speakup choice above for more
4948 + info.
4949 +
4950 +config SPEAKUP_DECPC
4951 + depends on SPEAKUP
4952 + tristate "DECtalk PC (big ISA card), decpc"
4953 + ---help---
4954 +
4955 + This is the Speakup driver for the DecTalk PC (full
4956 + length ISA) synthesizer. You can say m to build it as
4957 + a module. See the configuration help on the Speakup
4958 + choice above for more info.
4959 +
4960 + In order to use the DecTalk PC driver, you must download
4961 + the dec_pc.tgz file from linux-speakup.org. It is in
4962 + the pub/linux/goodies directory. The dec_pc.tgz file
4963 + contains the software which must be pre-loaded on to the
4964 + DecTalk PC board in order to use it with this driver.
4965 + This driver must be built as a module, and can not be
4966 + loaded until the file system is mounted and the DecTalk
4967 + PC software has been pre-loaded on to the board.
4968 +
4969 + See the README file in the dec_pc.tgz file for more
4970 + details.
4971 +
4972 +config SPEAKUP_DTLK
4973 + depends on SPEAKUP
4974 + tristate "DoubleTalk PC, dtlk"
4975 + ---help---
4976 +
4977 + This is the Speakup driver for the internal DoubleTalk
4978 + PC synthesizer. You can say y to build it into the
4979 + kernel, or m to build it as a module. See the
4980 + configuration help on the Speakup choice above for more
4981 + info.
4982 +
4983 +config SPEAKUP_KEYPC
4984 + depends on SPEAKUP
4985 + tristate "Keynote Gold PC, keypc"
4986 + ---help---
4987 +
4988 + This is the Speakup driver for the Keynote Gold
4989 + PC synthesizer. You can say y to build it into the
4990 + kernel, or m to build it as a module. See the
4991 + configuration help on the Speakup choice above for more
4992 + info.
4993 +
4994 +config SPEAKUP_LTLK
4995 + depends on SPEAKUP
4996 + tristate "DoubleTalk LT or LiteTalk, ltlk"
4997 +---help---
4998 +
4999 + This is the Speakup driver for the LiteTalk/DoubleTalk
5000 + LT synthesizer. You can say y to build it into the
5001 + kernel, or m to build it as a module. See the
5002 + configuration help on the Speakup choice above for more
5003 + info.
5004 +
5005 +config SPEAKUP_SFTSYN
5006 + depends on SPEAKUP
5007 + tristate "Software synthesizers, sftsyn"
5008 +---help---
5009 +
5010 + This is the software synthesizer device node. It will
5011 + register a device /dev/sftsyn which midware programs
5012 + and speech
5013 + daemons may open and read to provide kernel output to
5014 + software synths
5015 + such as festival, flite, tuxtalk and so forth. You
5016 + can select 'y' or
5017 + 'm' to have it built-in to the kernel or loaded as a module.
5018 +
5019 +config SPEAKUP_SPKOUT
5020 + depends on SPEAKUP
5021 + tristate "Speak Out, spkout"
5022 + ---help---
5023 +
5024 + This is the Speakup driver for the Speakout synthesizer.
5025 + You can say y to build it into the kernel, or m to
5026 + build it as a module. See the configuration help on the
5027 + Speakup choice above for more info.
5028 +
5029 +config SPEAKUP_TXPRT
5030 + depends on SPEAKUP
5031 + tristate "Transport, txprt"
5032 + ---help---
5033 +
5034 + This is the Speakup driver for the Transport
5035 + synthesizer. You can say y to build it into the kernel,
5036 + or m to build it as a module. See the configuration
5037 + help on the Speakup choice above for more info.
5038 +
5039 +if SPEAKUP != n
5040 + comment 'Enter the 3 to 6 character keyword from the list above, or none for no default synthesizer on boot up.'
5041 + depends on SPEAKUP
5042 +endif
5043 +
5044 +config SPEAKUP_DEFAULT
5045 + string "Choose Default synthesizer for Speakup"
5046 + default "none"
5047 +
5048 +endmenu
5049 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Makefile linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Makefile
5050 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/Makefile 1969-12-31 16:00:00.000000000 -0800
5051 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/Makefile 2004-10-21 07:39:22.000000000 -0700
5052 @@ -0,0 +1,61 @@
5053 +#
5054 +# Makefile for the speakup speech output system.
5055 +#
5056 +
5057 +V := $(shell awk '/UTS_RELEASE/ {print substr($$3,2,3)}' $(TOPDIR)/include/linux/version.h)
5058 +ifeq ($V,2.4)
5059 +# Note! Dependencies are done automagically by 'make dep', which also
5060 +# removes any old dependencies. DON'T put your own dependencies here
5061 +# unless it's something special (ie not a .c file).
5062 +#
5063 +# Note 2! The CFLAGS definitions are now inherited from the
5064 +# parent makes..
5065 +#
5066 +O_TARGET := spk.o
5067 +export-objs := speakup_drvcommon.o speakup.o
5068 +endif
5069 +obj-m = speakup_keyhelp.o
5070 +speakupmain-objs := speakup.o speakup_drvcommon.o
5071 +obj-$(CONFIG_SPEAKUP) += speakupmain.o
5072 +obj-$(CONFIG_SPEAKUP_ACNTPC) += speakup_acntpc.o
5073 +obj-$(CONFIG_SPEAKUP_ACNTSA) += speakup_acntsa.o
5074 +obj-$(CONFIG_SPEAKUP_APOLLO) += speakup_apollo.o
5075 +obj-$(CONFIG_SPEAKUP_AUDPTR) += speakup_audptr.o
5076 +obj-$(CONFIG_SPEAKUP_BNS) += speakup_bns.o
5077 +obj-$(CONFIG_SPEAKUP_DECEXT) += speakup_decext.o
5078 +obj-$(CONFIG_SPEAKUP_DECPC) += speakup_decpc.o
5079 +obj-$(CONFIG_SPEAKUP_DECTLK) += speakup_dectlk.o
5080 +obj-$(CONFIG_SPEAKUP_DTLK) += speakup_dtlk.o
5081 +obj-$(CONFIG_SPEAKUP_KEYPC) += speakup_keypc.o
5082 +obj-$(CONFIG_SPEAKUP_LTLK) += speakup_ltlk.o
5083 +obj-$(CONFIG_SPEAKUP_SFTSYN) += speakup_sftsyn.o
5084 +obj-$(CONFIG_SPEAKUP_SPKOUT) += speakup_spkout.o
5085 +obj-$(CONFIG_SPEAKUP_TXPRT) += speakup_txprt.o
5086 +
5087 +ifeq ($V,2.4)
5088 + include $(TOPDIR)/Rules.make
5089 +
5090 +speakupmap.h: speakupmap.map genmap
5091 + ./genmap speakupmap.map >$@
5092 +
5093 +genmap: genmap.c mapdata.h
5094 + cc -o genmap genmap.c
5095 +
5096 +mapdata.h: makemapdata.c keyinfo.h
5097 + cc -o makemapdata makemapdata.c
5098 + ./makemapdata >mapdata.h
5099 +
5100 +endif
5101 +speakupmain.o:speakup.o speakup_drvcommon.o
5102 + ld -r -o speakupmain.o speakup.o speakup_drvcommon.o
5103 +
5104 +$(obj)/speakupmap.h: $(src)/speakupmap.map $(src)/genmap
5105 + $(src)/genmap $(src)/speakupmap.map >$@
5106 +
5107 +$(obj)/mapdata.h: $(src)/keyinfo.h $(src)/makemapdata
5108 + $(src)/makemapdata >$@
5109 +
5110 +$(obj)/genmap: $(obj)/mapdata.h
5111 +
5112 +HOSTCFLAGS := -Iinclude -I/usr/include
5113 +hostprogs-y := makemapdata genmap
5114 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/TODO linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/TODO
5115 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/TODO 1969-12-31 16:00:00.000000000 -0800
5116 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/TODO 2004-03-06 07:55:29.000000000 -0800
5117 @@ -0,0 +1,50 @@
5118 +The format of this file is getting organized to help me keep track of
5119 +where we are going. I am organizing it into three sections.
5120 +Immediate things which need to be done I.E. code re-organization. New
5121 +features we are currently working on or at least in the near future.
5122 +Long term features which will move to the new features list as the new
5123 +features list empties.
5124 +
5125 +Immediate:
5126 +
5127 +Check and test all linux supported architectures to make sure speakup
5128 +works with them.
5129 +
5130 +New-Features:
5131 +
5132 +A screen memory find function to place the reading cursor.
5133 +
5134 +synth_file fops need to be filled in and expanded such as some type of
5135 +ioctl function and a real synth_file_read() function.
5136 +
5137 +
5138 +Long-Term-Features:
5139 +
5140 +keyboard macros (ala ASAP/qedit)
5141 +
5142 +finding calling process, so per-program configurations can be loaded
5143 +
5144 +Check park status and store it before doing a console switch. (non-trivial)
5145 +
5146 +user defined scroll-back ala shift-pgup.
5147 +
5148 +insert as 'capslock-style'/'next-style' key -- have internalized speakup
5149 + variable, which tracks state of the insert key; each speakup bare-key
5150 + function checks the variable, and possibly calls the alternate
5151 + function and returns
5152 +
5153 +Chuck wants a bleep if the shift key is hit and the capslock is on.
5154 +Here is his suggested test sequence:
5155 +1. check if the caps lock is set; if it is,
5156 +2. check if the char is alphabetic; if it is,
5157 +3. check if the shift key is pressed; if it is,
5158 +4. send a bell char to the console.
5159 +
5160 +Frank would like a fast way to go to the end of the word in addition
5161 +to moving to the beginning.
5162 +
5163 +Gene thinks we should have a /proc function to store and show the rom
5164 +version of any synth currently operating.
5165 +
5166 +The items in each list have no connection with the order of
5167 +implementation. I just jotted them down as I thought of them.
5168 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkclean linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkclean
5169 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkclean 1969-12-31 16:00:00.000000000 -0800
5170 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkclean 2000-12-31 10:20:36.000000000 -0800
5171 @@ -0,0 +1,13 @@
5172 +#!/bin/bash
5173 +
5174 +if [ "$1" == "" ]; then
5175 + echo "You forgot to include a path"
5176 + exit
5177 +fi
5178 +
5179 +cp -R /usr/src/linux/drivers/char/speakup $1/speakup
5180 +cd $1/speakup
5181 +
5182 +rm -rf checkin checkorig checkclean *.o *~ \
5183 + CVS diff-v22/CVS diff-v24/CVS cvsversion.h
5184 +
5185 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkin linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkin
5186 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkin 1969-12-31 16:00:00.000000000 -0800
5187 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkin 2003-05-12 18:05:31.000000000 -0700
5188 @@ -0,0 +1,75 @@
5189 +#!/bin/bash
5190 +
5191 +cd ../../..
5192 +ROOTDIR=`pwd`
5193 +VERSION=v`head -2 $ROOTDIR/Makefile | \
5194 + awk '{ printf "%s",$3 }'`
5195 +
5196 +DIR=$ROOTDIR/drivers/char/speakup
5197 +
5198 +echo "Checking in $VERSION"
5199 +
5200 +# check for CVSROOT stuff
5201 +if [ ! -d ${DIR}/CVS ] && [ "$CVSROOT" == "" ]; then
5202 + echo 'CVSROOT not set. Enter it below.'
5203 + read -p 'CVSROOT> ' CVSROOT
5204 + [ "$CVSROOT" == "" ] && exit
5205 + export CVSROOT
5206 + cvs login || exit
5207 +fi
5208 +
5209 +# do I have a new version to deal with?
5210 +CVS_ADD=n
5211 +if [ ! -d ${DIR}/diff-${VERSION}/CVS ]; then
5212 + CVS_ADD=y
5213 +fi
5214 +
5215 +# make patch files
5216 +echo -n 'Creating CVS files ['
5217 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
5218 + patch=`echo $i | cut -f 1 -d ,`
5219 + filebase=`echo $i | cut -f 2 -d ,`
5220 +
5221 + mkdir -p ${DIR}/diff-${VERSION}
5222 + fname="${DIR}/diff-${VERSION}/${filebase//\//^}"
5223 +
5224 + if [ "$patch" == "0" ]; then
5225 + # Just copy it
5226 + if [ $fname.copy -ot $filebase ] || [ ! -e $fname.copy ]; then
5227 + echo -n c
5228 + cp $ROOTDIR/$filebase $fname.copy
5229 + else
5230 + echo -n .
5231 + fi
5232 + else
5233 + # Make a patch
5234 + if [ -e $ROOTDIR/$filebase.orig ]; then
5235 + if [ $fname.patch -ot $filebase ] || [ ! -e $fname.patch ] ; then
5236 + echo -n p
5237 + diff -urN $ROOTDIR/$filebase.orig $filebase > $fname.patch
5238 + else
5239 + echo -n .
5240 + fi
5241 + else
5242 + # can't patch w/o .orig
5243 + echo !
5244 + echo Error: $ROOTDIR/$filebase.orig doesn\'t exist!
5245 + exit
5246 + fi
5247 + fi
5248 +done
5249 +echo '] done.'
5250 +
5251 +[ "$1" == "-p" ] && exit
5252 +
5253 +cd ${DIR}
5254 +
5255 +echo 'Creating cvsversion.h'
5256 +echo '#define CVSVERSION " CVS:' `date` '"' > cvsversion.h
5257 +
5258 +echo 'Sending to CVS...'
5259 +if [ "$CVS_ADD" == "y" ]; then
5260 + cvs add diff-${VERSION} || exit
5261 + cvs add diff-${VERSION}/* || exit
5262 +fi
5263 +cvs -Q ci || exit
5264 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkout linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkout
5265 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/checkout 1969-12-31 16:00:00.000000000 -0800
5266 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/checkout 2005-08-15 07:47:45.000000000 -0700
5267 @@ -0,0 +1,83 @@
5268 +#!/bin/bash
5269 +
5270 +ROOTDIR=/usr/src/linux
5271 +if [ "$1" != "" ]; then
5272 + ROOTDIR="$1"
5273 +else
5274 + if [ -d kernel -a -d Documentation ]; then
5275 + ROOTDIR=`pwd`
5276 + fi
5277 +fi
5278 +
5279 +VERSION=v`head -2 $ROOTDIR/Makefile | \
5280 + awk '{ printf "%s",$3 }'`
5281 +
5282 +DIR=$ROOTDIR/drivers/char/speakup
5283 +
5284 +echo "Patching version $VERSION"
5285 +
5286 +if [ ! -d ${DIR}/CVS ] && [ "$CVSROOT" == "" ]; then
5287 + echo 'CVSROOT not set. Enter it below. Hit enter for anonymous.'
5288 + read -p 'CVSROOT> ' CVSROOT
5289 + [ "$CVSROOT" == "" ] &&
5290 + CVSROOT=':pserver:mike@nondescript.ca:/usr/src/CVS'
5291 + export CVSROOT
5292 + cvs login || exit
5293 +fi
5294 +
5295 +if [ "$1" != "-p" ]; then
5296 + # get new version
5297 + mkdir -p ${DIR%/speakup}
5298 + cd ${DIR%/speakup}
5299 + if [ -d speakup ] && [ -d ${DIR}/CVS ]; then
5300 + cd speakup
5301 + cvs update -d -P || exit
5302 + else
5303 + rm -fr ${DIR}
5304 + cvs co -P speakup || exit
5305 + cd speakup
5306 + fi
5307 +fi
5308 +
5309 +# make .orig files
5310 +echo -n 'Creating .orig files ['
5311 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
5312 + patch=`echo $i | cut -f 1 -d ,`
5313 + filebase=`echo $i | cut -f 2 -d ,`
5314 +
5315 + mkdir -p `dirname $ROOTDIR/$filebase`
5316 + if [ "$patch" == "1" ]; then
5317 + if [ ! -e $ROOTDIR/$filebase.orig ]; then
5318 + echo -n .
5319 + cp $ROOTDIR/$filebase $ROOTDIR/$filebase.orig
5320 + fi
5321 + fi
5322 +done
5323 +echo '] done.'
5324 +
5325 +# apply patches
5326 +echo -n 'Patching files ['
5327 +for i in ${DIR}/diff-${VERSION}/*.patch; do
5328 + # skip dirs
5329 + [ -d $i ] && continue
5330 + echo -n p
5331 + writeloc=${i##$DIR\/diff-${VERSION}\/}
5332 + writeloc=${writeloc%.patch}
5333 + writeloc=${writeloc//^/\/}
5334 + patch --silent -f -p0 -o $ROOTDIR/$writeloc $ROOTDIR/$writeloc.orig $i
5335 +done
5336 +echo '] done.'
5337 +
5338 +# copy files
5339 +echo -n 'Copying files ['
5340 +for i in ${DIR}/diff-${VERSION}/*.copy; do
5341 + # skip dirs
5342 + [ -d $i ] && continue
5343 + echo -n c
5344 + writeloc=${i##$DIR\/diff-${VERSION}\/}
5345 + writeloc=${writeloc%.copy}
5346 + writeloc=${writeloc//^/\/}
5347 + cp $i $ROOTDIR/$writeloc
5348 +done
5349 +echo '] done.'
5350 +
5351 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/cvsversion.h linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/cvsversion.h
5352 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/cvsversion.h 1969-12-31 16:00:00.000000000 -0800
5353 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/cvsversion.h 2005-08-16 12:57:05.000000000 -0700
5354 @@ -0,0 +1 @@
5355 +#define CVSVERSION " CVS: Tue Aug 16 15:56:58 EDT 2005 "
5356 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtload.c linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtload.c
5357 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtload.c 1969-12-31 16:00:00.000000000 -0800
5358 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtload.c 2003-08-08 11:15:12.000000000 -0700
5359 @@ -0,0 +1,554 @@
5360 +/*
5361 + * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
5362 + *
5363 + * Original 386BSD source:
5364 + * Copyright ( c ) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
5365 + *
5366 + * Adapted for Linux:
5367 + * Copyright ( c ) 1997 Nicolas Pitre <nico@cam.org>
5368 + *
5369 + * Adapted for speakup:
5370 + * Copyright ( c ) 2003 David Borowski <david575@golden.net>
5371 + *
5372 + * All rights reserved.
5373 + *
5374 + * This program is free software; you can redistribute it and/or modify
5375 + * it under the terms of the GNU General Public License as published by
5376 + * the Free Software Foundation; either version 2 of the License, or
5377 + * ( at your option ) any later version.
5378 + *
5379 + * This program is distributed in the hope that it will be useful,
5380 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
5381 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5382 + * GNU General Public License for more details.
5383 + *
5384 + * You should have received a copy of the GNU General Public License
5385 + * along with this program; if not, write to the Free Software
5386 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
5387 + *
5388 + */
5389 +
5390 +#include <stdio.h>
5391 +#include <stdlib.h>
5392 +#include <unistd.h>
5393 +#include <string.h>
5394 +#include <sys/types.h>
5395 +#include <sys/stat.h>
5396 +#include <fcntl.h>
5397 +#include <malloc.h>
5398 +#include <sys/errno.h>
5399 +#include <asm/io.h>
5400 +#include "dtload.h"
5401 +#include "dtpc_reg.h"
5402 +
5403 +#define dt_delay(x) usleep(x)
5404 +int verbose = 0, intest = 0,infd = -1;
5405 +int image_len, total_paras;
5406 +int dt_stat, dma_state = 0, has_kernel = 0;
5407 +struct dos_reloc fixups[512];
5408 +char *read_buff = NULL;
5409 +struct dos_exe_header header;
5410 +u_short iobase = 0x350;
5411 +
5412 +static inline int dt_getstatus( )
5413 +{
5414 + dt_stat = inb_p( iobase )|(inb_p( iobase+1 )<<8);
5415 + return dt_stat;
5416 +}
5417 +
5418 +static void dt_sendcmd( u_int cmd )
5419 +{
5420 + outb_p( cmd & 0xFF, iobase );
5421 + outb_p( (cmd>>8) & 0xFF, iobase+1 );
5422 +}
5423 +
5424 +static int dt_waitbit( int bit )
5425 +{
5426 + int timeout = 100;
5427 + while ( --timeout > 0 ) {
5428 + if( (dt_getstatus( ) & bit ) == bit ) return 1;
5429 + usleep( 1000 );
5430 + }
5431 + return 0;
5432 +}
5433 +
5434 +static int dt_sendcmd_wait( u_int cmd, int bit )
5435 +{
5436 + int timeout = 1000;
5437 + outb_p( cmd & 0xFF, iobase );
5438 + outb_p( (cmd>>8) & 0xFF, iobase+1 );
5439 + while ( --timeout > 0 ) {
5440 + if( (dt_getstatus( ) & bit ) == bit ) return 1;
5441 + usleep( 1000 );
5442 + }
5443 + return 0;
5444 +}
5445 +
5446 +static int dt_waitmode( int pattern )
5447 +{
5448 + int timeout = 1000;
5449 + while ( --timeout > 0 ) {
5450 + if( dt_getstatus( ) == pattern ) return 1;
5451 + usleep( 1000 );
5452 + }
5453 + fprintf( stderr, "waitmode p=%x s = %x\n", pattern, dt_stat );
5454 + return 0;
5455 +}
5456 +
5457 +static int dt_wait_dma( )
5458 +{
5459 + int timeout = 1000, state = dma_state;
5460 + if( !has_kernel ){
5461 + dt_delay( 500 );
5462 + return( dt_waitbit( STAT_dma_ready ) );
5463 + }
5464 + if( ! dt_waitbit( STAT_dma_ready ) ) return 0;
5465 + while ( --timeout > 0 ) {
5466 + if( (dt_getstatus()&STAT_dma_state) == state ) return 1;
5467 + usleep( 1000 );
5468 + }
5469 + dma_state = dt_getstatus( ) & STAT_dma_state;
5470 + return 1;
5471 +}
5472 +
5473 +dt_ctrl( u_int cmd )
5474 +{
5475 + while ( ! dt_waitbit( STAT_cmd_ready ) ) dt_delay( 100 );
5476 + outb_p( 0, iobase+2 );
5477 + outb_p( 0, iobase+3 );
5478 + dt_getstatus( );
5479 + dt_sendcmd( CMD_control|cmd );
5480 + outb_p( 0, iobase+6 );
5481 + dt_delay( 100 );
5482 + dt_sendcmd( CMD_null );
5483 + while ( ! dt_waitbit( STAT_cmd_ready ) ) dt_delay( 100 );
5484 +}
5485 +
5486 +int dt_flush( void )
5487 +{
5488 + dt_ctrl( CTRL_flush );
5489 + dt_waitbit( STAT_dma_ready );
5490 + outb_p( DMA_sync, iobase+4 );
5491 + outb_p( 0, iobase+4 );
5492 + dma_state ^= STAT_dma_state;
5493 + while( dt_getstatus( ) & STAT_flushing ) dt_delay( 100 );
5494 + return 0;
5495 +}
5496 +
5497 +static int dt_sendbuff( char *src, int len )
5498 +{
5499 + while( len-- ){
5500 + if( ! dt_wait_dma( ) ) return -1;
5501 + if( ! (dt_getstatus( ) & STAT_rr_char) ) break;
5502 + outb_p( DMA_single_in, iobase+4 );
5503 + outb_p( *src++, iobase+4 );
5504 + dma_state ^= STAT_dma_state;
5505 + }
5506 + return 0;
5507 +}
5508 +
5509 +unsigned long dt_allocmem( unsigned long paras )
5510 +{
5511 + unsigned long addr;
5512 + if( ! dt_wait_dma( ) ) return 0;
5513 + outb_p( DMA_control, iobase+4 );
5514 + outb_p( DT_MEM_ALLOC, iobase+4 );
5515 + dma_state ^= STAT_dma_state;
5516 + if( ! dt_wait_dma( ) ) return 0;
5517 + outb_p( paras & 0xFF, iobase+4 );
5518 + outb_p( (paras>>8) & 0xFF, iobase+4 );
5519 + dma_state ^= STAT_dma_state;
5520 + if( ! dt_wait_dma( ) ) return 0;
5521 + addr = inb_p( iobase+4 );
5522 + addr |= (inb_p( iobase+4 )<<8);
5523 + addr += (inb_p( iobase+4 )<<4);
5524 + addr += (inb_p( iobase+4 )<<12);
5525 + dma_state ^= STAT_dma_state;
5526 + return addr;
5527 +}
5528 +
5529 +static int testkernel( void )
5530 +{
5531 + dt_sendcmd( CMD_sync );
5532 + if( ! dt_waitbit( STAT_cmd_ready ) ) return -10;
5533 + has_kernel = ( dt_stat&0x8000 ) ? 1 : 0;
5534 + if ( verbose ) printf( "testkernel got %x\n", dt_stat );
5535 + if ( has_kernel ) return 0;
5536 + dt_delay( 100 );
5537 + return 1;
5538 +}
5539 +
5540 +static int dt_loadmem( int addr, int len, char *src )
5541 +{
5542 + char c;
5543 + int l;
5544 + if ( verbose ) printf( "dt_loadmem: addr = %08X size = %d\n", addr, len );
5545 + do {
5546 + l = len;
5547 + if ( l >= 0xc000 ) l = 0xc000;
5548 + len -= l;
5549 + if( ! dt_wait_dma( ) ) return -1;
5550 + outb_p( DMA_control, iobase+4 );
5551 + outb_p( DT_LOAD_MEM, iobase+4 );
5552 + dma_state ^= STAT_dma_state;
5553 + if( ! dt_wait_dma( ) ) return -2;
5554 + outb_p( addr & 0xFF, iobase+4 );
5555 + outb_p( (addr>>8) & 0xFF, iobase+4 );
5556 + outb_p( (addr>>16) & 0xFF, iobase+4 );
5557 + outb_p( (addr>>24) & 0xFF, iobase+4 );
5558 + outb_p( l & 0xFF, iobase+4 );
5559 + outb_p( (l>>8) & 0xFF, iobase+4 );
5560 + dma_state ^= STAT_dma_state;
5561 + if( ! dt_wait_dma( ) ) return -3;
5562 + addr += l;
5563 + while( l-- ){
5564 + c = *src++;
5565 + outb_p( c, iobase+4 );
5566 + }
5567 + dma_state ^= STAT_dma_state;
5568 + } while ( len > 0 );
5569 + return 0;
5570 +}
5571 +
5572 +unsigned int loadfile ( char *filename )
5573 +{
5574 + int i, header_size;
5575 + unsigned int total_paras;
5576 + long fix;
5577 + infd = open ( filename, O_RDONLY );
5578 + if ( infd == -1 ) {
5579 + perror ( "Opening file: " );
5580 + return 0;
5581 + }
5582 + read ( infd, &header, sizeof ( struct dos_exe_header ) );
5583 + if ( header.id != 0x5a4d ) {
5584 + fprintf ( stderr, "Invalid header file format\n" );
5585 + fprintf ( stderr, "Want 0x5a4d, got 0x%x\n", header.id );
5586 + return 0;
5587 + }
5588 + if ( header.relen > MAX_FIXUPS ) {
5589 + fprintf ( stderr, "Too many fixups\n" );
5590 + return 0;
5591 + }
5592 + lseek ( infd, ( long ) header.reloc, SEEK_SET );
5593 + read ( infd, fixups, sizeof ( struct dos_reloc ) * header.relen );
5594 + header_size = header.hsize * 16;
5595 + lseek ( infd, ( long )header_size, SEEK_SET );
5596 + image_len = ( ( header.pages-1 )*512 ) + ( header.rem- header_size );
5597 + total_paras = ( image_len >> 4 ) + header.hmin + 16;
5598 + read ( infd, read_buff, image_len );
5599 + close( infd );
5600 + return total_paras;
5601 +}
5602 +
5603 +static int loadkernel( char *filename )
5604 +{
5605 + int segfix = 0x40, fix, i;
5606 + int ipval, csval;
5607 + if ( has_kernel ) return 0;
5608 + if ( !loadfile( filename ) ) return -1;
5609 + header.csval += segfix;
5610 + header.ssval += segfix;
5611 + if ( verbose ) {
5612 + printf ( "Loading kernel of %ld bytes ( %d relocs )\n",
5613 + image_len, header.relen );
5614 + printf ( " cs:ip == %04x:%04x ss:sp == %04x:%04x\n",
5615 + header.csval, header.ipval, header.ssval, header.spval );
5616 + }
5617 + for ( i = 0; i < header.relen; i++ ) {
5618 + fix = ( fixups[i].segment << 4 ) + fixups[i].offset;
5619 + ( *( unsigned int * ) &read_buff[fix] ) += segfix;
5620 + }
5621 + csval = header.csval;
5622 + ipval = header.ipval;
5623 + dt_sendcmd_wait( MODULE_reset, MODULE_init );
5624 + dt_sendcmd( CMD_reset );
5625 + if( dt_getstatus( ) == MODULE_self_test ){
5626 + if( ! dt_waitmode( MODULE_init ) ) return -1;
5627 + }
5628 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -2;
5629 + if ( !dt_sendcmd_wait( CMD_sync, MODE_error ) ) return -3;
5630 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -4;
5631 + if ( verbose ) printf( "card is ready\n" );
5632 + dt_sendcmd( CMD_dma );
5633 + if( ! dt_waitbit( STAT_dma_ready ) ) return -5;
5634 + if( ( i = dt_loadmem( 0x00000400, image_len, read_buff ) ) ) {
5635 + fprintf( stderr, "kernel load failed, status %d\n", i );
5636 + return -6;
5637 + }
5638 + dt_delay( 100 );
5639 + /* the kernel is loaded, start it */
5640 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -7;
5641 + dt_sendcmd( CMD_dma+1 ); /**xxx**/
5642 + dt_delay( 100 );
5643 + if( ! dt_waitbit( STAT_dma_ready ) ) return-8;
5644 + outb_p( DMA_control, iobase+4 );
5645 + outb_p( DT_START_TASK, iobase+4 );
5646 + dt_delay( 100 );
5647 + outb_p( ipval & 0xFF, iobase+4 );
5648 + outb_p( (ipval>>8) & 0xFF, iobase+4 );
5649 + outb_p( csval & 0xFF, iobase+4 );
5650 + outb_p( (csval>>8) & 0xFF, iobase+4 );
5651 + if( ! dt_waitmode( 0xc001 ) ) return -9;
5652 + if ( verbose ) {
5653 + printf( "done loading kernel\n" );
5654 + }
5655 + return testkernel( );
5656 +}
5657 +
5658 +int loaddict ( char *filename, char *name, int type )
5659 +{
5660 + int i, read_index, read_size, act_size;
5661 + unsigned short *index_fix, seg_fix;
5662 + unsigned long entries, index, dic_bytes, dic_addr;
5663 + unsigned int total_paras;
5664 + unsigned long param, l;
5665 + infd = open ( filename, O_RDONLY );
5666 + if ( infd == -1 ) {
5667 + perror ( filename );
5668 + return -1;
5669 + }
5670 +/* read in the entry count and the actual entry size excluding the
5671 + * index table ( which is entries * 4 ) ... */
5672 + read ( infd, &entries, 4 );
5673 + read ( infd, &dic_bytes, 4 );
5674 + if ( verbose )
5675 + printf ( "Loading %s dictionary of %lu entries, %lu bytes.\n",
5676 + name, entries, dic_bytes );
5677 + total_paras = ( ( ( entries * 4 ) + dic_bytes ) >> 4 ) + 2;
5678 + if ( verbose )
5679 + printf ( "Allocating %d paragraphs of free ram ...\n", total_paras );
5680 + l = dt_allocmem( total_paras );
5681 + if ( l == 0 ) {
5682 + perror ( "Error requesting memory from speech device" );
5683 + return -1;
5684 + }
5685 + seg_fix = ( l >> 4 ) & 0xffff;
5686 + dic_addr = l;
5687 + index = entries;
5688 + index_fix = ( unsigned short * ) &read_buff[0];
5689 + if ( verbose )
5690 + printf ( "Index table starts at %lx\n", l );
5691 + read_index = index*4;
5692 + act_size = read ( infd, read_buff, read_index );
5693 + if ( act_size != read_index ) {
5694 + fprintf ( stderr, "\nError reading indexes\n" );
5695 + fprintf ( stderr, " exp : %d act : %d\n", read_index * 4, act_size );
5696 + return -1;
5697 + }
5698 + for ( i = 1; i < index * 2; i += 2 )
5699 + index_fix[i] += seg_fix;
5700 + if( ( i = dt_loadmem( l, read_index, read_buff ) ) ) {
5701 + fprintf ( stderr, "\nError loading indexes at 0x%lX: i %d\n",
5702 + l, i );
5703 + return -1;
5704 + }
5705 + l += read_index;
5706 +/* now, load up the dictionary bytes ... */
5707 + if ( verbose )
5708 + printf ( "Dictionary text starts at %lx\n", l );
5709 + read_size = dic_bytes;
5710 + if ( ( act_size = read ( infd, read_buff, read_size ) ) != read_size ) {
5711 + fprintf ( stderr, "\nError reading dictionary text!\n" );
5712 + fprintf ( stderr, "asked : %d actual : %d\n", act_size, read_size );
5713 + return -1;
5714 + }
5715 + if( ( i = dt_loadmem( l, read_size, read_buff ) ) ) {
5716 + fprintf ( stderr, "\nError loading dictionary at 0x%lX: status %d\n",
5717 + l, i );
5718 + return -1;
5719 + }
5720 + if( ! dt_wait_dma( ) ) return -1;
5721 + outb_p( DMA_control, iobase+4 );
5722 + outb_p( DT_SET_DIC, iobase+4 );
5723 + dma_state ^= STAT_dma_state;
5724 + if( ! dt_wait_dma( ) ) return -1;
5725 + l = dic_addr;
5726 + l = ((l << 12) & 0xFFFF0000) + (l & 0x0000000F);
5727 + outb_p( l & 0xFF, iobase+4 );
5728 + outb_p( (l>>8) & 0xFF, iobase+4 );
5729 + outb_p( (l>>16) & 0xFF, iobase+4 );
5730 + outb_p( (l>>24) & 0xFF, iobase+4 );
5731 + l = entries;
5732 + outb_p( l & 0xFF, iobase+4 );
5733 + outb_p( (l>>8) & 0xFF, iobase+4 );
5734 + outb_p( (l>>16) & 0xFF, iobase+4 );
5735 + outb_p( (l>>24) & 0xFF, iobase+4 );
5736 + l = type;
5737 + outb_p( l & 0xFF, iobase+4 );
5738 + outb_p( (l>>8) & 0xFF, iobase+4 );
5739 + dma_state ^= STAT_dma_state;
5740 + close ( infd );
5741 + if ( verbose ) printf( "dictionary load complete\n" );
5742 + return 0;
5743 +}
5744 +
5745 +int loadexe ( char *filename )
5746 +{
5747 + unsigned int load_addr = 0, seg_fix;
5748 + int i, read_size;
5749 + int ipval, csval;
5750 + long fix;
5751 + unsigned long total_paras;
5752 + total_paras = loadfile ( filename );
5753 + if ( total_paras == 0 ) return -1;
5754 + load_addr = dt_allocmem( total_paras );
5755 + if ( load_addr == 0 ) {
5756 + fprintf ( stderr, "Error allocating memory on card: " );
5757 + return -1;
5758 + }
5759 + seg_fix = ( load_addr >> 4 ) & 0xffff;
5760 + if ( verbose ) {
5761 + printf ( "Loading %s %ld bytes ( %d relocs )\n",
5762 + filename, image_len, header.relen );
5763 + printf ( "Allocating %ld bytes of free ram at %05x\n",
5764 + ( long ) header.hmin * 16, load_addr );
5765 + printf ( "Total memory taken is %ld bytes\n", ( long ) total_paras * 16 );
5766 + printf ( " cs:ip == %04x:%04x ss:sp == %04x:%04x\n",
5767 + header.csval + seg_fix, header.ipval, header.ssval + seg_fix, header.spval );
5768 + }
5769 + for ( i = 0; i < header.relen; i++ ) {
5770 + fix = ( ( long ) fixups[i].segment << 4 ) + ( long ) fixups[i].offset;
5771 + ( *( unsigned int * ) &read_buff[fix] ) += seg_fix;
5772 + }
5773 + if( ( i = dt_loadmem( load_addr, image_len, read_buff ) ) ) {
5774 + fprintf ( stderr, "Error loading speech device at 0x%lX: status %d\n",
5775 + load_addr, i );
5776 + return -1;
5777 + }
5778 + csval = header.csval + seg_fix;
5779 + ipval = header.ipval;
5780 + if( ! dt_wait_dma( ) ) return -1;
5781 + outb_p( DMA_control, iobase+4 );
5782 + outb_p( DT_START_TASK, iobase+4 );
5783 + dma_state ^= STAT_dma_state;
5784 + if( ! dt_wait_dma( ) ) return -1;
5785 + outb_p( ipval & 0xFF, iobase+4 );
5786 + outb_p( (ipval>>8) & 0xFF, iobase+4 );
5787 + outb_p( csval & 0xFF, iobase+4 );
5788 + outb_p( (csval>>8) & 0xFF, iobase+4 );
5789 + dma_state ^= STAT_dma_state;
5790 + return 0;
5791 +}
5792 +
5793 +void release_io( void )
5794 +{
5795 + ioperm( (long)iobase, 8, 0 );
5796 + ioperm( (long)0x0080, 1, 0 );
5797 + if ( read_buff ) free( read_buff );
5798 +}
5799 +
5800 +parseparm( char *parm, char *value )
5801 +{
5802 + char *cp = parm+strlen( parm );
5803 + while ( --cp > parm ) if ( *cp > ' ' ) break;
5804 + cp[1] = '\0';
5805 + if ( !strcmp( parm, "io" ) ) {
5806 + long io = strtol( value, 0, 0 );
5807 + if ( io >= 0x100 && io <= 0x350 ) {
5808 + iobase = (u_short)io;
5809 + return;
5810 + }
5811 + fprintf( stderr, "invalid io value %s\n", value );
5812 + exit( 1 );
5813 + } else if ( !strcmp( parm,"verbose" ) ) {
5814 + verbose = atoi( value );
5815 + }
5816 +}
5817 +
5818 +do_test( void )
5819 +{
5820 + char buffer[512];
5821 + int len;
5822 + dma_state = dt_getstatus( ) & STAT_dma_state;
5823 + while ( fgets( buffer, 510, stdin ) ) {
5824 + len = strlen( buffer );
5825 + if ( len == 1 ) dt_flush( );
5826 + else {
5827 + if ( buffer[len-1] == '\n' ) buffer[len-1] = '\013';
5828 + dt_sendbuff( buffer, len );
5829 + }
5830 + }
5831 + *buffer = '\013';
5832 + dt_sendbuff( buffer, 1 );
5833 +}
5834 +
5835 +int main ( int argc, char **argv )
5836 +{
5837 + char name[80], *cp;
5838 + char *dirname = 0, *confname = "dec_pc.conf";
5839 + char *init_msg = "[:ra 360] dec pc initialized\011";
5840 + FILE *confile;
5841 + struct stat statbuf;
5842 + int maxsize = 0, status = 0;
5843 + while ( --argc > 0 ) {
5844 + argv++;
5845 + if ( !strcmp( *argv, "-v" ) ) verbose = 1;
5846 + else if ( !strcmp( *argv, "-t" ) ) intest = 1;
5847 + else dirname = *argv;
5848 + }
5849 + if ( !dirname ) dirname = "/usr/local/lib/dec_pc";
5850 + if ( chdir( dirname ) != 0 ) {
5851 + fprintf( stderr, "cannot chdir to %s\n", dirname );
5852 + exit( 1 );
5853 + }
5854 + if ( !( confile = fopen( confname, "r" ) ) ) {
5855 + fprintf( stderr, "could not open %s", confname );
5856 + exit( 1 );
5857 + }
5858 + while ( fgets( name, 80, confile ) ) {
5859 + cp = strchr( name, '\n' );
5860 + if ( cp ) *cp = '\0';
5861 + if ( ( cp = strchr( name, '=' ) ) ) {
5862 + *cp++ = '\0';
5863 + parseparm( name, cp );
5864 + continue;
5865 + }
5866 + if ( stat( name, &statbuf ) != 0 ) {
5867 + fprintf( stderr, "cannot stat %s\n", name );
5868 + exit( 1 );
5869 + }
5870 + if ( statbuf.st_size > maxsize ) maxsize = statbuf.st_size;
5871 + }
5872 + rewind( confile );
5873 + if ( ioperm( (long)0x0080, 1, 1 ) || ioperm( (long)iobase, 8, 1 ) ) {
5874 + fprintf( stderr, "could not get ioperm\n" );
5875 + exit( 1 );
5876 + }
5877 + atexit( release_io );
5878 + if ( testkernel( ) == 0 ) {
5879 + if ( intest ) do_test( );
5880 + else fprintf( stderr, "kernel already loaded\n" );
5881 + exit( 0 );
5882 + }
5883 + read_buff = malloc( maxsize );
5884 + if ( !read_buff ) {
5885 + fprintf( stderr, "cannot malloc %d bytes\n", maxsize );
5886 + exit( 1 );
5887 + }
5888 + while ( fgets( name, 80, confile ) && !status ) {
5889 + cp = strchr( name, '\n' );
5890 + if ( cp ) *cp = '\0';
5891 + if ( strchr( name, '=' ) ) continue; /* a parameter */
5892 + if ( !( cp = strchr( name, '.' ) ) ) continue;
5893 + cp++;
5894 + if ( !strcmp ( cp, "dic" ) ) {
5895 + status = loaddict ( name, "primary", PRIMARY_DIC );
5896 + } else if ( !strcmp ( cp, "dtu" ) ) {
5897 + status = loaddict ( name, "user", USER_DIC );
5898 + } else if ( !strcmp ( cp, "dta" ) ) {
5899 + status = loaddict ( name, "abbreviation file", ABBREV_DIC );
5900 + } else if ( !strcmp ( cp, "exe" ) ) {
5901 + status = loadexe ( name );
5902 + } else if ( !strcmp ( cp, "sys" ) ) {
5903 + status = loadkernel ( name );
5904 + }
5905 + }
5906 + if ( status ) fprintf( stderr, "status %d\n", status );
5907 + fclose( confile );
5908 + if ( status ) exit( status );
5909 + dt_sendbuff( init_msg, strlen( init_msg ) );
5910 + sleep( 1 );
5911 + if ( intest ) do_test( );
5912 + exit( 0 );
5913 +}
5914 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtload.h linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtload.h
5915 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtload.h 1969-12-31 16:00:00.000000000 -0800
5916 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtload.h 2003-07-31 08:27:06.000000000 -0700
5917 @@ -0,0 +1,57 @@
5918 +/*
5919 + * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
5920 + *
5921 + * Original 386BSD source:
5922 + * Copyright (c) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
5923 + *
5924 + * Adapted for Linux:
5925 + * Copyright (c) 1997 Nicolas Pitre <nico@cam.org>
5926 + *
5927 + * Adapted for speakup:
5928 + * Copyright (c) 2003 David Borowski <david575@golden.net>
5929 + *
5930 + * All rights reserved.
5931 + *
5932 + * This program is free software; you can redistribute it and/or modify
5933 + * it under the terms of the GNU General Public License as published by
5934 + * the Free Software Foundation; either version 2 of the License, or
5935 + * (at your option) any later version.
5936 + *
5937 + * This program is distributed in the hope that it will be useful,
5938 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
5939 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5940 + * GNU General Public License for more details.
5941 + *
5942 + * You should have received a copy of the GNU General Public License
5943 + * along with this program; if not, write to the Free Software
5944 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
5945 + *
5946 + */
5947 +
5948 +#define MAX_FIXUPS 512 /* maximum fixups per exe */
5949 +/*
5950 + * msdos .exe files will look like ...
5951 + */
5952 +
5953 +struct dos_exe_header {
5954 + unsigned short id; /* Linker's signature, must be 0x5a4d */
5955 + unsigned short rem; /* length of image mod 512 */
5956 + unsigned short pages; /* length of image in pages of 512 bytes */
5957 + unsigned short relen; /* number of relocation items */
5958 + unsigned short hsize; /* header size in paragraphs of 16 bytes */
5959 + unsigned short hmin; /* min # of paragraphs above prog end */
5960 + unsigned short hmax;
5961 + unsigned short ssval;
5962 + unsigned short spval; /* to be loaded in sp */
5963 + unsigned short checksum;
5964 + unsigned short ipval; /* to be loaded in ip */
5965 + unsigned short csval; /* segment offset to code */
5966 + unsigned short reloc; /* location of relocation items */
5967 + unsigned short ovrlay; /* overlay number */
5968 +};
5969 +
5970 +/* a dos relocation element looks like */
5971 +
5972 +struct dos_reloc {
5973 + short int offset, segment;
5974 +};
5975 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtpc_reg.h linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtpc_reg.h
5976 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/dtpc_reg.h 1969-12-31 16:00:00.000000000 -0800
5977 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/dtpc_reg.h 2003-07-31 08:27:06.000000000 -0700
5978 @@ -0,0 +1,132 @@
5979 +/*
5980 + * This is the DECtalk PC register constants (from DEC's DOS driver)
5981 + *
5982 + * Original code:
5983 + * Copyright (c) by Digital Equipment Corp.
5984 + *
5985 + * 386BSD DECtalk PC driver:
5986 + * Copyright (c) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
5987 + *
5988 + * Linux DECtalk PC driver:
5989 + * Copyright (c) 1997 Nicolas Pitre <nico@cam.org>
5990 + *
5991 + * speakup DECtalk PC driver:
5992 + * Copyright (c) 2003 David Borowski <david575@golden.net>
5993 + *
5994 + * All rights reserved.
5995 + *
5996 + * This program is free software; you can redistribute it and/or modify
5997 + * it under the terms of the GNU General Public License as published by
5998 + * the Free Software Foundation; either version 2 of the License, or
5999 + * (at your option) any later version.
6000 + *
6001 + * This program is distributed in the hope that it will be useful,
6002 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
6003 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6004 + * GNU General Public License for more details.
6005 + *
6006 + * You should have received a copy of the GNU General Public License
6007 + * along with this program; if not, write to the Free Software
6008 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
6009 + *
6010 + */
6011 +
6012 +/*
6013 + * port interface defs ... used by dtpc.c
6014 + */
6015 +
6016 +#define MODULE_init 0x0dec /* module in boot code */
6017 +#define MODULE_self_test 0x8800 /* module in self-test */
6018 +#define MODULE_reset 0xffff /* reinit the whole module */
6019 +
6020 +#define MODE_mask 0xf000 /* mode bits in high nibble */
6021 +#define MODE_null 0x0000
6022 +#define MODE_test 0x2000 /* in testing mode */
6023 +#define MODE_status 0x8000
6024 +#define STAT_int 0x0001 /* running in interrupt mode */
6025 +#define STAT_tr_char 0x0002 /* character data to transmit */
6026 +#define STAT_rr_char 0x0004 /* ready to receive char data */
6027 +#define STAT_cmd_ready 0x0008 /* ready to accept commands */
6028 +#define STAT_dma_ready 0x0010 /* dma command ready */
6029 +#define STAT_digitized 0x0020 /* spc in digitized mode */
6030 +#define STAT_new_index 0x0040 /* new last index ready */
6031 +#define STAT_new_status 0x0080 /* new status posted */
6032 +#define STAT_dma_state 0x0100 /* dma state toggle */
6033 +#define STAT_index_valid 0x0200 /* indexs are valid */
6034 +#define STAT_flushing 0x0400 /* flush in progress */
6035 +#define STAT_self_test 0x0800 /* module in self test */
6036 +#define MODE_ready 0xc000 /* module ready for next phase */
6037 +#define READY_boot 0x0000
6038 +#define READY_kernel 0x0001
6039 +#define MODE_error 0xf000
6040 +
6041 +#define CMD_mask 0xf000 /* mask for command nibble */
6042 +#define CMD_null 0x0000 /* post status */
6043 +#define CMD_control 0x1000 /* hard control command */
6044 +#define CTRL_mask 0x0F00 /* mask off control nibble */
6045 +#define CTRL_data 0x00FF /* madk to get data byte */
6046 +#define CTRL_null 0x0000 /* null control */
6047 +#define CTRL_vol_up 0x0100 /* increase volume */
6048 +#define CTRL_vol_down 0x0200 /* decrease volume */
6049 +#define CTRL_vol_set 0x0300 /* set volume */
6050 +#define CTRL_pause 0x0400 /* pause spc */
6051 +#define CTRL_resume 0x0500 /* resume spc clock */
6052 +#define CTRL_resume_spc 0x0001 /* resume spc soft pause */
6053 +#define CTRL_flush 0x0600 /* flush all buffers */
6054 +#define CTRL_int_enable 0x0700 /* enable status change ints */
6055 +#define CTRL_buff_free 0x0800 /* buffer remain count */
6056 +#define CTRL_buff_used 0x0900 /* buffer in use */
6057 +#define CTRL_speech 0x0a00 /* immediate speech change */
6058 +#define CTRL_SP_voice 0x0001 /* voice change */
6059 +#define CTRL_SP_rate 0x0002 /* rate change */
6060 +#define CTRL_SP_comma 0x0003 /* comma pause change */
6061 +#define CTRL_SP_period 0x0004 /* period pause change */
6062 +#define CTRL_SP_rate_delta 0x0005 /* delta rate change */
6063 +#define CTRL_SP_get_param 0x0006 /* return the desired parameter */
6064 +#define CTRL_last_index 0x0b00 /* get last index spoken */
6065 +#define CTRL_io_priority 0x0c00 /* change i/o priority */
6066 +#define CTRL_free_mem 0x0d00 /* get free paragraphs on module */
6067 +#define CTRL_get_lang 0x0e00 /* return bit mask of loaded languages */
6068 +#define CMD_test 0x2000 /* self-test request */
6069 +#define TEST_mask 0x0F00 /* isolate test field */
6070 +#define TEST_null 0x0000 /* no test requested */
6071 +#define TEST_isa_int 0x0100 /* assert isa irq */
6072 +#define TEST_echo 0x0200 /* make data in == data out */
6073 +#define TEST_seg 0x0300 /* set peek/poke segment */
6074 +#define TEST_off 0x0400 /* set peek/poke offset */
6075 +#define TEST_peek 0x0500 /* data out == *peek */
6076 +#define TEST_poke 0x0600 /* *peek == data in */
6077 +#define TEST_sub_code 0x00FF /* user defined test sub codes */
6078 +#define CMD_id 0x3000 /* return software id */
6079 +#define ID_null 0x0000 /* null id */
6080 +#define ID_kernel 0x0100 /* kernel code executing */
6081 +#define ID_boot 0x0200 /* boot code executing */
6082 +#define CMD_dma 0x4000 /* force a dma start */
6083 +#define CMD_reset 0x5000 /* reset module status */
6084 +#define CMD_sync 0x6000 /* kernel sync command */
6085 +#define CMD_char_in 0x7000 /* single character send */
6086 +#define CMD_char_out 0x8000 /* single character get */
6087 +#define CHAR_count_1 0x0100 /* one char in cmd_low */
6088 +#define CHAR_count_2 0x0200 /* the second in data_low */
6089 +#define CHAR_count_3 0x0300 /* the third in data_high */
6090 +#define CMD_spc_mode 0x9000 /* change spc mode */
6091 +#define CMD_spc_to_text 0x0100 /* set to text mode */
6092 +#define CMD_spc_to_digit 0x0200 /* set to digital mode */
6093 +#define CMD_spc_rate 0x0400 /* change spc data rate */
6094 +#define CMD_error 0xf000 /* severe error */
6095 +
6096 +enum { PRIMARY_DIC = 0, USER_DIC, COMMAND_DIC, ABBREV_DIC };
6097 +
6098 +#define DMA_single_in 0x01
6099 +#define DMA_single_out 0x02
6100 +#define DMA_buff_in 0x03
6101 +#define DMA_buff_out 0x04
6102 +#define DMA_control 0x05
6103 +#define DT_MEM_ALLOC 0x03
6104 +#define DT_SET_DIC 0x04
6105 +#define DT_START_TASK 0x05
6106 +#define DT_LOAD_MEM 0x06
6107 +#define DT_READ_MEM 0x07
6108 +#define DT_DIGITAL_IN 0x08
6109 +#define DMA_sync 0x06
6110 +#define DMA_sync_char 0x07
6111 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/genmap.c linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/genmap.c
6112 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/genmap.c 1969-12-31 16:00:00.000000000 -0800
6113 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/genmap.c 2003-07-21 05:26:38.000000000 -0700
6114 @@ -0,0 +1,204 @@
6115 +#include <stdlib.h>
6116 +#include <stdio.h>
6117 +#include <libgen.h>
6118 +#include <string.h>
6119 +#include <linux/version.h>
6120 +#include <ctype.h>
6121 +
6122 +int get_define(void);
6123 +
6124 +#define MAXKEYS 512
6125 +#define MAXKEYVAL 160
6126 +#define HASHSIZE 101
6127 +#define is_shift -3
6128 +#define is_spk -2
6129 +#define is_input -1
6130 +typedef struct st_key_init t_key_init;
6131 +struct st_key_init {
6132 + char *name;
6133 + int value, shift;
6134 +};
6135 +typedef struct st_key t_key;
6136 +struct st_key {
6137 + char *name;
6138 + t_key *next;
6139 + int value, shift;
6140 +};
6141 +unsigned char key_data[MAXKEYVAL][16], *kp;
6142 +
6143 +#include "mapdata.h"
6144 +t_key key_table[MAXKEYS];
6145 +t_key *extra_keys = key_table+HASHSIZE;
6146 +char buffer[256], filename[256];
6147 +FILE *infile;
6148 +char delims[] = "\t\n ";
6149 +char *def_name, *def_val, *cp;
6150 +int map_ver = 119; /* an arbitrary number so speakup can check */
6151 +int lc, shift_table[17];
6152 +int max_states = 1, flags = 0;
6153 +/* flags reserved for later, maybe for individual console maps */
6154 +
6155 +void open_input( char *name )
6156 +{
6157 + strcpy( filename, name );
6158 + if ( ( infile = fopen( filename, "r" ) ) == 0 ) {
6159 + fprintf( stderr, "can't open %s, version %d\n", filename, LINUX_VERSION_CODE );
6160 + exit( 1 );
6161 + }
6162 + lc = 0;
6163 +}
6164 +
6165 +int
6166 +oops( char *msg, char *info )
6167 +{
6168 + if ( info == NULL ) info = " ";
6169 + fprintf( stderr, "error: file %s line %d\n", filename, lc );
6170 + fprintf( stderr, "%s %s\n", msg, info );
6171 + exit( 1 );
6172 +}
6173 +
6174 +t_key *hash_name( char *name )
6175 +{
6176 + u_char *pn = (u_char *)name;
6177 + int hash = 0;
6178 + while ( *pn ) {
6179 + hash = ( hash * 17 ) & 0xfffffff;
6180 + if ( isupper( *pn ) ) *pn = tolower( *pn );
6181 + hash += ( int )*pn;
6182 + pn++;
6183 + }
6184 + hash %= HASHSIZE;
6185 + return &key_table[hash];
6186 +}
6187 +
6188 +t_key *find_key( char *name )
6189 +{
6190 + t_key *this = hash_name( name );
6191 + while ( this ) {
6192 + if ( !strcmp( name, this->name ) ) return this;
6193 + this = this->next;
6194 + }
6195 + return this;
6196 +}
6197 +
6198 +t_key *add_key( char *name, int value, int shift )
6199 +{
6200 + t_key *this = hash_name( name );
6201 + if ( extra_keys-key_table >= MAXKEYS )
6202 + oops( "out of key table space, enlarge MAXKEYS", NULL );
6203 + if ( this->name != NULL ) {
6204 + while ( this->next ) {
6205 + if ( !strcmp( name, this->name ) )
6206 + oops( "attempt to add duplicate key", name );
6207 + this = this->next;
6208 + }
6209 + this->next = extra_keys++;
6210 + this = this->next;
6211 + }
6212 + this->name = strdup( name );
6213 + this->value = value;
6214 + this->shift = shift;
6215 + return this;
6216 +}
6217 +
6218 +int get_shift_value( int state )
6219 +{
6220 + int i;
6221 + for ( i = 0; shift_table[i] != state; i++ ) {
6222 + if ( shift_table[i] == -1 ) {
6223 + if ( i >= 16 )
6224 + oops( "too many shift states", NULL );
6225 + shift_table[i] = state;
6226 + max_states = i+1;
6227 + break;
6228 + }
6229 + }
6230 + return i;
6231 +}
6232 +
6233 +int
6234 +main( int argc, char *argv[] )
6235 +{
6236 + int value, shift_state, i, spk_val = 0, lock_val = 0;
6237 + int max_key_used = 0, num_keys_used = 0;
6238 + t_key *this;
6239 + t_key_init *p_init;
6240 +char *argpath, *argname, *argcopy;
6241 +
6242 + bzero( key_table, sizeof( key_table ) );
6243 + bzero( key_data, sizeof( key_data ) );
6244 + shift_table[0] = 0;
6245 + for ( i = 1; i <= 16; i++ ) shift_table[i] = -1;
6246 + if ( argc < 2 ) {
6247 + fputs( "usage: genmap filename\n", stderr );
6248 + exit( 1 );
6249 + }
6250 + for ( p_init = init_key_data; p_init->name[0] != '.'; p_init++ )
6251 + add_key( p_init->name, p_init->value, p_init->shift );
6252 + open_input( argv[1] );
6253 + while ( fgets( buffer, 250, infile ) ) {
6254 + lc++;
6255 + value = shift_state = 0;
6256 + cp = strtok( buffer, delims );
6257 + if ( *cp == '#' ) continue;
6258 + while ( cp ) {
6259 + if ( *cp == '=' ) break;
6260 + this = find_key( cp );
6261 + if ( this == NULL )
6262 + oops( "unknown key/modifier", cp );
6263 + if ( this->shift == is_shift ) {
6264 + if ( value )
6265 + oops( "modifiers must come first", cp );
6266 + shift_state += this->value;
6267 + } else if ( this->shift == is_input )
6268 + value = this->value;
6269 + else oops( "bad modifier or key", cp );
6270 + cp = strtok( 0, delims );
6271 + }
6272 + if ( !cp ) oops( "no = found", NULL );
6273 + cp = strtok( 0, delims );
6274 + if ( !cp ) oops( "no speakup function after =", NULL );
6275 + this = find_key( cp );
6276 + if ( this == NULL || this->shift != is_spk )
6277 + oops( "invalid speakup function", cp );
6278 + i = get_shift_value( shift_state );
6279 + if ( key_data[value][i] ) {
6280 + while ( --cp > buffer )
6281 + if ( !*cp ) *cp = ' ';
6282 + oops( "two functions on same key combination", cp );
6283 + }
6284 + key_data[value][i] = (char)this->value;
6285 + if ( value > max_key_used ) max_key_used = value;
6286 + }
6287 + fclose( infile );
6288 + this = find_key( "spk_key" );
6289 + if ( this ) spk_val = this->value;
6290 + this = find_key( "spk_lock" );
6291 + if ( this ) lock_val = this->value;
6292 + for ( lc = 1; lc <= max_key_used; lc++ ) {
6293 + kp = key_data[lc];
6294 + if ( !memcmp( key_data[0], kp, 16 ) ) continue;
6295 + num_keys_used++;
6296 + for ( i = 0; i < max_states; i++ ) {
6297 + if ( kp[i] != spk_val&& kp[i] != lock_val ) continue;
6298 + shift_state = shift_table[i];
6299 + if ( ( shift_state&16 ) ) continue;
6300 + shift_state = get_shift_value( shift_state+16 );
6301 + kp[shift_state] = kp[i];
6302 +/* fill in so we can process the key up, as spk bit will be set */
6303 + }
6304 + }
6305 + printf( "\t%d, %d, %d,\n\t", map_ver, num_keys_used, max_states );
6306 + for ( i = 0; i < max_states; i++ )
6307 + printf( "%d, ", shift_table[i] );
6308 + printf( "%d,", flags );
6309 + for ( lc = 1; lc <= max_key_used; lc++ ) {
6310 + kp = key_data[lc];
6311 + if ( !memcmp( key_data[0], kp, 16 ) ) continue;
6312 + printf( "\n\t%d,", lc );
6313 + for ( i = 0; i < max_states; i++ )
6314 + printf( " %d,", (unsigned int)kp[i] );
6315 + }
6316 + printf( "\n\t0, %d\n", map_ver );
6317 + exit( 0 );
6318 +}
6319 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/install linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/install
6320 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/install 1969-12-31 16:00:00.000000000 -0800
6321 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/install 2005-04-19 09:26:21.000000000 -0700
6322 @@ -0,0 +1,57 @@
6323 +#!/bin/bash
6324 +
6325 +VERSION=v`head -2 /usr/src/linux/Makefile | \
6326 + awk '{ printf "%s",$3 }'`
6327 +
6328 +DIR=/usr/src/linux/drivers/char/speakup
6329 +
6330 +echo "Patching version $VERSION"
6331 +
6332 +if [ "$1" != "--debug" ]; then
6333 + SILENT=--silent
6334 +fi
6335 +
6336 +cp -R speakup /usr/src/linux/drivers/char/
6337 +cd /usr/src/linux
6338 +
6339 +# make .orig files
6340 +echo -n 'Creating .orig files ['
6341 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
6342 + patch=`echo $i | cut -f 1 -d ,`
6343 + filebase=`echo $i | cut -f 2 -d ,`
6344 +
6345 + mkdir -p `dirname $filebase`
6346 + if [ "$patch" == "1" ]; then
6347 + if [ ! -e $filebase.orig ]; then
6348 + echo -n .
6349 + cp $filebase $filebase.orig
6350 + fi
6351 + fi
6352 +done
6353 +echo '] done.'
6354 +
6355 +# apply patches
6356 +echo -n 'Patching files ['
6357 +for i in ${DIR}/diff-${VERSION}/*.patch; do
6358 + # skip dirs
6359 + [ -d $i ] && continue
6360 + echo -n p
6361 + writeloc=${i##$DIR\/diff-${VERSION}\/}
6362 + writeloc=${writeloc%.patch}
6363 + writeloc=${writeloc//^/\/}
6364 + patch $SILENT -f -p0 -o $writeloc $writeloc.orig $i
6365 +done
6366 +echo '] done.'
6367 +
6368 +# copy files
6369 +echo -n 'Copying files ['
6370 +for i in ${DIR}/diff-${VERSION}/*.copy; do
6371 + # skip dirs
6372 + [ -d $i ] && continue
6373 + echo -n c
6374 + writeloc=${i##$DIR\/diff-${VERSION}\/}
6375 + writeloc=${writeloc%.copy}
6376 + writeloc=${writeloc//^/\/}
6377 + cp $i $writeloc
6378 +done
6379 +echo '] done.'
6380 diff -Naurp linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/keyinfo.h linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/keyinfo.h
6381 --- linux-2.6.13-rc6-git13-gentoo/drivers/char/speakup/keyinfo.h 1969-12-31 16:00:00.000000000 -0800
6382 +++ linux-2.6.13-rc6-git13-gentoo-speakup/drivers/char/speakup/keyinfo.h 2003-11-12 12:41:34.000000000 -0800
6383 @@ -0,0 +1,119 @@
6384 +/* spk_priv.h
6385 + review functions for the speakup screen review package.
6386 + originally written by: Kirk Reiser and Andy Berdan.
6387 +
6388 + extensively modified by David Borowski.
6389 +
6390 + Copyright (C ) 1998 Kirk Reiser.
6391 + Copyright (C ) 2003 David Borowski.
6392 +
6393 + This program is free software; you can redistribute it and/or modify
6394 + it under the terms of the GNU General Public License as published by
6395 + the Free Software Foundation; either versio