add next/pref char phoneteic

This commit is contained in:
chrys 2016-10-17 20:11:56 +02:00
parent ccc4a2776a
commit e65f880dfb
11 changed files with 100 additions and 139 deletions

4
TODO
View File

@ -34,6 +34,10 @@ https://wiki.gnome.org/Attic/LSR/ScratchPad/Braille/BrlAPI
per application onInput
- per application shortcuts
- implement commands
next_char_phonetic
prev_char_phonetic
next_word_phonetic
prev_word_phonetic
attributes_curr_char
command for run configurable scripts as subprocess/ pass environment[screenData]
toggle_highlighted_mode

View File

@ -14,11 +14,15 @@ KEY_FENRIR,KEY_ALT,KEY_2=present_last_line
KEY_KP5=review_curr_word
KEY_KP4=review_prev_word
KEY_KP6=review_next_word
KEY_SHIFT,KEY_KP5=curr_word_phonetic
KEY_SHIFT,KEY_KP5=review_curr_word_phonetic
#=review_prev_word_phonetic
#=review_next_word_phonetic
KEY_KP2=review_curr_char
KEY_KP1=review_prev_char
KEY_KP3=review_next_char
KEY_SHIFT,KEY_KP2=curr_char_phonetic
KEY_SHIFT,KEY_KP2=review_curr_char_phonetic
#=review_prev_char_phonetic
#=review_next_char_phonetic
#=review_up
#=review_down
KEY_KPDOT=cursor_position

View File

@ -14,7 +14,9 @@ KEY_FENRIR,KEY_ALT,KEY_2=present_last_line
KEY_FENRIR,KEY_K=review_curr_word
KEY_FENRIR,KEY_J=review_prev_word
KEY_FENRIR,KEY_L=review_next_word
2,KEY_FENRIR,KEY_K=curr_word_phonetic
2,KEY_FENRIR,KEY_K=review_curr_word_phonetic
#=review_prev_word_phonetic
#=review_next_word_phonetic
KEY_FENRIR,KEY_COMMA=review_curr_char
KEY_FENRIR,KEY_M=review_prev_char
KEY_FENRIR,KEY_DOT=review_next_char

View File

@ -15,10 +15,14 @@ KEY_KP5=review_curr_word
KEY_KP4=review_prev_word
KEY_KP6=review_next_word
KEY_SHIFT,KEY_KP5=curr_word_phonetic
KEY_KP2=review_curr_char
KEY_KP1=review_prev_char
KEY_KP3=review_next_char
KEY_SHIFT,KEY_KP2=curr_char_phonetic
KEY_SHIFT,KEY_KP4=review_prev_word_phonetic
KEY_SHIFT,KEY_KP6=review_next_word_phonetic
#KEY_KP2=review_curr_char
#KEY_KP1=review_prev_char
#KEY_KP3=review_next_char
KEY_KP2=review_curr_char_phonetic
KEY_KP1=review_prev_char_phonetic
KEY_KP3=review_next_char_phonetic
#=review_up
#=review_down
KEY_KPDOT=cursor_position

View File

@ -57,14 +57,14 @@ module=espeak
voice=
# Select the language you want fenrir to use.
language=english-us
language=de
# Read new text as it happens?
autoReadIncoming=True
[braille]
#braille is not implemented yet
enabled=False
enabled=True
driver=brlapi
layout=en
@ -83,7 +83,7 @@ device=AUTO
grabDevices=True
ignoreShortcuts=False
# the current shortcut layout located in /etc/fenrir/keyboard
keyboardLayout=desktop
keyboardLayout=test
# echo chars while typing.
charEcho=False
# echo deleted chars
@ -96,9 +96,9 @@ interruptOnKeyPress=False
doubleTapTimeout=0.2
[general]
debugLevel=0
debugLevel=1
punctuationProfile=default
punctuationLevel=some
punctuationLevel=Some
numberOfClipboards=10
emoticons=True
# define the current fenrir key

View File

