replaces namespace fenrir with fenrirscreenreader
This commit is contained in:
121
src/fenrirscreenreader/utils/char_utils.py
Normal file
121
src/fenrirscreenreader/utils/char_utils.py
Normal file
@ -0,0 +1,121 @@
|
||||
#!/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Fenrir TTY screen reader
|
||||
# By Chrys, Storm Dragon, and contributers.
|
||||
|
||||
from fenrirscreenreader.core import debug
|
||||
|
||||
def getPrevChar(currX,currY, currText):
|
||||
lineBreak = False
|
||||
endOfScreen = False
|
||||
if currText == '':
|
||||
return -1, -1, '', endOfScreen, lineBreak
|
||||
wrappedLines = currText.split('\n')
|
||||
x = currX
|
||||
y = currY
|
||||
if x - 1 < 0:
|
||||
if y - 1 >= 0:
|
||||
y -= 1
|
||||
x = len(wrappedLines[y]) - 1
|
||||
lineBreak = True
|
||||
else:
|
||||
lineBreak = False
|
||||
endOfScreen = True
|
||||
else:
|
||||
x -= 1
|
||||
currChar = ''
|
||||
if not endOfScreen:
|
||||
currChar = wrappedLines[y][x]
|
||||
return x, y, currChar, endOfScreen, lineBreak
|
||||
|
||||
def getCurrentChar(currX,currY, currText):
|
||||
if currText == '':
|
||||
return -1, -1, ''
|
||||
wrappedLines = currText.split('\n')
|
||||
currChar = wrappedLines[currY][currX]
|
||||
return currX, currY, currChar
|
||||
|
||||
def getUpChar(currX,currY, currText):
|
||||
endOfScreen = False
|
||||
if currText == '':
|
||||
return -1, -1, '', endOfScreen
|
||||
wrappedLines = currText.split('\n')
|
||||
currY -= 1
|
||||
if currY < 0:
|
||||
currY = 0
|
||||
else:
|
||||
endOfScreen = True
|
||||
currChar = ''
|
||||
if not endOfScreen:
|
||||
currChar = wrappedLines[currY][currX]
|
||||
return currX, currY, currChar, endOfScreen
|
||||
|
||||
def getDownChar(currX,currY, currText):
|
||||
endOfScreen = False
|
||||
if currText == '':
|
||||
return -1, -1, '', endOfScreen
|
||||
wrappedLines = currText.split('\n')
|
||||
currY += 1
|
||||
if currY >= len(wrappedLines):
|
||||
currY = len(wrappedLines) -1
|
||||
else:
|
||||
endOfScreen = True
|
||||
currChar = ''
|
||||
if not endOfScreen:
|
||||
currChar = wrappedLines[currY][currX]
|
||||
return currX, currY, currChar, endOfScreen
|
||||
|
||||
def getLastCharInLine(currY, currText):
|
||||
endOfScreen = False
|
||||
if currText == '':
|
||||
return -1, -1, ''
|
||||
wrappedLines = currText.split('\n')
|
||||
currX = len(wrappedLines[currY].rstrip())-1
|
||||
if currX < 0:
|
||||
currX = 0
|
||||
currChar = wrappedLines[currY][currX]
|
||||
return currX, currY, currChar
|
||||
|
||||
def getNextChar(currX,currY, currText):
|
||||
lineBreak = False
|
||||
endOfScreen = False
|
||||
if currText == '':
|
||||
return -1, -1, '', endOfScreen, lineBreak
|
||||
wrappedLines = currText.split('\n')
|
||||
x = currX
|
||||
y = currY
|
||||
if x + 1 == len(wrappedLines[y]):
|
||||
if y + 1 < len(wrappedLines) - 1:
|
||||
y += 1
|
||||
x = 0
|
||||
lineBreak = True
|
||||
else:
|
||||
lineBreak = False
|
||||
endOfScreen = True
|
||||
else:
|
||||
x += 1
|
||||
currChar = ''
|
||||
if not endOfScreen:
|
||||
currChar = wrappedLines[y][x]
|
||||
return x, y, currChar, endOfScreen, lineBreak
|
||||
|
||||
def getPhonetic(currChar):
|
||||
if len(currChar) != 1:
|
||||
return currChar
|
||||
phoneticsDict = {
|
||||
"A":"alpha", "B":"bravo", "C":"charlie", "D":"delta", "E":"echo",
|
||||
"F":"foxtrot", "G":"golf", "H":"hotel", "I":"india", "J":"juliet",
|
||||
"K":"kilo", "L":"lima", "M":"mike", "N":"november", "O":"oscar",
|
||||
"P":"papa", "Q":"quebec", "R":"romeo", "S":"sierra", "T":"tango",
|
||||
"U":"uniform", "V":"victor", "W":"whisky", "X":"x ray",
|
||||
"Y":"yankee", "Z":"zulu"
|
||||
}
|
||||
try:
|
||||
phonChar = phoneticsDict[currChar.upper()]
|
||||
if currChar.isupper():
|
||||
phonChar = phonChar[0].upper() + phonChar[1:]
|
||||
return phonChar
|
||||
except:
|
||||
return currChar
|
||||
|
Reference in New Issue
Block a user