[orca] Pass along obj and args to voice(), include language and dialect for web
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Pass along obj and args to voice(), include language and dialect for web
- Date: Thu, 6 Jan 2022 14:11:55 +0000 (UTC)
commit 946d9626b9f098345f0aab18d6ea49cad96c64c5
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Thu Jan 6 15:09:16 2022 +0100
Pass along obj and args to voice(), include language and dialect for web
This will eventually be used for on-the-fly language switching. No user
experienced changes in Orca's behavior are expected at this time.
.../scripts/apps/gnome-panel/speech_generator.py | 4 +-
src/orca/scripts/apps/soffice/speech_generator.py | 24 +--
.../J2SE-access-bridge/speech_generator.py | 4 +-
.../scripts/toolkits/WebKitGtk/speech_generator.py | 7 +-
src/orca/scripts/web/speech_generator.py | 47 ++---
src/orca/speech_generator.py | 210 +++++++++++----------
6 files changed, 153 insertions(+), 143 deletions(-)
---
diff --git a/src/orca/scripts/apps/gnome-panel/speech_generator.py
b/src/orca/scripts/apps/gnome-panel/speech_generator.py
index 1e9e5e106..e2c542279 100644
--- a/src/orca/scripts/apps/gnome-panel/speech_generator.py
+++ b/src/orca/scripts/apps/gnome-panel/speech_generator.py
@@ -47,13 +47,13 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
if nothing can be found.
"""
- acss = self.voice(speech_generator.DEFAULT)
+ acss = self.voice(speech_generator.DEFAULT, obj=obj, **args)
role = args.get('role', obj.getRole())
if role == pyatspi.ROLE_FRAME:
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
else:
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
result = speech_generator.SpeechGenerator.\
_generateName(self, obj, **args)
diff --git a/src/orca/scripts/apps/soffice/speech_generator.py
b/src/orca/scripts/apps/soffice/speech_generator.py
index 781127dca..e362c1f91 100644
--- a/src/orca/scripts/apps/soffice/speech_generator.py
+++ b/src/orca/scripts/apps/soffice/speech_generator.py
@@ -92,7 +92,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
and an empty array will be returned if no label can be found.
"""
result = []
- acss = self.voice(speech_generator.DEFAULT)
+ acss = self.voice(speech_generator.DEFAULT, obj=obj, **args)
override = self.__overrideParagraph(obj, **args)
label = self._script.utilities.displayedLabel(obj) or ""
if not label and override:
@@ -117,7 +117,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# can be removed.
if obj.name:
result = [obj.name]
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
return super()._generateName(obj, **args)
@@ -132,7 +132,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
label = self._script.utilities.displayedLabel(obj) or obj.name
if label:
result.append(label)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
name = obj.name
if label == name or not name:
@@ -142,7 +142,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
if name:
result.append(name)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
@@ -150,7 +150,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
"""Gets the label or the name if the label is not preset."""
result = []
- acss = self.voice(speech_generator.DEFAULT)
+ acss = self.voice(speech_generator.DEFAULT, obj=obj, **args)
override = self.__overrideParagraph(obj, **args)
# Treat a paragraph which is serving as a text entry in a dialog
# as a text object.
@@ -214,7 +214,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
if obj.description:
# The description of some OOo paragraphs consists of the name
# and the displayed text, with punctuation added. Try to spot
@@ -249,7 +249,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# together in the scripts. In addition, the voice crap needs to go
# here. Then it needs to be removed from the scripts.
[text, caretOffset, startOffset] = self._script.getTextLineAtCaret(obj)
- voice = self.voice(string=text)
+ voice = self.voice(string=text, obj=obj, **args)
text = self._script.utilities.adjustForLinks(obj, text, startOffset)
text = self._script.utilities.adjustForRepeats(text)
if not text:
@@ -263,7 +263,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
def _generateToggleState(self, obj, **args):
"""Treat toggle buttons in the toolbar specially. This is so we can
have more natural sounding speech such as "bold on", "bold off", etc."""
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
result = []
role = args.get('role', obj.getRole())
if role == pyatspi.ROLE_TOGGLE_BUTTON \
@@ -299,7 +299,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
text = self._script.utilities.displayedText(rowHeader)
if text:
result.append(text)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
@@ -321,7 +321,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
text = self._script.utilities.displayedText(columnHeader)
if text:
result.append(text)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
@@ -337,7 +337,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
try:
text = obj.queryText()
objectText = \
@@ -368,7 +368,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
text = self._script.utilities.displayedText(inputLine)
if text and text.startswith("="):
result = [messages.HAS_FORMULA]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
return []
diff --git a/src/orca/scripts/toolkits/J2SE-access-bridge/speech_generator.py
b/src/orca/scripts/toolkits/J2SE-access-bridge/speech_generator.py
index a7c7545e7..632596339 100644
--- a/src/orca/scripts/toolkits/J2SE-access-bridge/speech_generator.py
+++ b/src/orca/scripts/toolkits/J2SE-access-bridge/speech_generator.py
@@ -91,7 +91,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
if obj and obj.getState().contains(pyatspi.STATE_EXPANDED) \
and obj.getRole() == pyatspi.ROLE_LABEL and obj.childCount:
result.append(messages.itemCount(obj.childCount))
@@ -123,7 +123,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
self, obj, **args)
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
name = self._generateName(obj)
position = -1
index = total = 0
diff --git a/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
b/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
index 256c27e1c..f9784e83b 100644
--- a/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
+++ b/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
@@ -74,7 +74,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
label, objects = self._script.labelInference.infer(obj)
if label:
result.append(label)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
@@ -96,7 +96,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
role = args.get('role', obj.getRole())
force = args.get('force', False)
@@ -132,7 +132,6 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# If this is a link with a child which is an image, we
# want to indicate that.
#
- acss = self.voice(speech_generator.HYPERLINK)
result.append(self.getLocalizedRoleName(obj[0]))
result.extend(acss)
@@ -186,7 +185,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
self, obj, **args)
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
mnemonic, shortcut, accelerator = \
self._script.utilities.mnemonicShortcutAccelerator(obj)
if shortcut:
diff --git a/src/orca/scripts/web/speech_generator.py b/src/orca/scripts/web/speech_generator.py
index 3dcc74082..09b35fab9 100644
--- a/src/orca/scripts/web/speech_generator.py
+++ b/src/orca/scripts/web/speech_generator.py
@@ -147,7 +147,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
result = [messages.HAS_POPUP_TREE]
if result:
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
@@ -164,7 +164,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
args['stringType'] = 'clickable'
if self._script.utilities.isClickableElement(obj):
result = [self._script.formatting.getString(**args)]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
return []
@@ -215,7 +215,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
args['stringType'] = 'haslongdesc'
if self._script.utilities.hasLongDesc(obj):
result = [self._script.formatting.getString(**args)]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
return []
@@ -236,7 +236,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
args['stringType'] = 'hasdetails'
result = [self._script.formatting.getString(**args) % toPresent]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
def _generateAllDetails(self, obj, **args):
@@ -253,19 +253,19 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
args['stringType'] = 'hasdetails'
result = [self._script.formatting.getString(**args) % ""]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
result = []
for o in objs:
result.append(self.getLocalizedRoleName(o))
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
string = self._script.utilities.expandEOCs(o)
if not string.strip():
continue
result.append(string)
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
result.extend(self._generatePause(o))
return result
@@ -301,7 +301,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
words = words[0:5] + ['...']
result.append(self._script.formatting.getString(**objArgs) % " ".join(words))
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
result.extend(self._generatePause(o, **objArgs))
return result
@@ -342,7 +342,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
name = self._script.utilities.verbalizeAllPunctuation(name)
result = [name]
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
if obj.getRole() == pyatspi.ROLE_CHECK_BOX:
@@ -392,7 +392,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
name = name.strip()
result = [name]
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
return super()._generateName(obj, **args)
@@ -407,7 +407,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
label, objects = self._script.utilities.inferLabelFor(obj)
if label:
result = [label]
- result.extend(self.voice(speech_generator.DEFAULT))
+ result.extend(self.voice(speech_generator.DEFAULT, obj=obj, **args))
return result
return super()._generateLabel(obj, **args)
@@ -432,7 +432,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
if self._script.utilities.inDocumentContent(obj) \
and not self._script.utilities.inDocumentContent(orca_state.locusOfFocus):
result = ['']
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
return super()._generateLeaving(obj, **args)
@@ -464,7 +464,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = [messages.listItemCount(setsize)]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
# TODO - JD: Yet another dumb generator method we should kill.
@@ -498,7 +498,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = []
- acss = self.voice(speech_generator.SYSTEM)
+ acss = self.voice(speech_generator.SYSTEM, obj=obj, **args)
roledescription = self._script.utilities.getRoleDescription(obj)
if roledescription:
@@ -619,7 +619,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
return []
result = [string]
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
def _generateSiteDescription(self, obj, **args):
@@ -653,7 +653,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
result.append(messages.LINK_DIFFERENT_SITE)
if result:
- result.extend(self.voice(speech_generator.HYPERLINK))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
@@ -711,7 +711,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
stringType='groupindex') \
% {"index" : position,
"total" : total})
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
def _generateUnselectedCell(self, obj, **args):
@@ -729,16 +729,16 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
label = self._script.utilities.labelForCellCoordinates(obj)
if label:
result.append(label)
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
row, col = self._script.utilities.coordinatesForCell(obj)
if self._script.utilities.cellRowChanged(obj):
result.append(messages.TABLE_ROW % (row + 1))
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
if self._script.utilities.cellColumnChanged(obj):
result.append(messages.TABLE_COLUMN % (col + 1))
- result.extend(self.voice(speech_generator.SYSTEM))
+ result.extend(self.voice(speech_generator.SYSTEM, obj=obj, **args))
return result
@@ -787,6 +787,11 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
document = self._script.utilities.getTopLevelDocumentForObject(obj)
args['priorObj'] = self._script.utilities.getPriorContext(document)[0]
+ start = args.get("startOffset", 0)
+ end = args.get("endOffset", -1)
+ args["language"], args["dialect"] = \
+ self._script.utilities.getLanguageAndDialectForSubstring(obj, start, end)
+
if not result:
result = list(filter(lambda x: x, super().generateSpeech(obj, **args)))
@@ -824,6 +829,6 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
string = ""
else:
string = messages.BLANK
- result = [string, self.voice(speech_generator.DEFAULT)]
+ result = [string, self.voice(speech_generator.DEFAULT, **args)]
return result
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 9b789ce6a..021c8227a 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -97,13 +97,13 @@ class SpeechGenerator(generator.Generator):
def _getACSS(self, obj, string):
if obj.getRole() == pyatspi.ROLE_LINK:
- acss = self.voice(HYPERLINK)
+ acss = self.voice(HYPERLINK, obj=obj)
elif isinstance(string, str) \
and string.isupper() \
and string.strip().isalpha():
- acss = self.voice(UPPERCASE)
+ acss = self.voice(UPPERCASE, obj=obj)
else:
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj)
return acss
@@ -174,9 +174,9 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
else:
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
else:
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result = generator.Generator._generateName(self, obj, **args)
if result:
result.extend(acss)
@@ -188,7 +188,7 @@ class SpeechGenerator(generator.Generator):
method of the script utility, and an empty array will be returned if
no label can be found.
"""
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result = generator.Generator._generateLabel(self, obj, **args)
if result:
result.extend(acss)
@@ -200,7 +200,7 @@ class SpeechGenerator(generator.Generator):
If the name cannot be found, an empty array will be returned.
"""
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result.extend(self._generateLabel(obj, **args))
if not result:
try:
@@ -225,7 +225,7 @@ class SpeechGenerator(generator.Generator):
the assumption being that the user was able to see the text prior
to giving the widget focus.
"""
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result = generator.Generator._generatePlaceholderText(self, obj, **args)
if result:
result.extend(acss)
@@ -277,7 +277,7 @@ class SpeechGenerator(generator.Generator):
if priorObj == obj:
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateDescription(self, obj, **args)
if result:
result.extend(acss)
@@ -293,7 +293,7 @@ class SpeechGenerator(generator.Generator):
if not _settingsManager.getSetting('speakDescription'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateImageDescription(self, obj, **args)
if result:
result.extend(acss)
@@ -304,7 +304,7 @@ class SpeechGenerator(generator.Generator):
represent the read only state of this object, but only if it
is read only (i.e., it is a text area that cannot be edited).
"""
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateReadOnly(self, obj, **args)
if result:
result.extend(acss)
@@ -316,7 +316,7 @@ class SpeechGenerator(generator.Generator):
== settings.VERBOSITY_LEVEL_BRIEF:
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateHasPopup(self, obj, **args)
if result:
result.extend(acss)
@@ -328,7 +328,7 @@ class SpeechGenerator(generator.Generator):
== settings.VERBOSITY_LEVEL_BRIEF:
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateClickable(self, obj, **args)
if result:
result.extend(acss)
@@ -338,7 +338,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateHasLongDesc(self, obj, **args)
if result:
result.extend(acss)
@@ -348,7 +348,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateHasDetails(self, obj, **args)
if result:
result.extend(acss)
@@ -358,7 +358,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateDetailsFor(self, obj, **args)
if result:
result.extend(acss)
@@ -368,7 +368,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateAllDetails(self, obj, **args)
if result:
result.extend(acss)
@@ -385,11 +385,11 @@ class SpeechGenerator(generator.Generator):
result = []
if self._script.utilities.isFirstItemInInlineContentSuggestion(obj):
result.extend([object_properties.ROLE_CONTENT_SUGGESTION])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generatePause(obj, **args))
result.extend([messages.CONTENT_DELETION_START])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateDeletionEnd(self, obj, **args):
@@ -403,12 +403,12 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.CONTENT_DELETION_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
if self._script.utilities.isLastItemInInlineContentSuggestion(obj):
result.extend(self._generatePause(obj, **args))
result.extend([messages.CONTENT_SUGGESTION_END])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
container = pyatspi.findAncestor(obj, self._script.utilities.hasDetails)
if self._script.utilities.isContentSuggestion(container):
@@ -428,11 +428,11 @@ class SpeechGenerator(generator.Generator):
result = []
if self._script.utilities.isFirstItemInInlineContentSuggestion(obj):
result.extend([object_properties.ROLE_CONTENT_SUGGESTION])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generatePause(obj, **args))
result.extend([messages.CONTENT_INSERTION_START])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateInsertionEnd(self, obj, **args):
@@ -446,12 +446,12 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.CONTENT_INSERTION_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
if self._script.utilities.isLastItemInInlineContentSuggestion(obj):
result.extend(self._generatePause(obj, **args))
result.extend([messages.CONTENT_SUGGESTION_END])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
container = pyatspi.findAncestor(obj, self._script.utilities.hasDetails)
if self._script.utilities.isContentSuggestion(container):
@@ -472,11 +472,11 @@ class SpeechGenerator(generator.Generator):
roledescription = self._script.utilities.getRoleDescription(obj)
if roledescription:
result.append(roledescription)
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generatePause(obj, **args))
result.append(messages.CONTENT_MARK_START)
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateMarkEnd(self, obj, **args):
@@ -490,7 +490,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.CONTENT_MARK_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateSuggestionStart(self, obj, **args):
@@ -498,14 +498,14 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.CONTENT_SUGGESTION_START]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateAvailability(self, obj, **args):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateAvailability(self, obj, **args)
if result:
result.extend(acss)
@@ -515,7 +515,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateInvalid(self, obj, **args)
if result:
result.extend(acss)
@@ -525,7 +525,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateRequired(self, obj, **args)
if result:
result.extend(acss)
@@ -547,7 +547,7 @@ class SpeechGenerator(generator.Generator):
settings.VERBOSITY_LEVEL_BRIEF:
return []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
result = generator.Generator._generateTable(self, obj, **args)
if result:
result.extend(acss)
@@ -591,7 +591,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
role = args.get('role', obj.getRole())
doNotPresent = [pyatspi.ROLE_UNKNOWN,
@@ -686,7 +686,7 @@ class SpeechGenerator(generator.Generator):
relation.
"""
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
visibleOnly = not self._script.utilities.isStatusBarNotification(obj)
minimumWords = 1
@@ -721,7 +721,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator._generateCheckedState(self, obj, **args)
if result:
result.extend(acss)
@@ -736,7 +736,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator._generateExpandableState(self, obj, **args)
if result:
result.extend(acss)
@@ -746,7 +746,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = super()._generateCheckedStateIfCheckable(obj, **args)
if result:
result.extend(acss)
@@ -760,7 +760,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator.\
_generateMenuItemCheckedState(self, obj, **args)
if result:
@@ -776,7 +776,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = super()._generateMultiselectableState(obj, **args)
if result:
result.extend(acss)
@@ -791,7 +791,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator._generateRadioState(self, obj, **args)
if result:
result.extend(acss)
@@ -802,7 +802,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator._generateSwitchState(self, obj, **args)
if result:
result.extend(acss)
@@ -817,7 +817,7 @@ class SpeechGenerator(generator.Generator):
if _settingsManager.getSetting('onlySpeakDisplayedText'):
return []
- acss = self.voice(STATE)
+ acss = self.voice(STATE, obj=obj, **args)
result = generator.Generator._generateToggleState(self, obj, **args)
if result:
result.extend(acss)
@@ -843,7 +843,7 @@ class SpeechGenerator(generator.Generator):
the link associated with obj.
"""
result = []
- acss = self.voice(HYPERLINK)
+ acss = self.voice(HYPERLINK, obj=obj, **args)
# Get the URI for the link of interest and parse it. The parsed
# URI is returned as a tuple containing six components:
# scheme://netloc/path;parameters?query#fragment.
@@ -898,7 +898,7 @@ class SpeechGenerator(generator.Generator):
pointed to by the URI of the link associated with obj.
"""
result = []
- acss = self.voice(HYPERLINK)
+ acss = self.voice(HYPERLINK, obj=obj, **args)
link_uri = self._script.utilities.uri(obj)
if link_uri:
link_uri_info = urllib.parse.urlparse(link_uri)
@@ -935,7 +935,7 @@ class SpeechGenerator(generator.Generator):
obj.
"""
result = []
- acss = self.voice(HYPERLINK)
+ acss = self.voice(HYPERLINK, obj=obj, **args)
sizeString = ""
uri = self._script.utilities.uri(obj)
if not uri:
@@ -972,7 +972,7 @@ class SpeechGenerator(generator.Generator):
it exists. Otherwise, an empty array is returned.
"""
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
try:
image = obj.queryImage()
except:
@@ -995,7 +995,7 @@ class SpeechGenerator(generator.Generator):
result = super()._generateColumnHeader(obj, **args)
if result:
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
return result
@@ -1005,14 +1005,14 @@ class SpeechGenerator(generator.Generator):
result = super()._generateRowHeader(obj, **args)
if result:
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
return result
def _generateSortOrder(self, obj, **args):
result = super()._generateSortOrder(obj, **args)
if result:
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -1076,7 +1076,7 @@ class SpeechGenerator(generator.Generator):
cell itself. The string, 'blank', is added for empty cells.
"""
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
oldRole = self._overrideRole('REAL_ROLE_TABLE_CELL', args)
result.extend(self.generate(obj, **args))
self._restoreRole(oldRole, args)
@@ -1107,7 +1107,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [object_properties.STATE_UNSELECTED_LIST_ITEM]
- result.extend(self.voice(STATE))
+ result.extend(self.voice(STATE, obj=obj, **args))
return result
@@ -1152,7 +1152,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [object_properties.STATE_UNSELECTED_TABLE_CELL]
- result.extend(self.voice(STATE))
+ result.extend(self.voice(STATE, obj=obj, **args))
return result
@@ -1164,7 +1164,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
col = -1
if obj.parent.getRole() == pyatspi.ROLE_TABLE_CELL:
obj = obj.parent
@@ -1191,7 +1191,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
row = -1
if obj.parent.getRole() == pyatspi.ROLE_TABLE_CELL:
obj = obj.parent
@@ -1220,7 +1220,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
if obj.parent.getRole() == pyatspi.ROLE_TABLE_CELL:
obj = obj.parent
parent = obj.parent
@@ -1256,7 +1256,7 @@ class SpeechGenerator(generator.Generator):
if self._script.utilities.isLastCell(obj):
result = [messages.TABLE_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
return []
@@ -1277,7 +1277,7 @@ class SpeechGenerator(generator.Generator):
if args.get('inMouseReview') and obj.getState().contains(pyatspi.STATE_EDITABLE):
return []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result = generator.Generator._generateCurrentLineText(self, obj, **args)
if not (result and result[0]):
return []
@@ -1301,7 +1301,7 @@ class SpeechGenerator(generator.Generator):
if result and result[0]:
return result
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
result = generator.Generator._generateDisplayedText(self, obj, **args)
if not (result and result[0]):
return []
@@ -1432,7 +1432,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
[line, startOffset, endOffset, selected] = \
self._getTextInformation(obj)
@@ -1458,7 +1458,7 @@ class SpeechGenerator(generator.Generator):
except NotImplementedError:
return []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
[line, startOffset, endOffset, selected] = \
self._getTextInformation(obj)
@@ -1506,7 +1506,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
[line, startOffset, endOffset, selected] = \
self._getTextInformation(obj)
@@ -1526,7 +1526,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
try:
textObj = obj.queryText()
except:
@@ -1576,13 +1576,13 @@ class SpeechGenerator(generator.Generator):
return []
result = [description]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateNestingLevel(self, obj, **args):
result = super()._generateNestingLevel(obj, **args)
if result:
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -1605,7 +1605,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
oldLevel = self._script.utilities.nodeLevel(args.get('priorObj', None))
newLevel = self._script.utilities.nodeLevel(obj)
if (oldLevel != newLevel) and (newLevel >= 0):
@@ -1622,7 +1622,7 @@ class SpeechGenerator(generator.Generator):
def _generateValue(self, obj, **args):
result = super()._generateValue(obj, **args)
if result:
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
return result
@@ -1638,7 +1638,7 @@ class SpeechGenerator(generator.Generator):
percentValue = self._script.utilities.getValueAsPercent(obj)
if percentValue is not None:
result = [messages.percentage(percentValue)]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
return []
@@ -1663,7 +1663,7 @@ class SpeechGenerator(generator.Generator):
# AT-SPI method calls.]]]
#
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
priorObj = args.get('priorObj', None)
if obj and obj.getRole() == pyatspi.ROLE_RADIO_BUTTON:
radioGroupLabel = None
@@ -1701,7 +1701,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
childNodes = self._script.utilities.childNodes(obj)
children = len(childNodes)
if children:
@@ -1733,7 +1733,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
hasItems = False
for child in obj:
state = child.getState()
@@ -1757,7 +1757,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
if not obj.childCount:
result.append(messages.ZERO_ITEMS)
result.extend(acss)
@@ -1798,7 +1798,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
childCount = container.childCount
selectedCount = len(self._script.utilities.selectedChildren(container))
result.append(messages.selectedItemsCount(selectedCount, childCount))
@@ -1843,7 +1843,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
# If this application has more than one unfocused alert or
# dialog window, then speak '<m> unfocused dialogs'
# to let the user know.
@@ -2043,7 +2043,7 @@ class SpeechGenerator(generator.Generator):
else:
result = ['']
if result:
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -2285,7 +2285,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
position = -1
total = -1
@@ -2333,7 +2333,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
position, total = self._script.utilities.getPositionAndSetSize(obj, **args)
if position < 0 or total < 0:
return []
@@ -2357,7 +2357,7 @@ class SpeechGenerator(generator.Generator):
if acc != obj:
number, count = self.getProgressBarNumberAndCount(obj)
result = [messages.PROGRESS_BAR_NUMBER % (number)]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -2370,7 +2370,7 @@ class SpeechGenerator(generator.Generator):
percent = self._script.utilities.getValueAsPercent(obj)
if percent is not None:
result.append(messages.percentage(percent))
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -2398,7 +2398,7 @@ class SpeechGenerator(generator.Generator):
name = self._generateName(button)
if name:
result.append(messages.DEFAULT_BUTTON_IS % name[0])
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -2442,7 +2442,7 @@ class SpeechGenerator(generator.Generator):
any unfocused dialog boxes.
"""
result = []
- acss = self.voice(DEFAULT)
+ acss = self.voice(DEFAULT, obj=obj, **args)
frame, dialog = self._script.utilities.frameAndDialog(obj)
if frame:
frameResult = self._generateLabelAndName(frame)
@@ -2493,7 +2493,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
[mnemonic, shortcut, accelerator] = \
self._script.utilities.mnemonicShortcutAccelerator(obj)
if accelerator:
@@ -2511,7 +2511,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
if _settingsManager.getSetting('enableMnemonicSpeaking') \
or args.get('forceMnemonic', False):
[mnemonic, shortcut, accelerator] = \
@@ -2544,7 +2544,7 @@ class SpeechGenerator(generator.Generator):
return []
result = []
- acss = self.voice(SYSTEM)
+ acss = self.voice(SYSTEM, obj=obj, **args)
alreadyFocused = args.get('alreadyFocused', False)
forceTutorial = args.get('forceTutorial', False)
role = args.get('role', obj.getRole())
@@ -2639,14 +2639,14 @@ class SpeechGenerator(generator.Generator):
else:
result = [messages.MATH_ENCLOSURE_ENCLOSED_BY % ", ".join(strings)]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateFencedStart(self, obj, **args):
fenceStart, fenceEnd = self._script.utilities.getMathFences(obj)
if fenceStart:
result = [chnames.getCharacterName(fenceStart)]
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
return result
return []
@@ -2662,7 +2662,7 @@ class SpeechGenerator(generator.Generator):
result.extend(self._generateMath(child, **args))
separatorName = chnames.getCharacterName(separators[i])
result.append(separatorName)
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
if separatorName:
result.extend(self._generatePause(obj, **args))
@@ -2672,7 +2672,7 @@ class SpeechGenerator(generator.Generator):
fenceStart, fenceEnd = self._script.utilities.getMathFences(obj)
if fenceEnd:
result = [chnames.getCharacterName(fenceEnd)]
- result.extend(self.voice(DEFAULT))
+ result.extend(self.voice(DEFAULT, obj=obj, **args))
return result
return []
@@ -2682,7 +2682,7 @@ class SpeechGenerator(generator.Generator):
result = [messages.MATH_FRACTION_WITHOUT_BAR_START]
else:
result = [messages.MATH_FRACTION_START]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateFractionNumerator(self, obj, **args):
@@ -2709,12 +2709,12 @@ class SpeechGenerator(generator.Generator):
def _generateFractionLine(self, obj, **args):
result = [messages.MATH_FRACTION_LINE]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateFractionEnd(self, obj, **args):
result = [messages.MATH_FRACTION_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateRootStart(self, obj, **args):
@@ -2742,7 +2742,7 @@ class SpeechGenerator(generator.Generator):
result.extend([messages.MATH_ROOT_OF])
if result:
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
@@ -2766,7 +2766,7 @@ class SpeechGenerator(generator.Generator):
def _generateRootEnd(self, obj, **args):
result = [messages.MATH_ROOT_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateScriptBase(self, obj, **args):
@@ -2793,7 +2793,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.MATH_SUBSCRIPT]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generateScriptScript(subscript))
return result
@@ -2804,7 +2804,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.MATH_SUPERSCRIPT]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generateScriptScript(superscript))
return result
@@ -2815,7 +2815,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.MATH_UNDERSCRIPT]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generateScriptScript(underscript))
return result
@@ -2826,7 +2826,7 @@ class SpeechGenerator(generator.Generator):
return []
result = [messages.MATH_OVERSCRIPT]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generateScriptScript(overscript))
return result
@@ -2841,7 +2841,7 @@ class SpeechGenerator(generator.Generator):
rv = [messages.MATH_PRE_SUPERSCRIPT]
else:
rv = [messages.MATH_PRE_SUBSCRIPT]
- rv.extend(self.voice(SYSTEM))
+ rv.extend(self.voice(SYSTEM, obj=obj, **args))
rv.extend(self._generateScriptScript(script))
result.append(rv)
@@ -2857,7 +2857,7 @@ class SpeechGenerator(generator.Generator):
rv = [messages.MATH_SUPERSCRIPT]
else:
rv = [messages.MATH_SUBSCRIPT]
- rv.extend(self.voice(SYSTEM))
+ rv.extend(self.voice(SYSTEM, obj=obj, **args))
rv.extend(self._generateScriptScript(script))
result.append(rv)
@@ -2874,7 +2874,7 @@ class SpeechGenerator(generator.Generator):
result = [messages.mathNestedTableSize(table.nRows, table.nColumns)]
else:
result = [messages.mathTableSize(table.nRows, table.nColumns)]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
def _generateMathTableRows(self, obj, **args):
@@ -2891,7 +2891,7 @@ class SpeechGenerator(generator.Generator):
result = []
result.append(messages.TABLE_ROW % (obj.getIndexInParent() + 1))
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
result.extend(self._generatePause(obj, **args))
for child in obj:
@@ -2906,7 +2906,7 @@ class SpeechGenerator(generator.Generator):
result = [messages.MATH_NESTED_TABLE_END]
else:
result = [messages.MATH_TABLE_END]
- result.extend(self.voice(SYSTEM))
+ result.extend(self.voice(SYSTEM, obj=obj, **args))
return result
#####################################################################
@@ -2936,6 +2936,10 @@ class SpeechGenerator(generator.Generator):
decision making.
"""
+ msg = "SPEECH GENERATOR: Getting '%s' voice for obj=%s, language='%s', dialect='%s'" \
+ % (key, args.get("obj"), args.get("language"), args.get("dialect"))
+ debug.println(debug.LEVEL_INFO, msg, True)
+
voicename = voiceType.get(key) or voiceType.get(DEFAULT)
voices = _settingsManager.getSetting('voices')
voice = acss.ACSS(voices.get(voiceType.get(DEFAULT)))
@@ -2949,6 +2953,8 @@ class SpeechGenerator(generator.Generator):
if override and override.get('established', True):
voice.update(override)
+ msg = "SPEECH GENERATOR: Voice is %s" % voice
+ debug.println(debug.LEVEL_INFO, msg, True)
return [voice]
def utterancesToString(self, utterances):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]