trouble with CVS and a request for votes

Kirk Reiser kirk at braille.uwo.ca
Sat Sep 29 13:56:41 EDT 2001


Hi Chuck and all:  Well let's talk a tad about the difficulty of
automatic speaking of cursor movement.  In dos and windows the screen
review program only has external access to the data as in interrupt
hooks or an os api.  At first glance you would expect that if you have
total control at the kernel level you would be laughing, right?
Wrong.  The kernel is absolutely not a sequential device as in you get
the key, you track the key, the screen handles the key, you say the
key.  Everything is handled through a series of interrupts which does
very fast rudimentary handling of the event and then schedules on a
bottom-half queue.  Okay, so what is a bottom-half queue.  It is a
routine which runs after the interrupt has happened by a timer.  It
keeps close attention to how much time is is using and reschedules if
the jobs are not all handled.  At the same time all of the standard
processing is also going on as normal.  As you can see we have already
induced asynchrony in the process.  This also happens with our
output.  So to cut to the chase, when identify the keystroke we don't
necessarily have any idea to when the exact time that keys event is/was
handled by the output routines.  So you track the cursor say what is
on the screen at that point and woops, the screen hasn't even got
close to making that change.  You just did the wrong thing at
absolutely the right time, wrong time, well which was it?  So, maybe
we want to be smart about it and set our own timer.  Okay, when? How
do we know whether we're saying the correct event or not?

I do not believe this is an insermountable problem.  I know however it
will take more examination of the system as a whole and I've already
spent extensive time on it.  The truth of it is I don't know myself
the best way to handle it.  So if you don't know, you put it aside and
work on the myriad other things which need to be done and come back to
the problem later.  Meantime you hope you gain a better understanding
on a clear way to handle the problem.

If someone thinks they can jump in and do a better job of it than me,
please don't hesitate to step up and fix it right.  Until I have a lot
of other things finished it has moved way down on the priority list.
It tracks perfectly.  It speaks correctly some of the time, and that's
all it will do for now.

BTW Chuck, it works worse under emacs than under pico or any other
editor because emacs has an anoying habbit of bouncing the cursor all
over the place whenever it crosses a tab-stop position.  When I'm
editing I almost always have speech output turned off with ins-enter.
It tracks perfectly then and I don't really care whether it speaks
every char or line.  I am very familiar with where the review keys are
and I use them when I want feedback.

  Kirk

-- 

Kirk Reiser				The Computer Braille Facility
e-mail: kirk at braille.uwo.ca		University of Western Ontario
phone: (519) 661-3061




More information about the Speakup mailing list