Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

ConstantBackend
PRISM_BACKEND_INVALIDInvalid/sentinel value (always 0)
PRISM_BACKEND_SAPIMicrosoft SAPI (Windows)
PRISM_BACKEND_AV_SPEECHAVSpeechSynthesizer (macOS, iOS, tvOS, WatchOS, VisionOS)
PRISM_BACKEND_VOICE_OVERVoiceOver screen reader (macOS, MacCatalyst, iOS, WatchOS, tvOS, VisionOS)
PRISM_BACKEND_SPEECH_DISPATCHERSpeech Dispatcher (Linux/BSD, win32 via Wine)
PRISM_BACKEND_NVDANVDA screen reader (Windows)
PRISM_BACKEND_JAWSJAWS screen reader (Windows)
PRISM_BACKEND_ONE_COREWindows OneCore speech API (Windows 10+)
PRISM_BACKEND_ORCAOrca screen reader (Linux/BSD, win32 via Wine)
PRISM_BACKEND_ANDROID_TTSAndroid TTS engine (Android)
PRISM_BACKEND_ANDROID_SCREEN_READERAndroid screen readers (Android)
PRISM_BACKEND_WEB_SPEECHWeb SpeechSynthesis API (web)
PRISM_BACKEND_UIAUIAutomation backend (Windows only)
PRISM_BACKEND_ZDSRZhengdu Screen Reader (Windows)
PRISM_BACKEND_ZOOM_TEXTZoomText (Windows)
PRISM_BACKEND_BOY_PC_READERBoyPCReader (windows only)
PRISM_BACKEND_PC_TALKERPCTalker (windows only)
PRISM_BACKEND_SENSE_READERSense Reader screen reader (Windows)
PRISM_BACKEND_SYSTEM_ACCESSSystemAccess screen reader (windows) (only available if explicitly enabled at build time)
PRISM_BACKEND_WINDOW_EYESWindowEyes screen reader (windows) (only available if explicitly enabled at build time)
PRISM_BACKEND_GDK_SPEECHMicrosoft GDK speech synthesis (Windows, Xbox)
PRISM_BACKEND_SPIELSpiel (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.