Predefined Backend Identifiers
Prism defines constants for all known backend identifiers. These constants are 64-bit unsigned integers computed at compile time using a deterministic hash function. Applications MAY use these constants to request specific backends by ID rather than by name, which avoids the overhead of a string lookup.
| Constant | Backend |
|---|---|
PRISM_BACKEND_INVALID | Invalid/sentinel value (always 0) |
PRISM_BACKEND_SAPI | Microsoft SAPI (Windows) |
PRISM_BACKEND_AV_SPEECH | AVSpeechSynthesizer (macOS, iOS, tvOS, WatchOS, VisionOS) |
PRISM_BACKEND_VOICE_OVER | VoiceOver screen reader (macOS, MacCatalyst, iOS, WatchOS, tvOS, VisionOS) |
PRISM_BACKEND_SPEECH_DISPATCHER | Speech Dispatcher (Linux/BSD, win32 via Wine) |
PRISM_BACKEND_NVDA | NVDA screen reader (Windows) |
PRISM_BACKEND_JAWS | JAWS screen reader (Windows) |
PRISM_BACKEND_ONE_CORE | Windows OneCore speech API (Windows 10+) |
PRISM_BACKEND_ORCA | Orca screen reader (Linux/BSD, win32 via Wine) |
PRISM_BACKEND_ANDROID_TTS | Android TTS engine (Android) |
PRISM_BACKEND_ANDROID_SCREEN_READER | Android screen readers (Android) |
PRISM_BACKEND_WEB_SPEECH | Web SpeechSynthesis API (web) |
PRISM_BACKEND_UIA | UIAutomation backend (Windows only) |
PRISM_BACKEND_ZDSR | Zhengdu Screen Reader (Windows) |
PRISM_BACKEND_ZOOM_TEXT | ZoomText (Windows) |
PRISM_BACKEND_BOY_PC_READER | BoyPCReader (windows only) |
PRISM_BACKEND_PC_TALKER | PCTalker (windows only) |
PRISM_BACKEND_SENSE_READER | Sense Reader screen reader (Windows) |
PRISM_BACKEND_SYSTEM_ACCESS | SystemAccess screen reader (windows) (only available if explicitly enabled at build time) |
PRISM_BACKEND_WINDOW_EYES | WindowEyes screen reader (windows) (only available if explicitly enabled at build time) |
PRISM_BACKEND_GDK_SPEECH | Microsoft GDK speech synthesis (Windows, Xbox) |
PRISM_BACKEND_SPIEL | Spiel (Linux/BSD, win32 via Wine) |
The availability of any given backend depends on the platform Prism is running on and how Prism was compiled. The presence of a constant does not guarantee that the corresponding backend is available at runtime. Use prism_registry_exists to check availability.
Custom backend identifiers are computed from the backend’s name with the same hash function, so an identifier obtained from prism_registry_builder_add_backend is stable across runs for the same name.