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,
|
void vp_announceSettingsOnOffToggle(const char* const* stringTableStringPtr,
|
||||||
const vpQueueFlags_t flags, bool val);
|
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 <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <ui.h>
|
||||||
|
|
||||||
#include "interfaces/cps_io.h"
|
#include "interfaces/cps_io.h"
|
||||||
|
|
||||||
|
|
@ -731,6 +732,30 @@ void vp_announceSettingsOnOffToggle(const char* const* stringTableStringPtr,
|
||||||
playIfNeeded(flags);
|
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()
|
vpQueueFlags_t vp_getVoiceLevelQueueFlags()
|
||||||
{
|
{
|
||||||
uint8_t vpLevel = state.settings.vpLevel;
|
uint8_t vpLevel = state.settings.vpLevel;
|
||||||
|
|
|
||||||
|
|
@ -1776,9 +1776,15 @@ void ui_updateFSM(bool *sync_rtx)
|
||||||
state.settings.gps_enabled = 0;
|
state.settings.gps_enabled = 0;
|
||||||
else
|
else
|
||||||
state.settings.gps_enabled = 1;
|
state.settings.gps_enabled = 1;
|
||||||
|
vp_announceSettingsOnOffToggle(¤tLanguage->gpsEnabled,
|
||||||
|
queueFlags,
|
||||||
|
state.settings.gps_enabled);
|
||||||
break;
|
break;
|
||||||
case G_SET_TIME:
|
case G_SET_TIME:
|
||||||
state.gps_set_time = !state.gps_set_time;
|
state.gps_set_time = !state.gps_set_time;
|
||||||
|
vp_announceSettingsOnOffToggle(¤tLanguage->gpsSetTime,
|
||||||
|
queueFlags,
|
||||||
|
state.gps_set_time);
|
||||||
break;
|
break;
|
||||||
case G_TIMEZONE:
|
case G_TIMEZONE:
|
||||||
if(msg.keys & KEY_LEFT || msg.keys & KEY_UP ||
|
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 ||
|
else if(msg.keys & KEY_RIGHT || msg.keys & KEY_DOWN ||
|
||||||
msg.keys & KNOB_RIGHT)
|
msg.keys & KNOB_RIGHT)
|
||||||
state.settings.utc_timezone += 1;
|
state.settings.utc_timezone += 1;
|
||||||
|
// todo announce timezone change
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
state.ui_screen = SETTINGS_GPS;
|
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)
|
else if ((priorUIScreen!=state.ui_screen) && state.settings.vpLevel > vpLow)
|
||||||
{
|
{
|
||||||
// When we switch to VFO or Channel screen, we need to announce it.
|
// When we switch to VFO or Channel screen, we need to announce it.
|
||||||
|
// Likewise for information screens.
|
||||||
// All other cases are handled as needed.
|
// All other cases are handled as needed.
|
||||||
if (state.ui_screen == MAIN_VFO)
|
vp_announceScreen(state.ui_screen);
|
||||||
{
|
|
||||||
vp_announceChannelSummary(&state.channel, 0, state.bank);
|
|
||||||
}
|
|
||||||
else if (state.ui_screen == MAIN_MEM)
|
|
||||||
{
|
|
||||||
vp_announceChannelSummary(&state.channel, state.channel_index,
|
|
||||||
state.bank);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(event.type == EVENT_STATUS)
|
else if(event.type == EVENT_STATUS)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue