summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-02-10 13:38:05 +0000
committerJens Arnold <amiconn@rockbox.org>2008-02-10 13:38:05 +0000
commitbec914e72463bb1ef40b57c0bb76e34d9e7a99fa (patch)
tree3b4e5f10c57dc7820fa262d6dfe666dac164bb77
parent62e6f35c4c2229f3f7c4a1b0e0e480024756d0ec (diff)
downloadrockbox-bec914e72463bb1ef40b57c0bb76e34d9e7a99fa.tar.gz
rockbox-bec914e72463bb1ef40b57c0bb76e34d9e7a99fa.zip
Simplify and better integrate the SAPI5 voice list output code (less duplication), and add list output for SAPI4.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16269 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-xtools/sapi_voice.vbs63
1 files changed, 26 insertions, 37 deletions
diff --git a/tools/sapi_voice.vbs b/tools/sapi_voice.vbs
index 2038329b62..440444ca38 100755
--- a/tools/sapi_voice.vbs
+++ b/tools/sapi_voice.vbs
@@ -38,12 +38,11 @@ Dim sLanguage, sVoice, sSpeed
38 38
39Dim oSpVoice, oSpFS ' SAPI5 voice and filestream 39Dim oSpVoice, oSpFS ' SAPI5 voice and filestream
40Dim oTTS, nMode ' SAPI4 TTS object, mode selector 40Dim oTTS, nMode ' SAPI4 TTS object, mode selector
41Dim oVoice ' for traversing the list of voices
41Dim nLangID, sSelectString 42Dim nLangID, sSelectString
42 43
43Dim aLine, aData ' used in command reading 44Dim aLine, aData ' used in command reading
44 45
45Dim counter, ende, list
46
47On Error Resume Next 46On Error Resume Next
48 47
49Set oShell = CreateObject("WScript.Shell") 48Set oShell = CreateObject("WScript.Shell")
@@ -57,41 +56,6 @@ sLanguage = oArgs.Item("language")
57sVoice = oArgs.Item("voice") 56sVoice = oArgs.Item("voice")
58sSpeed = oArgs.Item("speed") 57sSpeed = oArgs.Item("speed")
59 58
60' display a list of voices for the selected language
61if bList Then
62 'Create SAPI5 object
63 Set oSpVoice = CreateObject("SAPI.SpVoice")
64 If Err.Number <> 0 Then
65 WScript.StdErr.WriteLine "Error - could not get SpVoice object." _
66 & " SAPI 5 not installed?"
67 WScript.Quit 1
68 End If
69
70 list = ""
71 ' Select matching voice
72 For Each nLangID in LangIDs(sLanguage)
73 sSelectString = "Language=" & Hex(nLangID)
74 counter =0
75 ende =0
76 While ende <= 0
77 Err.Clear
78 Set oSpVoice.Voice = oSpVoice.GetVoices(sSelectString).Item(counter)
79
80 If Err.Number = 0 Then
81 list = list & oSpVoice.Voice.GetDescription & ","
82 Else
83 ende = 1
84 Err.Clear
85 End if
86 counter = counter + 1
87 Wend
88 Next
89
90 WScript.StdErr.WriteLine list
91
92 WScript.Quit 0
93End If
94
95 59
96If bSAPI4 Then 60If bSAPI4 Then
97 ' Create SAPI4 ActiveVoice object 61 ' Create SAPI4 ActiveVoice object
@@ -107,6 +71,19 @@ If bSAPI4 Then
107 End If 71 End If
108 oTTS.Initialized = 1 72 oTTS.Initialized = 1
109 73
74 If bList Then
75 ' Just list available voices for the selected language
76 For Each nLangID in LangIDs(sLanguage)
77 For nMode = 1 To oTTS.CountEngines
78 If oTTS.LanguageID(nMode) = nLangID Then
79 WScript.StdErr.Write oTTS.ModeName(nMode) & ","
80 End If
81 Next
82 Next
83 WScript.StdErr.WriteLine
84 WScript.Quit 0
85 End If
86
110 ' Select matching voice 87 ' Select matching voice
111 For Each nLangID in LangIDs(sLanguage) 88 For Each nLangID in LangIDs(sLanguage)
112 sSelectString = "LanguageID=" & nLangID 89 sSelectString = "LanguageID=" & nLangID
@@ -140,6 +117,18 @@ Else ' SAPI5
140 & " SAPI 5 not installed?" 117 & " SAPI 5 not installed?"
141 WScript.Quit 1 118 WScript.Quit 1
142 End If 119 End If
120
121 If bList Then
122 ' Just list available voices for the selected language
123 For Each nLangID in LangIDs(sLanguage)
124 sSelectString = "Language=" & Hex(nLangID)
125 For Each oVoice in oSpVoice.GetVoices(sSelectString)
126 WScript.StdErr.Write oVoice.GetDescription & ","
127 Next
128 Next
129 WScript.StdErr.WriteLine
130 WScript.Quit 0
131 End If
143 132
144 ' Select matching voice 133 ' Select matching voice
145 For Each nLangID in LangIDs(sLanguage) 134 For Each nLangID in LangIDs(sLanguage)