voicePromptsAppendLanguageString() turns a language-string pointer into a prompt index (NUM_VOICE_PROMPTS + offset), and voicePromptsPlay() then reads tableOfContents[index + 1]. Strings added after the voice-prompt pack was built (the SMS menu entries) land past the 368-entry table, so the player read off the end of the array and the radio crashed when the Messages menu announced a submenu name with voice prompts enabled. Clamp any index at or beyond the last table slot to PROMPT_SILENCE, so such strings are simply not spoken. Also protects the pre-existing strings sitting at the very end of the table. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| dmr_codec | ||
| functions | ||
| hardware | ||
| interfaces | ||
| io | ||
| linkerdata | ||
| usb | ||
| user_interface | ||
| applicationMain.c | ||