@ -1,116 +0,0 @@
[sound]
# Turn sound on or off:
enabled=True
# Select the driver used to play sounds, choices are generic and gstreamer.
# Sox is the default.
driver=generic
# Sound themes. This is the pack of sounds used for sound alerts.
# Sound packs may be located at /usr/share/sounds
# For system wide availability, or ~/.local/share/fenrir/sounds
# For the current user.
theme=default
# Sound volume controls how loud the sounds for your chosen soundpack are.
# 0 is quietest, 1.0 is loudest.
volume=1.0
# shell commands for generic sound driver
# the folowing variable are substituded
# fenrirVolume = the current volume setting
# fenrirSoundFile = the soundfile for an soundicon
# fenrirFrequence = the frequence to play
# fenrirDuration = the duration of the frequence
# the following command is used for play a soundfile
genericPlayFileCommand=play -q -v fenrirVolume fenrirSoundFile
#the following command is used for generating a frequence beep
genericFrequencyCommand=play -q -v fenrirVolume -n -c1 synth fenrirDuration sine fenrirFrequence
[speech]
# Turn speech on or off:
enabled=True
# Select speech driver, options are speechd (default) or espeak:
driver=speechd
#driver=espeak
# The rate selects how fast fenrir will speak. Options range from 0, slowest, to 1.0, fastest.
rate=0.45
# Pitch controls the pitch of the voice, select from 0, lowest, to 1.0, highest.
pitch=0.5
# Pitch for capital letters
capitalPitch=0.9
# Volume controls the loudness of the voice, select from 0, quietest, to 1.0, loudest.
volume=1.0
# Module is used for speech-dispatcher, to select the speech module you want to use.
# Consult speech-dispatcher's configuration and help ti find out which modules are available.
# The default is espeak.
module=espeak
# Voice selects the varient you want to use, for example, f5 will use the female voice #5 in espeak,
# or if using the espeak module in speech-dispatcher. To find out which voices are available, consult the documentation provided with your chosen synthesizer.
voice=
# Select the language you want fenrir to use.
language=de
# Read new text as it happens?
autoReadIncoming=True
[braille]
#braille is not implemented yet
enabled=True
driver=brlapi
layout=en
[screen]
driver=linux
encoding=cp850
screenUpdateDelay=0.4
suspendingScreen=
autodetectSuspendingScreen=True
[keyboard]
driver=evdev
# filter input devices AUTO, ALL or a DEVICE NAME
device=AUTO
# gives fenrir exclusive access to the keyboard and let consume keystrokes. just disable on problems.
grabDevices=True
ignoreShortcuts=False
# the current shortcut layout located in /etc/fenrir/keyboard
keyboardLayout=test
# echo chars while typing.
charEcho=False
# echo deleted chars
charDeleteEcho=True
# echo word after pressing space
wordEcho=False
# interrupt speech on any keypress
interruptOnKeyPress=False
# timeout for double tap in sec
doubleTapTimeout=0.2
[general]
debugLevel=1
punctuationProfile=default
punctuationLevel=Some
numberOfClipboards=10
emoticons=True
# define the current fenrir key
fenrirKeys=KEY_KP0,KEY_META
timeFormat=%H:%M:%P
dateFormat=%A, %B %d, %Y
autoSpellCheck=True
spellCheckLanguage=en_US
[promote]
enabled=True
inactiveTimeoutSec=120
list=

View File

@ -15,19 +15,19 @@ class command():
def shutdown(self):
pass
def getDescription(self):
return 'phonetically presents the current character'
return 'set review and phonetically presents the current character'
def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
x, y, currChar = \
char_utils.getCurrentChar(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText'])
self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], currChar = \
char_utils.getCurrentChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currChar.isspace():
self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True)
else:
currChar = char_utils.getPhonetic(currChar)
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True)
self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, announceCapital=True)
def setCallback(self, callback):
pass

View File

@ -19,9 +19,9 @@ class command():
return 'phonetically spells the current word'
def run(self):
cursorPos = self.env['runtime']['cursorManager'].getReviewOrTextCursor()
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
x, y, currWord = \
word_utils.getCurrentWord(cursorPos['x'], cursorPos['y'], self.env['screenData']['newContentText'])
word_utils.getCurrentWord(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if currWord.isspace():
self.env['runtime']['outputManager'].presentText("blank", interrupt=True)

View File

@ -18,10 +18,7 @@ class command():
return 'moves review to the next character and presents it'
def run(self):
self.env['screenData']['oldCursorReview'] = self.env['screenData']['newCursorReview']
if not self.env['screenData']['newCursorReview']:
self.env['screenData']['newCursorReview'] = self.env['screenData']['newCursor'].copy()
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], currChar = \
char_utils.getNextChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])

View File

@ -0,0 +1,33 @@
#!/bin/python
# -*- coding: utf-8 -*-
# Fenrir TTY screen reader
# By Chrys, Storm Dragon, and contributers.
from core import debug
from utils import char_utils
class command():
def __init__(self):
pass
def initialize(self, environment):
self.env = environment
def shutdown(self):
pass
def getDescription(self):
return 'phonetically presents the next character and set review to it'
def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], nextChar = \
char_utils.getNextChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if nextChar.isspace():
self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True)
else:
nextChar = char_utils.getPhonetic(nextChar)
self.env['runtime']['outputManager'].presentText(nextChar ,interrupt=True, announceCapital=True)
def setCallback(self, callback):
pass

View File

@ -0,0 +1,33 @@
#!/bin/python
# -*- coding: utf-8 -*-
# Fenrir TTY screen reader
# By Chrys, Storm Dragon, and contributers.
from core import debug
from utils import char_utils
class command():
def __init__(self):
pass
def initialize(self, environment):
self.env = environment
def shutdown(self):
pass
def getDescription(self):
return 'phonetically presents the previous character and set review to it'
def run(self):
self.env['runtime']['cursorManager'].enterReviewModeCurrTextCursor()
self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], nextChar = \
char_utils.getPrevChar(self.env['screenData']['newCursorReview']['x'], self.env['screenData']['newCursorReview']['y'], self.env['screenData']['newContentText'])
if nextChar.isspace():
self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True)
else:
nextChar = char_utils.getPhonetic(nextChar)
self.env['runtime']['outputManager'].presentText(nextChar ,interrupt=True, announceCapital=True)
def setCallback(self, callback):
pass