Skip to content

tiger-speech 0.7.2

Choose a tag to compare

@tgeczy tgeczy released this 18 Aug 05:51
· 223 commits to main since this release

The engine folder reminder has never worked. Not once, in any release. Here is why.

Brandon guessed the tree "probably needs some healing recovery in it or something." The tree did, in fact, need healing.

One line, two evenings

When tiger-speech cannot find the engine, a dialog is supposed to appear at start-up telling you where to put it. Several people reported no synthesizer in the list and no dialog — and those two look identical from outside, because both are just nothing happening.

I blamed the start-up timing. I blamed a suppressed reminder. I read NVDA's source to see whether wx existed yet when add-ons load. All wrong. A user sent a log:

AttributeError: module 'wx' has no attribute 'YES_NO_CANCEL'

wxYES_NO_CANCEL is real in wxWidgets' C++ API. wxPython does not have it. The dialog asked for it anyway, so it threw every single time it ran, in every release, on every machine — and the exception went into a log nobody had a reason to read.

Fixed. It is wx.YES_NO | wx.CANCEL, and the dialog now appears.

So it cannot happen again

A test reads the add-on's own source and checks every wx.NAME against the set wxPython actually has. A misspelt constant now fails on my machine instead of silently on yours.

The first version of that test matched nothing at all and passed vacuously — an escaping slip had turned part of its pattern into a literal control byte. It now proves it found files, and found names, before it trusts what it did not find. A test that cannot fail is worse than no test.

Config paths

Raised by a user, and worth stating: the engine folder is resolved from NVDA's config directory, never by expanding %APPDATA%. That is what makes it correct for a portable copy, or one started with -c. The add-on already did this; it is now hardened so an empty answer is rejected rather than passed along.

Also

Two host changes, both Leopard-only in effect and both regression-checked against Tiger — Fred and Cellos still render byte-for-byte identically. Leopard's engine now loads its own C++ runtime and gets much further; it is not finished, and it is not in this add-on.

Nothing of Apple's ships here; you supply the engine from your own Mac OS X 10.4 install.