Added speech feedback to settings/display/timer menu.
This commit is contained in:
parent
0138d843b1
commit
9a250ec994
|
|
@ -208,6 +208,11 @@ void vp_announceScreen(uint8_t ui_screen);
|
||||||
void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode,
|
void vp_announceBuffer(const char* const* stringTableStringPtr, bool editMode,
|
||||||
bool callsign, const char* buffer);
|
bool callsign, const char* buffer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is called from ui_updateFSM to speak display timer changes.
|
||||||
|
*/
|
||||||
|
void vp_announceDisplayTimer();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -787,6 +787,64 @@ void vp_announceBuffer(const char* const* stringTableStringPtr,
|
||||||
vp_play();
|
vp_play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vp_announceDisplayTimer()
|
||||||
|
{
|
||||||
|
bool isPlaying=vp_isPlaying();
|
||||||
|
|
||||||
|
vp_flush();
|
||||||
|
|
||||||
|
if (!isPlaying)
|
||||||
|
vp_queueStringTableEntry(¤tLanguage->timer);
|
||||||
|
uint8_t seconds = 0;
|
||||||
|
uint8_t minutes = 0;
|
||||||
|
|
||||||
|
switch (state.settings.display_timer)
|
||||||
|
{
|
||||||
|
case TIMER_OFF:
|
||||||
|
seconds=0;
|
||||||
|
break;
|
||||||
|
case TIMER_5S:
|
||||||
|
case TIMER_10S:
|
||||||
|
case TIMER_15S:
|
||||||
|
case TIMER_20S:
|
||||||
|
case TIMER_25S:
|
||||||
|
case TIMER_30S:
|
||||||
|
seconds=state.settings.display_timer*5;
|
||||||
|
break;
|
||||||
|
case TIMER_1M:
|
||||||
|
case TIMER_2M:
|
||||||
|
case TIMER_3M:
|
||||||
|
case TIMER_4M:
|
||||||
|
case TIMER_5M:
|
||||||
|
minutes = (state.settings.display_timer - (TIMER_1M - 1));
|
||||||
|
break;
|
||||||
|
case TIMER_15M:
|
||||||
|
case TIMER_30M:
|
||||||
|
case TIMER_45M:
|
||||||
|
minutes = 15 * (state.settings.display_timer - (TIMER_15M - 1));
|
||||||
|
break;
|
||||||
|
case TIMER_1H:
|
||||||
|
minutes = 60;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (seconds==0 && minutes==0)
|
||||||
|
{
|
||||||
|
vp_queueStringTableEntry(¤tLanguage->off);
|
||||||
|
}
|
||||||
|
else if (seconds > 0)
|
||||||
|
{
|
||||||
|
vp_queueInteger(seconds);
|
||||||
|
vp_queuePrompt(PROMPT_SECONDS);
|
||||||
|
}
|
||||||
|
else if (minutes > 0)
|
||||||
|
{
|
||||||
|
vp_queueInteger(minutes);
|
||||||
|
vp_queuePrompt(PROMPT_MINUTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
vp_play();
|
||||||
|
}
|
||||||
|
|
||||||
vpQueueFlags_t vp_getVoiceLevelQueueFlags()
|
vpQueueFlags_t vp_getVoiceLevelQueueFlags()
|
||||||
{
|
{
|
||||||
uint8_t vpLevel = state.settings.vpLevel;
|
uint8_t vpLevel = state.settings.vpLevel;
|
||||||
|
|
|
||||||
|
|
@ -1760,6 +1760,7 @@ void ui_updateFSM(bool *sync_rtx)
|
||||||
#endif
|
#endif
|
||||||
case D_TIMER:
|
case D_TIMER:
|
||||||
_ui_changeTimer(-1);
|
_ui_changeTimer(-1);
|
||||||
|
vp_announceDisplayTimer();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
state.ui_screen = SETTINGS_DISPLAY;
|
state.ui_screen = SETTINGS_DISPLAY;
|
||||||
|
|
@ -1784,6 +1785,7 @@ void ui_updateFSM(bool *sync_rtx)
|
||||||
#endif
|
#endif
|
||||||
case D_TIMER:
|
case D_TIMER:
|
||||||
_ui_changeTimer(+1);
|
_ui_changeTimer(+1);
|
||||||
|
vp_announceDisplayTimer();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
state.ui_screen = SETTINGS_DISPLAY;
|
state.ui_screen = SETTINGS_DISPLAY;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue