enhancements and Extended keybindings for the Freedom Scientific braile displays #2516

Closed
nvaccessAuto opened this Issue Jul 9, 2012 · 8 comments

1 participant

@nvaccessAuto

Reported by ragb on 2012-07-09 12:31
Current freedomScientific braille display driver only supports wizweels gestures. Although one can operate NVDA with only those (at least read braille) it is hard to do it efficiently, specialy with bigger displays.

Attached patchs adds the following:

  • Configures newer Focus displays (firmware version 3 or greater) to send extended key information. Adds support to the driver to recognize these keys (now just rocker bar keys)
  • Driver now only executes gestures when all keys are released (up). Do to the way that the driver sends key presses (a bit-masp of keys down when anykey changes) it is the only reliable way to correctly enter "chords" and multi-key gestures.
  • Maps navigation keys to there common function (panning, navigation by line, etc.) Adds some key combinations using the braille keyboard for convenience (most gathered from other braille display drivers).
  • Updates the userguide to reflects these changes (see the userGuide changes for the complit list of key bindings).

Extra comments and questions:

  • I didn't add flat review keybindg to the driver but I believe it would good for all drivers. If we create a custom braille flat review script (to not give speech output) I think it replaces most of the times something like the JAWS line mode (I don't know the JAWS line mode that good so... but the idea is there).
  • Focus display have a bunch of keys, and an extra line of routing buttons. If someone has ideas of how to use those keys that would be great. At lesat uses key combinations with the cursor routing buttons to perform mouse clicks, slections, and etc. Woud it be useful for anyone? Blocking #2556
@nvaccessAuto

Attachment focus-keybindings.patch added by ragb on 2012-07-09 12:32
Description:

@nvaccessAuto

Comment 1 by jteh on 2012-07-10 01:56
This looks fine to me, though Mick needs to give the final okay, since he is the original author. Just one nit: please move the binding for routing out of __init__ and into the gestureMap definition later since you have added it now.
Changes:
Milestone changed from None to 2012.3

@nvaccessAuto

Comment 2 by jteh on 2012-07-10 01:58
Also, please add a What's New entry under New Features.

@nvaccessAuto

Comment 3 by mdcurran on 2012-07-19 00:13
Looks real good to me. Is the ord('3') part safe? what kind of format does the firmware version use? i.e. no chance of it being 30 or something?
Also, I don't think keysDown and extendedKeysDown have to be global do they?

@nvaccessAuto

Comment 4 by ragb (in reply to comment 3) on 2012-07-19 11:00
Replying to mdcurran:

Looks real good to me. Is the ord('3') part safe? what kind of format does the firmware version use? i.e. no chance of it being 30 or something?

I adapted that code from the example present on FSDN, on fsbConfigure function. I guess the firmware version is a valid float representation (at least here it is 4.57), but I have no idea about older models. It may have strings or something after the number....
If this aproach is on FSDN, it should work... but who knows!

I'd leave it that way, but if you prefer I can make the comparison use floats.

Also, I don't think keysDown and extendedKeysDown have to be global do they?

No. Good catch.

@nvaccessAuto

Comment by jteh on 2012-07-26 00:10
(In #2556) To get this to work on smaller or larger displays, I guess we'll need to bind it at run-time based on the cell count.

@nvaccessAuto

Comment 6 by mdcurran on 2012-08-09 01:37
Merged in 89ce94c including changes discussed in this ticket.
Changes:
State: closed

@nvaccessAuto

Comment 7 by ragb (in reply to comment 6) on 2012-08-20 12:13
Replying to mdcurran:

Merged in 89ce94c including changes discussed in this ticket.

Thanks Mike. Looks really good. (Sorry for the delay, I was in vacations).

@nvaccessAuto nvaccessAuto added this to the 2012.3 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment