Added Voice menu to settings.
The Voice menu has two options: Level: off, beep, level 1, level 2, level 3, Phonetic: off, on.
This commit is contained in:
parent
2102c15602
commit
16abf941d4
|
|
@ -60,6 +60,7 @@ enum uiScreen
|
||||||
SETTINGS_DISPLAY,
|
SETTINGS_DISPLAY,
|
||||||
SETTINGS_GPS,
|
SETTINGS_GPS,
|
||||||
SETTINGS_M17,
|
SETTINGS_M17,
|
||||||
|
SETTINGS_VOICE,
|
||||||
SETTINGS_RESET2DEFAULTS,
|
SETTINGS_RESET2DEFAULTS,
|
||||||
LOW_BAT
|
LOW_BAT
|
||||||
};
|
};
|
||||||
|
|
@ -96,6 +97,7 @@ enum settingsItems
|
||||||
,S_GPS
|
,S_GPS
|
||||||
#endif
|
#endif
|
||||||
,S_M17
|
,S_M17
|
||||||
|
,S_VOICE
|
||||||
,S_RESET2DEFAULTS
|
,S_RESET2DEFAULTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -122,6 +124,11 @@ enum settingsGPSItems
|
||||||
G_TIMEZONE
|
G_TIMEZONE
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
enum settingsVoicePromptItems
|
||||||
|
{
|
||||||
|
VP_LEVEL = 0,
|
||||||
|
VP_PHONETIC,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Struct containing a set of positions and sizes that get
|
* Struct containing a set of positions and sizes that get
|
||||||
|
|
@ -197,6 +204,8 @@ extern const char *menu_items[];
|
||||||
extern const char *settings_items[];
|
extern const char *settings_items[];
|
||||||
extern const char *display_items[];
|
extern const char *display_items[];
|
||||||
extern const char *settings_gps_items[];
|
extern const char *settings_gps_items[];
|
||||||
|
extern const char * settings_voice_items[];
|
||||||
|
|
||||||
extern const char *backup_restore_items[];
|
extern const char *backup_restore_items[];
|
||||||
extern const char *info_items[];
|
extern const char *info_items[];
|
||||||
extern const char *authors[];
|
extern const char *authors[];
|
||||||
|
|
@ -204,6 +213,7 @@ extern const uint8_t menu_num;
|
||||||
extern const uint8_t settings_num;
|
extern const uint8_t settings_num;
|
||||||
extern const uint8_t display_num;
|
extern const uint8_t display_num;
|
||||||
extern const uint8_t settings_gps_num;
|
extern const uint8_t settings_gps_num;
|
||||||
|
extern const uint8_t settings_voice_num;
|
||||||
extern const uint8_t backup_restore_num;
|
extern const uint8_t backup_restore_num;
|
||||||
extern const uint8_t info_num;
|
extern const uint8_t info_num;
|
||||||
extern const uint8_t author_num;
|
extern const uint8_t author_num;
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,10 @@ const stringsTable_t englishStrings =
|
||||||
.gpsEnabled = "GPS Enabled",
|
.gpsEnabled = "GPS Enabled",
|
||||||
.gpsSetTime = "GPS Set Time",
|
.gpsSetTime = "GPS Set Time",
|
||||||
.UTCTimeZone = "UTC Timezone",
|
.UTCTimeZone = "UTC Timezone",
|
||||||
|
.voice = "Voice",
|
||||||
|
.level = "Level",
|
||||||
|
.phonetic = "Phonetic",
|
||||||
|
.beep = "Beep",
|
||||||
.backup = "Backup",
|
.backup = "Backup",
|
||||||
.restore = "Restore",
|
.restore = "Restore",
|
||||||
.batteryVoltage = "Bat. Voltage",
|
.batteryVoltage = "Bat. Voltage",
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,10 @@ typedef struct
|
||||||
const char* gpsEnabled;
|
const char* gpsEnabled;
|
||||||
const char* gpsSetTime;
|
const char* gpsSetTime;
|
||||||
const char* UTCTimeZone;
|
const char* UTCTimeZone;
|
||||||
|
const char* voice;
|
||||||
|
const char* level;
|
||||||
|
const char* phonetic;
|
||||||
|
const char* beep;
|
||||||
const char* backup;
|
const char* backup;
|
||||||
const char* restore;
|
const char* restore;
|
||||||
const char* batteryVoltage;
|
const char* batteryVoltage;
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@ extern void _ui_drawMenuContacts(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuGPS();
|
extern void _ui_drawMenuGPS();
|
||||||
extern void _ui_drawSettingsGPS(ui_state_t* ui_state);
|
extern void _ui_drawSettingsGPS(ui_state_t* ui_state);
|
||||||
#endif
|
#endif
|
||||||
|
extern void _ui_drawSettingsVoicePrompts(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuSettings(ui_state_t* ui_state);
|
extern void _ui_drawMenuSettings(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuBackupRestore(ui_state_t* ui_state);
|
extern void _ui_drawMenuBackupRestore(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuBackup(ui_state_t* ui_state);
|
extern void _ui_drawMenuBackup(ui_state_t* ui_state);
|
||||||
|
|
@ -110,6 +111,7 @@ extern void _ui_drawSettingsTimeDateSet(ui_state_t* ui_state);
|
||||||
#endif
|
#endif
|
||||||
extern void _ui_drawSettingsDisplay(ui_state_t* ui_state);
|
extern void _ui_drawSettingsDisplay(ui_state_t* ui_state);
|
||||||
extern void _ui_drawSettingsM17(ui_state_t* ui_state);
|
extern void _ui_drawSettingsM17(ui_state_t* ui_state);
|
||||||
|
extern void _ui_drawSettingsVoicePrompts(ui_state_t* ui_state);
|
||||||
extern void _ui_drawSettingsReset2Defaults(ui_state_t* ui_state);
|
extern void _ui_drawSettingsReset2Defaults(ui_state_t* ui_state);
|
||||||
extern bool _ui_drawMacroMenu();
|
extern bool _ui_drawMacroMenu();
|
||||||
|
|
||||||
|
|
@ -137,6 +139,7 @@ const char *settings_items[] =
|
||||||
"GPS",
|
"GPS",
|
||||||
#endif
|
#endif
|
||||||
"M17",
|
"M17",
|
||||||
|
"Voice",
|
||||||
"Default Settings"
|
"Default Settings"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -157,6 +160,11 @@ const char *settings_gps_items[] =
|
||||||
"UTC Timezone"
|
"UTC Timezone"
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
const char * settings_voice_items[] =
|
||||||
|
{
|
||||||
|
"Voice Level",
|
||||||
|
"Phonetic"
|
||||||
|
};
|
||||||
|
|
||||||
const char *backup_restore_items[] =
|
const char *backup_restore_items[] =
|
||||||
{
|
{
|
||||||
|
|
@ -224,6 +232,7 @@ const uint8_t display_num = sizeof(display_items)/sizeof(display_items[0]);
|
||||||
#ifdef GPS_PRESENT
|
#ifdef GPS_PRESENT
|
||||||
const uint8_t settings_gps_num = sizeof(settings_gps_items)/sizeof(settings_gps_items[0]);
|
const uint8_t settings_gps_num = sizeof(settings_gps_items)/sizeof(settings_gps_items[0]);
|
||||||
#endif
|
#endif
|
||||||
|
const uint8_t settings_voice_num = sizeof(settings_voice_items)/sizeof(settings_voice_items[0]);
|
||||||
const uint8_t backup_restore_num = sizeof(backup_restore_items)/sizeof(backup_restore_items[0]);
|
const uint8_t backup_restore_num = sizeof(backup_restore_items)/sizeof(backup_restore_items[0]);
|
||||||
const uint8_t info_num = sizeof(info_items)/sizeof(info_items[0]);
|
const uint8_t info_num = sizeof(info_items)/sizeof(info_items[0]);
|
||||||
const uint8_t author_num = sizeof(authors)/sizeof(authors[0]);
|
const uint8_t author_num = sizeof(authors)/sizeof(authors[0]);
|
||||||
|
|
@ -703,6 +712,21 @@ void _ui_changeTimer(int variation)
|
||||||
state.settings.display_timer += variation;
|
state.settings.display_timer += variation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _ui_changeVoiceLevel(int variation)
|
||||||
|
{
|
||||||
|
if ((state.settings.vpLevel == vpNone && variation < 0) ||
|
||||||
|
(state.settings.vpLevel == vpHigh && variation > 0))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
state.settings.vpLevel += variation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void _ui_changePhoneticSpell(bool newVal)
|
||||||
|
{
|
||||||
|
state.settings.vpPhoneticSpell = newVal ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool _ui_checkStandby(long long time_since_last_event)
|
bool _ui_checkStandby(long long time_since_last_event)
|
||||||
{
|
{
|
||||||
if (standby)
|
if (standby)
|
||||||
|
|
@ -1422,7 +1446,10 @@ void ui_updateFSM(bool *sync_rtx)
|
||||||
case S_M17:
|
case S_M17:
|
||||||
state.ui_screen = SETTINGS_M17;
|
state.ui_screen = SETTINGS_M17;
|
||||||
break;
|
break;
|
||||||
case S_RESET2DEFAULTS:
|
case S_VOICE:
|
||||||
|
state.ui_screen = SETTINGS_VOICE;
|
||||||
|
break;
|
||||||
|
case S_RESET2DEFAULTS:
|
||||||
state.ui_screen = SETTINGS_RESET2DEFAULTS;
|
state.ui_screen = SETTINGS_RESET2DEFAULTS;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -1641,6 +1668,46 @@ void ui_updateFSM(bool *sync_rtx)
|
||||||
_ui_menuBack(MENU_SETTINGS);
|
_ui_menuBack(MENU_SETTINGS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SETTINGS_VOICE:
|
||||||
|
if(msg.keys & KEY_LEFT || (ui_state.edit_mode &&
|
||||||
|
(msg.keys & KEY_DOWN || msg.keys & KNOB_LEFT)))
|
||||||
|
{
|
||||||
|
switch(ui_state.menu_selected)
|
||||||
|
{
|
||||||
|
case VP_LEVEL:
|
||||||
|
_ui_changeVoiceLevel(-1);
|
||||||
|
break;
|
||||||
|
case VP_PHONETIC:
|
||||||
|
_ui_changePhoneticSpell(false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state.ui_screen = SETTINGS_VOICE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(msg.keys & KEY_RIGHT || (ui_state.edit_mode &&
|
||||||
|
(msg.keys & KEY_UP || msg.keys & KNOB_RIGHT)))
|
||||||
|
{
|
||||||
|
switch(ui_state.menu_selected)
|
||||||
|
{
|
||||||
|
case VP_LEVEL:
|
||||||
|
_ui_changeVoiceLevel(1);
|
||||||
|
break;
|
||||||
|
case VP_PHONETIC:
|
||||||
|
_ui_changePhoneticSpell(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state.ui_screen = SETTINGS_VOICE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(msg.keys & KEY_UP || msg.keys & KNOB_LEFT)
|
||||||
|
_ui_menuUp(settings_voice_num);
|
||||||
|
else if(msg.keys & KEY_DOWN || msg.keys & KNOB_RIGHT)
|
||||||
|
_ui_menuDown(settings_voice_num);
|
||||||
|
else if(msg.keys & KEY_ENTER)
|
||||||
|
ui_state.edit_mode = !ui_state.edit_mode;
|
||||||
|
else if(msg.keys & KEY_ESC)
|
||||||
|
_ui_menuBack(MENU_SETTINGS);
|
||||||
|
break;
|
||||||
case SETTINGS_RESET2DEFAULTS:
|
case SETTINGS_RESET2DEFAULTS:
|
||||||
if(! ui_state.edit_mode){
|
if(! ui_state.edit_mode){
|
||||||
//require a confirmation ENTER, then another
|
//require a confirmation ENTER, then another
|
||||||
|
|
@ -1784,6 +1851,9 @@ bool ui_updateGUI()
|
||||||
case SETTINGS_M17:
|
case SETTINGS_M17:
|
||||||
_ui_drawSettingsM17(&ui_state);
|
_ui_drawSettingsM17(&ui_state);
|
||||||
break;
|
break;
|
||||||
|
case SETTINGS_VOICE:
|
||||||
|
_ui_drawSettingsVoicePrompts(&ui_state);
|
||||||
|
break;
|
||||||
// Screen to support resetting Settings and VFO to defaults
|
// Screen to support resetting Settings and VFO to defaults
|
||||||
case SETTINGS_RESET2DEFAULTS:
|
case SETTINGS_RESET2DEFAULTS:
|
||||||
_ui_drawSettingsReset2Defaults(&ui_state);
|
_ui_drawSettingsReset2Defaults(&ui_state);
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,43 @@ int _ui_getSettingsGPSValueName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int _ui_getVoiceEntryName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
|
{
|
||||||
|
if(index >= settings_voice_num) return -1;
|
||||||
|
snprintf(buf, max_len, "%s", settings_voice_items[index]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int _ui_getVoiceValueName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
|
{
|
||||||
|
if(index >= settings_voice_num) return -1;
|
||||||
|
uint8_t value = 0;
|
||||||
|
switch(index)
|
||||||
|
{
|
||||||
|
case VP_LEVEL:
|
||||||
|
{
|
||||||
|
value = last_state.settings.vpLevel;
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case vpNone:
|
||||||
|
snprintf(buf, max_len, "%s", currentLanguage->off);
|
||||||
|
break;
|
||||||
|
case vpBeep:
|
||||||
|
snprintf(buf, max_len, "%s", currentLanguage->beep);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
snprintf(buf, max_len, "%s %d", currentLanguage->level, (value-vpBeep));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VP_PHONETIC:
|
||||||
|
snprintf(buf, max_len, "%s", last_state.settings.vpPhoneticSpell ? currentLanguage->on : currentLanguage->off);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int _ui_getBackupRestoreEntryName(char *buf, uint8_t max_len, uint8_t index)
|
int _ui_getBackupRestoreEntryName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
{
|
{
|
||||||
if(index >= backup_restore_num) return -1;
|
if(index >= backup_restore_num) return -1;
|
||||||
|
|
@ -698,6 +735,17 @@ void _ui_drawSettingsM17(ui_state_t* ui_state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _ui_drawSettingsVoicePrompts(ui_state_t* ui_state)
|
||||||
|
{
|
||||||
|
gfx_clearScreen();
|
||||||
|
// Print "Voice" on top bar
|
||||||
|
gfx_print(layout.top_pos, layout.top_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, currentLanguage->voice);
|
||||||
|
// Print voice settings entries
|
||||||
|
_ui_drawMenuListValue(ui_state, ui_state->menu_selected, _ui_getVoiceEntryName,
|
||||||
|
_ui_getVoiceValueName);
|
||||||
|
}
|
||||||
|
|
||||||
void _ui_drawSettingsReset2Defaults(ui_state_t* ui_state)
|
void _ui_drawSettingsReset2Defaults(ui_state_t* ui_state)
|
||||||
{
|
{
|
||||||
(void) ui_state;
|
(void) ui_state;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue