Compare commits

..

No commits in common. "5646d2df11c8487f159aadc2f48d00ab653ab22f" and "d07d3c4b9c2700436e79136a6ad5ac0af4a30ffd" have entirely different histories.

3 changed files with 4 additions and 24 deletions

View file

@ -9,14 +9,6 @@ single running list until the first versioned release.
_Nothing yet._ _Nothing yet._
## 0.7.1
- **Fix:** the radio **crashed** when navigating the Messages menu with voice
prompts enabled. Menu strings added after the voice-prompt pack was built map
to a table-of-contents slot that doesn't exist; the player read past the end
of the table. Such strings now play silence instead (also hardens the
pre-existing strings sitting at the end of the table).
## 0.7.0 ## 0.7.0
- **DMR text messages (SMS)** — full ETSI/Motorola-TMS-compatible messaging: - **DMR text messages (SMS)** — full ETSI/Motorola-TMS-compatible messaging:

View file

@ -6,8 +6,8 @@
#define FREETRX_VERSION_MAJOR 0 #define FREETRX_VERSION_MAJOR 0
#define FREETRX_VERSION_MINOR 7 #define FREETRX_VERSION_MINOR 7
#define FREETRX_VERSION_PATCH 1 #define FREETRX_VERSION_PATCH 0
#define FREETRX_VERSION "0.7.1" #define FREETRX_VERSION "0.7.0"
#endif // _FREETRX_VERSION_H_ #endif // _FREETRX_VERSION_H_

View file

@ -352,25 +352,13 @@ void voicePromptsAppendLanguageString(const char *languageStringAdd)
return; return;
} }
int promptNumber = NUM_VOICE_PROMPTS + voicePromptsAppendPrompt(NUM_VOICE_PROMPTS +
((languageStringAdd - currentLanguage->LANGUAGE_NAME) ((languageStringAdd - currentLanguage->LANGUAGE_NAME)
#if ! defined(HAS_COLOURS) #if ! defined(HAS_COLOURS)
- ((languageStringAdd >= currentLanguage->theme_chooser) ? - ((languageStringAdd >= currentLanguage->theme_chooser) ?
((currentLanguage->theme_colour_picker_blue - currentLanguage->theme_chooser) + LANGUAGE_TEXTS_LENGTH) : 0) ((currentLanguage->theme_colour_picker_blue - currentLanguage->theme_chooser) + LANGUAGE_TEXTS_LENGTH) : 0)
#endif #endif
) / LANGUAGE_TEXTS_LENGTH; ) / LANGUAGE_TEXTS_LENGTH);
// Language strings added after the voice prompt pack was built have no
// entry in the table of contents. voicePromptsPlay() reads TOC[promptNumber + 1],
// so anything at or past the last slot would read past the array and crash;
// play silence for those instead.
if ((promptNumber < 0) || (promptNumber >= (VOICE_PROMPTS_TOC_SIZE - 1)))
{
voicePromptsAppendPrompt(PROMPT_SILENCE);
return;
}
voicePromptsAppendPrompt(promptNumber);
} }
void voicePromptsPlay(void) void voicePromptsPlay(void)