Adjusted vp_anounceBuffer to distinguish between a callsign buffer and a regular name buffer.

This commit is contained in:
vk7js 2022-09-05 21:59:10 +10:00 committed by Silvano Seva
parent a1d782b16c
commit ac7a2b94a9
3 changed files with 16 additions and 10 deletions

View File

@ -206,8 +206,7 @@ void vp_announceScreen(uint8_t ui_screen);
* This function is called from ui_updateFSM to speak string buffers. * This function is called from ui_updateFSM to speak string buffers.
*/ */
void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode, void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode,
const char* buffer); bool callsign, const char* buffer);
/** /**
* *

View File

@ -750,12 +750,13 @@ void vp_announceScreen(uint8_t ui_screen)
break; break;
case SETTINGS_M17: case SETTINGS_M17:
vp_announceBuffer(&currentLanguage->callsign, vp_announceBuffer(&currentLanguage->callsign,
false, state.settings.callsign); false, true, state.settings.callsign);
break; break;
} }
} }
void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode, void vp_announceBuffer(const char* const* stringTableStringPtr,
bool editMode, bool callsign,
const char* buffer) const char* buffer)
{ {
bool isPlaying=vp_isPlaying(); bool isPlaying=vp_isPlaying();
@ -772,7 +773,8 @@ void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode,
vpFlags_t flags= vpAnnounceCommonSymbols; vpFlags_t flags= vpAnnounceCommonSymbols;
// add edit mode flags to adjust what is spoken. // add edit mode flags to adjust what is spoken.
if (editMode) // extra symbols not relevant when entering callsign.
if (editMode && !callsign)
flags |= vpAnnounceLessCommonSymbols | vpAnnounceSpace | vpAnnounceASCIIValueForUnknownChars; flags |= vpAnnounceLessCommonSymbols | vpAnnounceSpace | vpAnnounceASCIIValueForUnknownChars;
vp_queueString(buffer, flags); vp_queueString(buffer, flags);

View File

@ -1054,7 +1054,12 @@ static void _ui_textInputConfirm(char *buf)
static void _ui_textInputDel(char *buf) static void _ui_textInputDel(char *buf)
{ {
// announce the char about to be backspaced. // announce the char about to be backspaced.
if(buf[ui_state.input_position]) // Note this assumes editing callsign.
// If we edit a different buffer which allows the underline char, we may
// not want to exclude it, but when editing callsign, we do not want to say
// underline since it means the field is empty.
if(buf[ui_state.input_position]
&& buf[ui_state.input_position]!='_')
vp_announceInputChar(buf[ui_state.input_position]); vp_announceInputChar(buf[ui_state.input_position]);
buf[ui_state.input_position] = '\0'; buf[ui_state.input_position] = '\0';
@ -1844,14 +1849,14 @@ void ui_updateFSM(bool *sync_rtx)
ui_state.edit_mode = false; ui_state.edit_mode = false;
*sync_rtx = true; *sync_rtx = true;
vp_announceBuffer(&currentLanguage->callsign, vp_announceBuffer(&currentLanguage->callsign,
false, state.settings.callsign); false, true, state.settings.callsign);
} }
else if(msg.keys & KEY_ESC) else if(msg.keys & KEY_ESC)
{ {
// Discard selected callsign and disable input mode // Discard selected callsign and disable input mode
ui_state.edit_mode = false; ui_state.edit_mode = false;
vp_announceBuffer(&currentLanguage->callsign, vp_announceBuffer(&currentLanguage->callsign,
false, state.settings.callsign); false, true, state.settings.callsign);
} }
else if(msg.keys & KEY_UP || msg.keys & KEY_DOWN || else if(msg.keys & KEY_UP || msg.keys & KEY_DOWN ||
msg.keys & KEY_LEFT || msg.keys & KEY_RIGHT) msg.keys & KEY_LEFT || msg.keys & KEY_RIGHT)
@ -1861,7 +1866,7 @@ void ui_updateFSM(bool *sync_rtx)
else if (msg.long_press && (msg.keys & KEY_F1) && (state.settings.vpLevel > vpBeep)) else if (msg.long_press && (msg.keys & KEY_F1) && (state.settings.vpLevel > vpBeep))
{ {
vp_announceBuffer(&currentLanguage->callsign, vp_announceBuffer(&currentLanguage->callsign,
true, ui_state.new_callsign); true, true, ui_state.new_callsign);
f1Handled=true; f1Handled=true;
} }
} }
@ -1874,7 +1879,7 @@ void ui_updateFSM(bool *sync_rtx)
// Reset text input variables // Reset text input variables
_ui_textInputReset(ui_state.new_callsign); _ui_textInputReset(ui_state.new_callsign);
vp_announceBuffer(&currentLanguage->callsign, vp_announceBuffer(&currentLanguage->callsign,
true, ui_state.new_callsign); true, true, ui_state.new_callsign);
} }
else if(msg.keys & KEY_ESC) else if(msg.keys & KEY_ESC)
_ui_menuBack(MENU_SETTINGS); _ui_menuBack(MENU_SETTINGS);