Added vp_announceScreen to automatically announce informational screens such as VFO, channel, ...
This commit is contained in:
parent
158b38d113
commit
8cb9272881
|
|
@ -199,6 +199,11 @@ void vp_announceSettingsVoiceLevel(const vpQueueFlags_t flags);
|
|||
void vp_announceSettingsOnOffToggle(const char* const* stringTableStringPtr,
|
||||
const vpQueueFlags_t flags, bool val);
|
||||
|
||||
/**
|
||||
* This function is called from ui_updateFSM to speak informational screens.
|
||||
*/
|
||||
void vp_announceScreen(uint8_t ui_screen);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ui.h>
|
||||
|
||||
#include "interfaces/cps_io.h"
|
||||
|
||||
|
|
@ -731,6 +732,30 @@ void vp_announceSettingsOnOffToggle(const char* const* stringTableStringPtr,
|
|||
playIfNeeded(flags);
|
||||
}
|
||||
|
||||
void vp_announceScreen(uint8_t ui_screen)
|
||||
{
|
||||
switch (ui_screen)
|
||||
{
|
||||
case MAIN_VFO:
|
||||
vp_announceChannelSummary(&state.channel, 0, state.bank);
|
||||
break;
|
||||
case MAIN_MEM:
|
||||
vp_announceChannelSummary(&state.channel, state.channel_index, state.bank);
|
||||
break;
|
||||
#ifdef GPS_PRESENT
|
||||
case MENU_GPS:
|
||||
vp_announceGPSInfo();
|
||||
break;
|
||||
#endif // GPS_PRESENT
|
||||
case MENU_ABOUT:
|
||||
vp_announceAboutScreen();
|
||||
break;
|
||||
case SETTINGS_TIMEDATE:
|
||||
vp_announceSettingsTimeDate();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
vpQueueFlags_t vp_getVoiceLevelQueueFlags()
|
||||
{
|
||||
uint8_t vpLevel = state.settings.vpLevel;
|
||||
|
|
|
|||
|
|
@ -1776,9 +1776,15 @@ void ui_updateFSM(bool *sync_rtx)
|
|||
state.settings.gps_enabled = 0;
|
||||
else
|
||||
state.settings.gps_enabled = 1;
|
||||
vp_announceSettingsOnOffToggle(¤tLanguage->gpsEnabled,
|
||||
queueFlags,
|
||||
state.settings.gps_enabled);
|
||||
break;
|
||||
case G_SET_TIME:
|
||||
state.gps_set_time = !state.gps_set_time;
|
||||
vp_announceSettingsOnOffToggle(¤tLanguage->gpsSetTime,
|
||||
queueFlags,
|
||||
state.gps_set_time);
|
||||
break;
|
||||
case G_TIMEZONE:
|
||||
if(msg.keys & KEY_LEFT || msg.keys & KEY_UP ||
|
||||
|
|
@ -1787,6 +1793,7 @@ void ui_updateFSM(bool *sync_rtx)
|
|||
else if(msg.keys & KEY_RIGHT || msg.keys & KEY_DOWN ||
|
||||
msg.keys & KNOB_RIGHT)
|
||||
state.settings.utc_timezone += 1;
|
||||
// todo announce timezone change
|
||||
break;
|
||||
default:
|
||||
state.ui_screen = SETTINGS_GPS;
|
||||
|
|
@ -1910,16 +1917,9 @@ void ui_updateFSM(bool *sync_rtx)
|
|||
else if ((priorUIScreen!=state.ui_screen) && state.settings.vpLevel > vpLow)
|
||||
{
|
||||
// When we switch to VFO or Channel screen, we need to announce it.
|
||||
// Likewise for information screens.
|
||||
// All other cases are handled as needed.
|
||||
if (state.ui_screen == MAIN_VFO)
|
||||
{
|
||||
vp_announceChannelSummary(&state.channel, 0, state.bank);
|
||||
}
|
||||
else if (state.ui_screen == MAIN_MEM)
|
||||
{
|
||||
vp_announceChannelSummary(&state.channel, state.channel_index,
|
||||
state.bank);
|
||||
}
|
||||
vp_announceScreen(state.ui_screen);
|
||||
}
|
||||
}
|
||||
else if(event.type == EVENT_STATUS)
|
||||
|
|
|
|||
Loading…
Reference in New Issue