Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 22 additions & 3 deletions addon/globalPlugins/voiceToggle/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,31 @@ def __terminate__(self):
gui.settingsDialogs.NVDASettingsDialog.categoryClasses.remove(OptionsPanel)

@scriptHandler.script(
gesture="kb:NVDA+Alt+V",
# Translators: Gesture description for the Input gestures settings dialog
description=_("Toggles to the next voice."),
description=_("Switches to the next voice."),
category = _("Voice Toggle"),
)
def script_toggleVoice(self, gesture):
if not self.isSynthDoneSpeakingRegistered:
synthDoneSpeaking.register(self.app.handleDoneSpeaking)
self.isSynthDoneSpeakingRegistered = True
self.app.toggleVoice()
if len(self.app.voiceSettings) == 0:
return
nextIndex = self.app.getNextVoiceSettingsIndex(self.app.currentVoiceSettingsIndex)
newIndex = self.app.changeVoice(nextIndex)
self.app.currentVoiceSettingsIndex = newIndex

@scriptHandler.script(
# Translators: Gesture description for the Input gestures settings dialog
description=_("Switches to the previous voice."),
category = _("Voice Toggle"),
)
def script_previousVoice(self, gesture):
if not self.isSynthDoneSpeakingRegistered:
synthDoneSpeaking.register(self.app.handleDoneSpeaking)
self.isSynthDoneSpeakingRegistered = True
if len(self.app.voiceSettings) == 0:
return
previousIndex = self.app.getPreviousVoiceSettingsIndex(self.app.currentVoiceSettingsIndex)
newIndex = self.app.changeVoice(previousIndex)
self.app.currentVoiceSettingsIndex = newIndex
11 changes: 11 additions & 0 deletions addon/globalPlugins/voiceToggle/voiceToggle.py
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,17 @@ def getNextVoiceSettingsIndex(self, index):
newIndex = (index + 1) % voiceSettingsLength
return newIndex

def getPreviousVoiceSettingsIndex(self, index):
voiceSettingsLength = len(self.voiceSettings)
if voiceSettingsLength == 0:
return -1

# If index is out of list bounds and list is not empty, return zero
if index < 0 or index >= voiceSettingsLength:
return 0
newIndex = (index - 1) % voiceSettingsLength
return newIndex

def changeVoice(self, newIndex, announceChange=True):
voiceSettingsLength = len(self.voiceSettings)
if (newIndex >= voiceSettingsLength) or (newIndex < 0):
Expand Down