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> |
||
|---|---|---|
| .. | ||
| aprs.c | ||
| calibration.c | ||
| codeplug.c | ||
| dmrDataProtocol.c | ||
| hotspot.c | ||
| rxPowerSaving.c | ||
| satellite.c | ||
| settings.c | ||
| smsCore.c | ||
| smsStorage.c | ||
| sound.c | ||
| ticks.c | ||
| trx.c | ||
| voicePrompts.c | ||
| vox.c | ||