rockbox/utils
Solomon Peachy a467bfc55f FS#13972 - Improve rbutil SAPI5 stability (Alessio Lenzi)
The existing code treated any ready-read notification from cscript as
proof that synthesis had completed. The SAPI script can emit other
output, so the Utility could check for the wave file before the explicit
SYNC reply and report that the output file did not exist.

The script also used global "On Error Resume Next" without reporting
errors from SpFileStream.Open(), SpVoice.Speak(), or
SpFileStream.Close(). Several waits had no timeout, allowing the GUI
thread to remain blocked indefinitely.

The changes:

 * reports SAPI COM errors to Rockbox Utility;
 * verifies that SAPI actually created the requested wave file;
 * waits for the explicit SYNC reply instead of any process output;
 * applies finite timeouts to vendor queries, synthesis, and shutdown;
 * terminates a stuck private cscript process safely;
 * restarts cscript and retries the current string up to three times when a
   third-party SAPI engine stops responding during a long generation run.

Change-Id: I2cf2aefb704353c648bef0c4312f35282ac4e25d
2026-08-04 17:03:50 -04:00
..
AMS/hacking amsinfo: save files with .bin extension 2011-12-13 03:01:16 +00:00
analysis chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
atj2137 chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
bootchart chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
bspatch bspatch: Fix compile warnings on Apple Clang 21 2026-06-29 23:11:33 -04:00
bzip2 chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
chinachippatcher tools: fix up build warnings 2026-06-26 21:38:57 -04:00
cmake rbutilqt/themeeditor: Allow specifying the Apple code signing ID using an environment variable 2026-07-29 22:55:40 +03:00
common rbutil: Update tarball scripts 2025-04-02 08:21:38 -04:00
disassembler/arm Make sure files which aren't windows-specific use \n line endings only 2010-06-17 16:59:51 +00:00
e200rpatcher chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
e200tool chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
editors chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
hwpatcher chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
hwstub chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
ibassoboot/jni rbutil: Merge rbutil with utils folder. 2021-12-24 18:05:53 +01:00
imxtools mkimxboot: Fix up a large pile of compile warnings with -Wextra 2026-06-22 20:59:18 -04:00
ingenic_tools chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
ipod chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
ipodpatcher ipodpatcher: Correct use of FormatMessageA() for windows builds 2026-07-04 12:36:38 -04:00
jz4740_tools chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
jz4760_tools chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
jztool chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mkamsboot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mkimxboot mkimxboot: Fix potentially unaligned pointer access of a packed structure 2026-07-01 17:27:49 +03:00
mkmpioboot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mknwzboot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mkrk27boot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mks5lboot rbutil: define USE_LIBUSBAPI for Linux builds 2026-07-04 11:51:49 -04:00
mktccboot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
mkzenboot chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
MTP chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
nwztools utils: Fix a small pile of warnings 2026-06-17 10:39:57 -04:00
rbpms Add iPod Nano 2G post-mortem memory dumper by Michael Sparmann 2025-08-14 20:45:19 -04:00
rbutilqt FS#13972 - Improve rbutil SAPI5 stability (Alessio Lenzi) 2026-08-04 17:03:50 -04:00
reggen-ng stm32h743: add intitial register definitions 2025-04-21 14:15:31 -04:00
regtools chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
rk27utils utils: More warning fixes 2026-06-17 13:56:29 -04:00
rknanoutils chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
rockbox_api chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
samsungtools chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
sansapatcher sansapatcher: Correct use of FormatMessageA() for windows builds 2026-07-04 13:04:05 -04:00
scsi chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
skinupdater chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
tcctool chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
themeeditor desktop: Drop the 'version' fields 2026-07-29 10:27:35 -04:00
time-sync time-sync: Fix arguments order in linker command 2025-01-16 16:05:18 -05:00
tomcrypt tomcrypt: Set target macOS version. 2020-10-31 19:20:36 +01:00
tools rbutil: Merge rbutil with utils folder. 2021-12-24 18:05:53 +01:00
ypr0tools Samsung YP-R1: fix OF boot shortcut 2020-07-07 17:52:17 +00:00
zenutils chore: Get rid of *all* vestigal CVS '$Id:$' tags 2026-06-01 16:01:18 -04:00
CMakeLists.txt rbutil: Rephrase optional component "not found" messages 2026-07-09 22:40:44 -04:00
libtools.make rbutil: Merge rbutil with utils folder. 2021-12-24 18:05:53 +01:00
parse_testcodec.rb utils/parse_testcodec.rb: add support for Opus files 2015-07-17 00:51:22 +02:00