Skip to content

Conversation

@michaelDCurran
Copy link
Member

Link to issue number:

Reverts #19290

Summary of the issue:

with the move to 64 bit, sapi4 became unusable as it only functions in a 32 bit process. PR #19290 was merged which removes sapi4. However, pr #19432 is adding the infrastructure to run sapi4 within a 32 bit runtime. Thus the original sapi4 should be tempoararily added back so that pr #19432 can move it into its 32 bit location.

Description of user facing changes:

None.

Description of developer facing changes:

Description of development approach:

This is a clean revert of pr #19290 (with only a conflict in changes.md which was addressed).

Testing strategy:

None - clean revert.

Known issues with pull request:

None known.

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@michaelDCurran michaelDCurran requested a review from a team as a code owner January 13, 2026 00:32
Copilot AI review requested due to automatic review settings January 13, 2026 00:32
@michaelDCurran michaelDCurran requested a review from a team as a code owner January 13, 2026 00:32
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR is a clean revert of PR #19290, which previously removed SAPI 4 support from NVDA. The revert is temporary—SAPI 4 is being restored so that PR #19432 can move it to a 32-bit runtime environment. Since SAPI 4 only functions in 32-bit processes and NVDA has moved to 64-bit, this intermediate step is necessary.

Changes:

  • Reverts the removal of SAPI 4 synthesizer driver code
  • Re-adds SAPI 4 documentation to user guide and design docs
  • Restores WASAPI configuration option for SAPI 4
  • Resolves conflicts in changes.md (though with an error—see below)

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
user_docs/en/userGuide.md Restored SAPI 4 synthesizer documentation and WASAPI configuration option description
user_docs/en/changes.md Removed changelog entries about SAPI 4 removal (conflict resolution has errors)
source/synthDrivers/sapi4.py Restored SAPI 4 synthesizer driver implementation (~1260 lines)
source/synthDrivers/_sapi4.py Restored SAPI 4 COM interface definitions (~332 lines)
source/gui/settingsDialogs.py Re-added WASAPI for SAPI 4 GUI controls in Advanced settings
source/config/configSpec.py Restored useWASAPIForSAPI4 configuration option
projectDocs/design/synthesizers.md Added new documentation for testing SAPI 4

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants