mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-06-19 22:58:04 +03:00
Use memcpy() instead of memmove() when it's possible (two memmove call were kept).
Rename some variable named 'String' (to 'str') which is quite confusing.
This commit is contained in:
362
ui/menu.c
362
ui/menu.c
@ -452,7 +452,7 @@ void UI_DisplayMenu(void)
|
||||
const unsigned int sub_menu_x1 = (8 * menu_list_width) + 2; // start x corrd
|
||||
const unsigned int sub_menu_x2 = LCD_WIDTH - 1; // end x coord
|
||||
unsigned int i;
|
||||
char String[64]; // bigger cuz we can now do multi-line in one string (use '\n' char)
|
||||
char str[64]; // bigger cuz we can now do multi-line in one string (use '\n' char)
|
||||
|
||||
// clear the screen buffer
|
||||
memset(g_frame_buffer, 0, sizeof(g_frame_buffer));
|
||||
@ -478,11 +478,11 @@ void UI_DisplayMenu(void)
|
||||
|
||||
// draw the little sub-menu triangle marker
|
||||
if (g_in_sub_menu)
|
||||
memmove(g_frame_buffer[0] + (8 * menu_list_width) + 1, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator));
|
||||
memcpy(g_frame_buffer[0] + (8 * menu_list_width) + 1, BITMAP_CurrentIndicator, sizeof(BITMAP_CurrentIndicator));
|
||||
|
||||
// draw the menu index number/count
|
||||
sprintf(String, "%2u.%u", 1 + g_menu_cursor, g_menu_list_count);
|
||||
UI_PrintStringSmall(String, 2, 0, 6);
|
||||
sprintf(str, "%2u.%u", 1 + g_menu_cursor, g_menu_list_count);
|
||||
UI_PrintStringSmall(str, 2, 0, 6);
|
||||
|
||||
#else
|
||||
{ // new menu layout .. experimental & unfinished
|
||||
@ -520,21 +520,21 @@ void UI_DisplayMenu(void)
|
||||
}
|
||||
|
||||
// draw the menu index number/count
|
||||
sprintf(String, "%2u.%u", 1 + g_menu_cursor, g_menu_list_count);
|
||||
UI_PrintStringSmall(String, 2, 0, 6);
|
||||
sprintf(str, "%2u.%u", 1 + g_menu_cursor, g_menu_list_count);
|
||||
UI_PrintStringSmall(str, 2, 0, 6);
|
||||
}
|
||||
else
|
||||
if (menu_index >= 0 && menu_index < (int)g_menu_list_count)
|
||||
{ // current menu item
|
||||
strcpy(String, g_menu_list[g_menu_list_sorted[menu_index]].name);
|
||||
UI_PrintString(String, 0, 0, 0, 8);
|
||||
strcpy(str, g_menu_list[g_menu_list_sorted[menu_index]].name);
|
||||
UI_PrintString(str, 0, 0, 0, 8);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// **************
|
||||
|
||||
memset(String, 0, sizeof(String));
|
||||
memset(str, 0, sizeof(str));
|
||||
|
||||
bool already_printed = false;
|
||||
|
||||
@ -544,15 +544,15 @@ void UI_DisplayMenu(void)
|
||||
switch (g_menu_cursor)
|
||||
{
|
||||
case MENU_SQL:
|
||||
strcpy(String, "MAIN SQL\n");
|
||||
sprintf(String + strlen(String), "%d\n ", g_sub_menu_selection);
|
||||
strcpy(str, "MAIN SQL\n");
|
||||
sprintf(str + strlen(str), "%d\n ", g_sub_menu_selection);
|
||||
break;
|
||||
|
||||
case MENU_CHAN_SQL:
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcpy(String, "USE\nMAIN SQL");
|
||||
strcpy(str, "USE\nMAIN SQL");
|
||||
else
|
||||
sprintf(String, "%d", g_sub_menu_selection);
|
||||
sprintf(str, "%d", g_sub_menu_selection);
|
||||
// g_tx_vfo->squelch_level = g_sub_menu_selection;
|
||||
// RADIO_ConfigureSquelchAndOutputPower(g_tx_vfo);
|
||||
break;
|
||||
@ -560,7 +560,7 @@ void UI_DisplayMenu(void)
|
||||
case MENU_MIC_GAIN:
|
||||
{ // display the mic gain in actual dB rather than just an index number
|
||||
const uint8_t mic = g_mic_gain_dB_2[g_sub_menu_selection];
|
||||
sprintf(String, "+%u.%udB", mic / 2, mic % 2);
|
||||
sprintf(str, "+%u.%udB", mic / 2, mic % 2);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -570,44 +570,44 @@ void UI_DisplayMenu(void)
|
||||
const uint32_t step = (uint32_t)STEP_FREQ_TABLE[step_freq_table_sorted[g_sub_menu_selection]] * 10;
|
||||
if (step < 1000)
|
||||
{ // Hz
|
||||
sprintf(String, "%uHz", step);
|
||||
sprintf(str, "%uHz", step);
|
||||
}
|
||||
else
|
||||
{ // kHz
|
||||
sprintf(String, "%u.%03u", step / 1000, step % 1000);
|
||||
NUMBER_trim_trailing_zeros(String);
|
||||
strcat(String, "kHz");
|
||||
sprintf(str, "%u.%03u", step / 1000, step % 1000);
|
||||
NUMBER_trim_trailing_zeros(str);
|
||||
strcat(str, "kHz");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MENU_TX_POWER:
|
||||
strcpy(String, g_sub_menu_tx_power[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_tx_power[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_RX_CDCSS:
|
||||
case MENU_TX_CDCSS:
|
||||
strcpy(String, "CDCSS\n");
|
||||
strcpy(str, "CDCSS\n");
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcat(String, "OFF");
|
||||
strcat(str, "OFF");
|
||||
else
|
||||
if (g_sub_menu_selection < 105)
|
||||
sprintf(String + strlen(String), "D%03oN", DCS_OPTIONS[g_sub_menu_selection - 1]);
|
||||
sprintf(str + strlen(str), "D%03oN", DCS_OPTIONS[g_sub_menu_selection - 1]);
|
||||
else
|
||||
sprintf(String + strlen(String), "D%03oI", DCS_OPTIONS[g_sub_menu_selection - 105]);
|
||||
sprintf(str + strlen(str), "D%03oI", DCS_OPTIONS[g_sub_menu_selection - 105]);
|
||||
break;
|
||||
|
||||
case MENU_RX_CTCSS:
|
||||
case MENU_TX_CTCSS:
|
||||
{
|
||||
strcpy(String, "CTCSS\n");
|
||||
strcpy(str, "CTCSS\n");
|
||||
#if 1
|
||||
// set CTCSS as the user adjusts it
|
||||
unsigned int Code;
|
||||
freq_config_t *pConfig = (g_menu_cursor == MENU_RX_CTCSS) ? &g_tx_vfo->freq_config_rx : &g_tx_vfo->freq_config_tx;
|
||||
if (g_sub_menu_selection == 0)
|
||||
{
|
||||
strcat(String, "OFF");
|
||||
strcat(str, "OFF");
|
||||
|
||||
if (pConfig->code_type != CODE_TYPE_CONTINUOUS_TONE)
|
||||
break;
|
||||
@ -620,7 +620,7 @@ void UI_DisplayMenu(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(String + strlen(String), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10);
|
||||
sprintf(str + strlen(str), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10);
|
||||
|
||||
pConfig->code_type = CODE_TYPE_CONTINUOUS_TONE;
|
||||
Code = g_sub_menu_selection - 1;
|
||||
@ -630,37 +630,37 @@ void UI_DisplayMenu(void)
|
||||
}
|
||||
#else
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcat(String, "OFF");
|
||||
strcat(str, "OFF");
|
||||
else
|
||||
sprintf(String + strlen(String), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10);
|
||||
sprintf(str + strlen(str), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10);
|
||||
#endif
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case MENU_SHIFT_DIR:
|
||||
strcpy(String, g_sub_menu_shift_dir[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_shift_dir[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_OFFSET:
|
||||
if (!g_in_sub_menu || g_input_box_index == 0)
|
||||
{
|
||||
sprintf(String, "%d.%05u", g_sub_menu_selection / 100000, abs(g_sub_menu_selection) % 100000);
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 1, 8);
|
||||
sprintf(str, "%d.%05u", g_sub_menu_selection / 100000, abs(g_sub_menu_selection) % 100000);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 1, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 3; i++)
|
||||
String[i + 0] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0';
|
||||
String[3] = '.';
|
||||
str[i + 0] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0';
|
||||
str[3] = '.';
|
||||
for (i = 3; i < 6; i++)
|
||||
String[i + 1] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0';
|
||||
String[ 7] = '-';
|
||||
String[ 8] = '-';
|
||||
String[ 9] = 0;
|
||||
String[10] = 0;
|
||||
String[11] = 0;
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 1, 8);
|
||||
str[i + 1] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0';
|
||||
str[ 7] = '-';
|
||||
str[ 8] = '-';
|
||||
str[ 9] = 0;
|
||||
str[10] = 0;
|
||||
str[11] = 0;
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 1, 8);
|
||||
}
|
||||
|
||||
UI_PrintString("MHz", sub_menu_x1, sub_menu_x2, 3, 8);
|
||||
@ -669,12 +669,12 @@ void UI_DisplayMenu(void)
|
||||
break;
|
||||
|
||||
case MENU_BANDWIDTH:
|
||||
strcpy(String, g_sub_menu_bandwidth[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_bandwidth[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_SCRAMBLER:
|
||||
strcpy(String, "INVERT\n");
|
||||
strcat(String, g_sub_menu_scrambler[g_sub_menu_selection]);
|
||||
strcpy(str, "INVERT\n");
|
||||
strcat(str, g_sub_menu_scrambler[g_sub_menu_selection]);
|
||||
|
||||
#if 1
|
||||
if (g_sub_menu_selection > 0 && g_setting_scramble_enable)
|
||||
@ -687,29 +687,29 @@ void UI_DisplayMenu(void)
|
||||
#ifdef ENABLE_VOX
|
||||
case MENU_VOX:
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcpy(String, "OFF");
|
||||
strcpy(str, "OFF");
|
||||
else
|
||||
sprintf(String, "%d", g_sub_menu_selection);
|
||||
sprintf(str, "%d", g_sub_menu_selection);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MENU_AUTO_BACKLITE:
|
||||
strcpy(String, "BACKLITE\n");
|
||||
strcat(String, g_sub_menu_backlight[g_sub_menu_selection]);
|
||||
strcpy(str, "BACKLITE\n");
|
||||
strcat(str, g_sub_menu_backlight[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_AUTO_BACKLITE_ON_TX_RX:
|
||||
strcpy(String, "BACKLITE\n");
|
||||
strcat(String, g_sub_menu_rx_tx[g_sub_menu_selection]);
|
||||
strcpy(str, "BACKLITE\n");
|
||||
strcat(str, g_sub_menu_rx_tx[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_MOD_MODE:
|
||||
strcpy(String, (g_sub_menu_selection == 0) ? "FM" : "AM");
|
||||
strcpy(str, (g_sub_menu_selection == 0) ? "FM" : "AM");
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_AM_FIX_TEST1
|
||||
case MENU_AM_FIX_TEST1:
|
||||
strcpy(String, g_sub_menu_AM_FIX_test1[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_AM_FIX_test1[g_sub_menu_selection]);
|
||||
// g_setting_am_fix = g_sub_menu_selection;
|
||||
break;
|
||||
#endif
|
||||
@ -717,20 +717,20 @@ void UI_DisplayMenu(void)
|
||||
#ifdef ENABLE_KEYLOCK
|
||||
case MENU_AUTO_KEY_LOCK:
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcpy(String, "OFF");
|
||||
strcpy(str, "OFF");
|
||||
else
|
||||
sprintf(String, "%u secs", key_lock_timeout_500ms / 2);
|
||||
sprintf(str, "%u secs", key_lock_timeout_500ms / 2);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MENU_COMPAND:
|
||||
strcpy(String, g_sub_menu_rx_tx[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_rx_tx[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_CONTRAST
|
||||
case MENU_CONTRAST:
|
||||
strcpy(String, "CONTRAST\n");
|
||||
sprintf(String + strlen(String), "%d", g_sub_menu_selection);
|
||||
strcpy(str, "CONTRAST\n");
|
||||
sprintf(str + strlen(str), "%d", g_sub_menu_selection);
|
||||
//g_setting_contrast = g_sub_menu_selection
|
||||
ST7565_SetContrast(g_sub_menu_selection);
|
||||
g_update_display = true;
|
||||
@ -748,70 +748,70 @@ void UI_DisplayMenu(void)
|
||||
#endif
|
||||
case MENU_S_ADD1:
|
||||
case MENU_S_ADD2:
|
||||
strcpy(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_BUSY_CHAN_LOCK:
|
||||
strcpy(String, "BSY CH TX\nLOCKOUT\n");
|
||||
strcat(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, "BSY CH TX\nLOCKOUT\n");
|
||||
strcat(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_DTMF_DCD:
|
||||
case MENU_DTMF_LIVE_DEC:
|
||||
strcpy(String, "DTMF\nDECODE\n");
|
||||
strcat(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, "DTMF\nDECODE\n");
|
||||
strcat(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_STE:
|
||||
strcpy(String, "SUB TAIL\nELIMIN\n");
|
||||
strcat(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, "SUB TAIL\nELIMIN\n");
|
||||
strcat(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_BEEP:
|
||||
strcpy(String, "KEY BEEP\n");
|
||||
strcat(String + strlen(String), g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, "KEY BEEP\n");
|
||||
strcat(str + strlen(str), g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_DTMF_ST:
|
||||
strcpy(String, "DTMF\nSIDETONE\n");
|
||||
strcat(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, "DTMF\nSIDETONE\n");
|
||||
strcat(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_NOAA
|
||||
case MENU_NOAA_SCAN:
|
||||
strcpy(String, "SCAN\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "SCAN\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MENU_350_EN:
|
||||
strcpy(String, "350~400\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "350~400\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_350_TX:
|
||||
strcpy(String, "TX\n350~400\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "TX\n350~400\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_174_TX:
|
||||
strcpy(String, "TX\n174~350\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "TX\n174~350\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_470_TX:
|
||||
strcpy(String, "TX\n470~600\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "TX\n470~600\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_SCRAMBLER_EN:
|
||||
strcpy(String, "SCRAMBLER\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "SCRAMBLER\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_TX_EN:
|
||||
strcpy(String, "TX\n");
|
||||
strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
strcpy(str, "TX\n");
|
||||
strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_MEM_SAVE:
|
||||
@ -821,17 +821,17 @@ void UI_DisplayMenu(void)
|
||||
char s[11];
|
||||
const bool valid = RADIO_CheckValidChannel(g_sub_menu_selection, false, 0);
|
||||
|
||||
UI_GenerateChannelStringEx(String, valid ? "CH-" : "", g_sub_menu_selection);
|
||||
UI_GenerateChannelStringEx(str, valid ? "CH-" : "", g_sub_menu_selection);
|
||||
|
||||
// channel name
|
||||
BOARD_fetchChannelName(s, g_sub_menu_selection);
|
||||
strcat(String, "\n");
|
||||
strcat(String, (s[0] == 0) ? "--" : s);
|
||||
strcat(str, "\n");
|
||||
strcat(str, (s[0] == 0) ? "--" : s);
|
||||
|
||||
if (valid && !g_ask_for_confirmation)
|
||||
{ // show the frequency so that the user knows the channels frequency
|
||||
const uint32_t frequency = BOARD_fetchChannelFrequency(g_sub_menu_selection);
|
||||
sprintf(String + strlen(String), "\n%u.%05u", frequency / 100000, frequency % 100000);
|
||||
sprintf(str + strlen(str), "\n%u.%05u", frequency / 100000, frequency % 100000);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -842,8 +842,8 @@ void UI_DisplayMenu(void)
|
||||
const bool valid = RADIO_CheckValidChannel(g_sub_menu_selection, false, 0);
|
||||
const unsigned int y = (!g_in_sub_menu || g_edit_index < 0) ? 1 : 0;
|
||||
|
||||
UI_GenerateChannelStringEx(String, valid ? "CH-" : "", g_sub_menu_selection);
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, y, 8);
|
||||
UI_GenerateChannelStringEx(str, valid ? "CH-" : "", g_sub_menu_selection);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, y, 8);
|
||||
|
||||
if (valid)
|
||||
{
|
||||
@ -851,10 +851,10 @@ void UI_DisplayMenu(void)
|
||||
|
||||
if (!g_in_sub_menu || g_edit_index < 0)
|
||||
{ // show the channel name
|
||||
BOARD_fetchChannelName(String, g_sub_menu_selection);
|
||||
if (String[0] == 0)
|
||||
strcpy(String, "--");
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, y + 2, 8);
|
||||
BOARD_fetchChannelName(str, g_sub_menu_selection);
|
||||
if (str[0] == 0)
|
||||
strcpy(str, "--");
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, y + 2, 8);
|
||||
}
|
||||
else
|
||||
{ // show the channel name being edited
|
||||
@ -865,11 +865,11 @@ void UI_DisplayMenu(void)
|
||||
|
||||
if (!g_ask_for_confirmation)
|
||||
{ // show the frequency so that the user knows the channels frequency
|
||||
sprintf(String, "%u.%05u", frequency / 100000, frequency % 100000);
|
||||
sprintf(str, "%u.%05u", frequency / 100000, frequency % 100000);
|
||||
if (!g_in_sub_menu || g_edit_index < 0)
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, y + 4, 8);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, y + 4, 8);
|
||||
else
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, y + 5, 8);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, y + 5, 8);
|
||||
}
|
||||
}
|
||||
|
||||
@ -878,81 +878,81 @@ void UI_DisplayMenu(void)
|
||||
}
|
||||
|
||||
case MENU_BAT_SAVE:
|
||||
strcpy(String, g_sub_menu_bat_save[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_bat_save[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_DUAL_WATCH:
|
||||
// strcpy(String, g_sub_menu_dual_watch[g_sub_menu_selection]);
|
||||
strcpy(String, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_off_on[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_SCAN_HOLD:
|
||||
strcpy(String, "SCAN HOLD\n");
|
||||
sprintf(String + strlen(String), "%d.%d sec", g_sub_menu_selection / 2, 5 * (g_sub_menu_selection % 2));
|
||||
strcpy(str, "SCAN HOLD\n");
|
||||
sprintf(str + strlen(str), "%d.%d sec", g_sub_menu_selection / 2, 5 * (g_sub_menu_selection % 2));
|
||||
break;
|
||||
|
||||
case MENU_CROSS_VFO:
|
||||
strcpy(String, g_sub_menu_cross_vfo[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_cross_vfo[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_TX_TO:
|
||||
strcpy(String, g_sub_menu_tx_timeout[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_tx_timeout[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
case MENU_VOICE:
|
||||
strcpy(String, g_sub_menu_voice[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_voice[g_sub_menu_selection]);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MENU_SCAN_CAR_RESUME:
|
||||
strcpy(String, "SCAN\nRESUME\n");
|
||||
strcat(String, g_sub_menu_scan_car_resume[g_sub_menu_selection]);
|
||||
strcpy(str, "SCAN\nRESUME\n");
|
||||
strcat(str, g_sub_menu_scan_car_resume[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_MEM_DISP:
|
||||
strcpy(String, g_sub_menu_mem_disp[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_mem_disp[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_RP_STE:
|
||||
if (g_sub_menu_selection == 0)
|
||||
strcpy(String, "OFF");
|
||||
strcpy(str, "OFF");
|
||||
else
|
||||
sprintf(String, "%d*100ms", g_sub_menu_selection);
|
||||
sprintf(str, "%d*100ms", g_sub_menu_selection);
|
||||
break;
|
||||
|
||||
case MENU_S_LIST:
|
||||
if (g_sub_menu_selection < 2)
|
||||
sprintf(String, "LIST%u", 1 + g_sub_menu_selection);
|
||||
sprintf(str, "LIST%u", 1 + g_sub_menu_selection);
|
||||
else
|
||||
strcpy(String, "ALL");
|
||||
strcpy(str, "ALL");
|
||||
break;
|
||||
|
||||
#ifdef ENABLE_ALARM
|
||||
case MENU_ALARM_MODE:
|
||||
strcpy(String, "TX ALARM\n");
|
||||
sprintf(String + strlen(String), g_sub_menu_alarm_mode[g_sub_menu_selection]);
|
||||
strcpy(str, "TX ALARM\n");
|
||||
sprintf(str + strlen(str), g_sub_menu_alarm_mode[g_sub_menu_selection]);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MENU_ANI_ID:
|
||||
strcpy(String, "YOUR ID\n");
|
||||
strcat(String, g_eeprom.ani_dtmf_id);
|
||||
strcpy(str, "YOUR ID\n");
|
||||
strcat(str, g_eeprom.ani_dtmf_id);
|
||||
break;
|
||||
|
||||
case MENU_UP_CODE:
|
||||
strcpy(String, "PTT DTMF\nBEGIN\n");
|
||||
strcat(String, g_eeprom.dtmf_key_up_code);
|
||||
strcpy(str, "PTT DTMF\nBEGIN\n");
|
||||
strcat(str, g_eeprom.dtmf_key_up_code);
|
||||
break;
|
||||
|
||||
case MENU_DN_CODE:
|
||||
strcpy(String, "PTT DTMF\nEND\n");
|
||||
strcat(String, g_eeprom.dtmf_key_down_code);
|
||||
strcpy(str, "PTT DTMF\nEND\n");
|
||||
strcat(str, g_eeprom.dtmf_key_down_code);
|
||||
break;
|
||||
|
||||
case MENU_DTMF_RSP:
|
||||
strcpy(String, "DTMF\nRESPONSE\n");
|
||||
strcat(String, g_sub_menu_dtmf_rsp[g_sub_menu_selection]);
|
||||
strcpy(str, "DTMF\nRESPONSE\n");
|
||||
strcat(str, g_sub_menu_dtmf_rsp[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_DTMF_HOLD:
|
||||
@ -975,58 +975,58 @@ void UI_DisplayMenu(void)
|
||||
case 61: g_sub_menu_selection = 5; break;
|
||||
}
|
||||
|
||||
strcpy(String, "DTMF MSG\n");
|
||||
strcpy(str, "DTMF MSG\n");
|
||||
if (g_sub_menu_selection < DTMF_HOLD_MAX)
|
||||
sprintf(String + strlen(String), "%d sec", g_sub_menu_selection);
|
||||
sprintf(str + strlen(str), "%d sec", g_sub_menu_selection);
|
||||
else
|
||||
strcat(String, "STAY ON\nSCREEN"); // 60
|
||||
strcat(str, "STAY ON\nSCREEN"); // 60
|
||||
|
||||
break;
|
||||
|
||||
case MENU_DTMF_PRE:
|
||||
strcpy(String, "TX DTMF\nDELAY\n");
|
||||
strcpy(str, "TX DTMF\nDELAY\n");
|
||||
// sprintf(String + strlen(String), "%d*10ms", g_sub_menu_selection);
|
||||
sprintf(String + strlen(String), "%dms", 10 * g_sub_menu_selection);
|
||||
sprintf(str + strlen(str), "%dms", 10 * g_sub_menu_selection);
|
||||
break;
|
||||
|
||||
case MENU_PTT_ID:
|
||||
strcpy(String, (g_sub_menu_selection > 0) ? "TX ID\n" : "");
|
||||
strcat(String, g_sub_menu_ptt_id[g_sub_menu_selection]);
|
||||
strcpy(str, (g_sub_menu_selection > 0) ? "TX ID\n" : "");
|
||||
strcat(str, g_sub_menu_ptt_id[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_BAT_TXT:
|
||||
strcpy(String, g_sub_menu_bat_text[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_bat_text[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_DTMF_LIST:
|
||||
{
|
||||
char Contact[17];
|
||||
g_dtmf_is_contact_valid = DTMF_GetContact((int)g_sub_menu_selection - 1, Contact);
|
||||
strcpy(String, "DTMF\n");
|
||||
strcpy(str, "DTMF\n");
|
||||
if (!g_dtmf_is_contact_valid)
|
||||
{
|
||||
strcat(String, "NULL");
|
||||
strcat(str, "NULL");
|
||||
}
|
||||
else
|
||||
{
|
||||
memmove(String + strlen(String), Contact, 8);
|
||||
memcpy(str + strlen(str), Contact, 8);
|
||||
Contact[11] = 0;
|
||||
memmove(&g_dtmf_id, Contact + 8, 4);
|
||||
sprintf(String + strlen(String), "\nID:%s", Contact + 8);
|
||||
memcpy(&g_dtmf_id, Contact + 8, sizeof(g_dtmf_id));
|
||||
sprintf(str + strlen(str), "\nID:%s", Contact + 8);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MENU_PON_MSG:
|
||||
strcpy(String, g_sub_menu_pwr_on_msg[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_pwr_on_msg[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_ROGER_MODE:
|
||||
strcpy(String, g_sub_menu_roger_mode[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_roger_mode[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_VOLTAGE:
|
||||
sprintf(String, "%u.%02uV\n%u%%\ncurr %u",
|
||||
sprintf(str, "%u.%02uV\n%u%%\ncurr %u",
|
||||
g_battery_voltage_average / 100, g_battery_voltage_average % 100,
|
||||
BATTERY_VoltsToPercent(g_battery_voltage_average),
|
||||
g_usb_current);
|
||||
@ -1037,7 +1037,7 @@ void UI_DisplayMenu(void)
|
||||
case MENU_SIDE1_LONG:
|
||||
case MENU_SIDE2_SHORT:
|
||||
case MENU_SIDE2_LONG:
|
||||
strcpy(String, g_sub_menu_side_butt[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_side_butt[g_sub_menu_selection]);
|
||||
break;
|
||||
#endif
|
||||
|
||||
@ -1047,69 +1047,69 @@ void UI_DisplayMenu(void)
|
||||
unsigned int m = 0;
|
||||
unsigned int k = 0;
|
||||
i = 0;
|
||||
while (i < (sizeof(String) - 1) && k < slen)
|
||||
while (i < (sizeof(str) - 1) && k < slen)
|
||||
{
|
||||
const char c = Version_str[k++];
|
||||
if (c == ' ' || c == '-' || c == '_')
|
||||
{
|
||||
if (m >= 3)
|
||||
{
|
||||
String[i++] = '\n';
|
||||
str[i++] = '\n';
|
||||
m = 0;
|
||||
}
|
||||
else
|
||||
String[i++] = c;
|
||||
str[i++] = c;
|
||||
}
|
||||
else
|
||||
{
|
||||
String[i++] = c;
|
||||
if (++m >= 9 && k < slen && i < (sizeof(String) - 1))
|
||||
str[i++] = c;
|
||||
if (++m >= 9 && k < slen && i < (sizeof(str) - 1))
|
||||
{
|
||||
if (m > 0)
|
||||
{
|
||||
m = 0;
|
||||
String[i++] = '\n';
|
||||
str[i++] = '\n';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add the date and time
|
||||
strcat(String, "\n \n" __DATE__ "\n" __TIME__);
|
||||
strcat(str, "\n \n" __DATE__ "\n" __TIME__);
|
||||
break;
|
||||
}
|
||||
|
||||
case MENU_RESET:
|
||||
strcpy(String, g_sub_menu_reset[g_sub_menu_selection]);
|
||||
strcpy(str, g_sub_menu_reset[g_sub_menu_selection]);
|
||||
break;
|
||||
|
||||
case MENU_FREQ_LOCK:
|
||||
switch (g_sub_menu_selection)
|
||||
{
|
||||
case FREQ_LOCK_NORMAL:
|
||||
strcpy(String, "137~174\n400~470\n+ others");
|
||||
strcpy(str, "137~174\n400~470\n+ others");
|
||||
break;
|
||||
case FREQ_LOCK_FCC:
|
||||
strcpy(String, "FCC HAM\n144~148\n420~450");
|
||||
strcpy(str, "FCC HAM\n144~148\n420~450");
|
||||
break;
|
||||
case FREQ_LOCK_CE:
|
||||
strcpy(String, "CE HAM\n144~146\n430~440");
|
||||
strcpy(str, "CE HAM\n144~146\n430~440");
|
||||
break;
|
||||
case FREQ_LOCK_GB:
|
||||
strcpy(String, "GB HAM\n144~148\n430~440");
|
||||
strcpy(str, "GB HAM\n144~148\n430~440");
|
||||
break;
|
||||
case FREQ_LOCK_430:
|
||||
strcpy(String, "137~174\n400~430");
|
||||
strcpy(str, "137~174\n400~430");
|
||||
break;
|
||||
case FREQ_LOCK_438:
|
||||
strcpy(String, "137~174\n400~438");
|
||||
strcpy(str, "137~174\n400~438");
|
||||
break;
|
||||
case FREQ_LOCK_446:
|
||||
strcpy(String, "446.00625\n~\n446.19375");
|
||||
strcpy(str, "446.00625\n~\n446.19375");
|
||||
break;
|
||||
#ifdef ENABLE_TX_UNLOCK
|
||||
case FREQ_LOCK_TX_UNLOCK:
|
||||
sprintf(String, "UNLOCKED\n%u~%u", BX4819_BAND1.lower / 100000, BX4819_BAND2.upper / 100000);
|
||||
sprintf(str, "UNLOCKED\n%u~%u", BX4819_BAND1.lower / 100000, BX4819_BAND2.upper / 100000);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
@ -1123,7 +1123,7 @@ void UI_DisplayMenu(void)
|
||||
|
||||
writeXtalFreqCal(g_sub_menu_selection, false);
|
||||
|
||||
sprintf(String, "%d\n%u.%06u\nMHz",
|
||||
sprintf(str, "%d\n%u.%06u\nMHz",
|
||||
g_sub_menu_selection,
|
||||
xtal_Hz / 1000000, xtal_Hz % 1000000);
|
||||
}
|
||||
@ -1134,9 +1134,9 @@ void UI_DisplayMenu(void)
|
||||
{
|
||||
const uint16_t vol = (uint32_t)g_battery_voltage_average * g_battery_calibration[3] / g_sub_menu_selection;
|
||||
if (!g_in_sub_menu)
|
||||
sprintf(String, "%u.%02uV\n%d", vol / 100, vol % 100, g_sub_menu_selection);
|
||||
sprintf(str, "%u.%02uV\n%d", vol / 100, vol % 100, g_sub_menu_selection);
|
||||
else
|
||||
sprintf(String, "%u.%02uV\n(%#4d)\n%#4d", vol / 100, vol % 100, g_battery_calibration[3], g_sub_menu_selection);
|
||||
sprintf(str, "%u.%02uV\n(%#4d)\n%#4d", vol / 100, vol % 100, g_battery_calibration[3], g_sub_menu_selection);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1148,7 +1148,7 @@ void UI_DisplayMenu(void)
|
||||
|
||||
unsigned int y;
|
||||
unsigned int lines = 1;
|
||||
unsigned int len = strlen(String);
|
||||
unsigned int len = strlen(str);
|
||||
bool small = false;
|
||||
|
||||
if (len > 0)
|
||||
@ -1156,10 +1156,10 @@ void UI_DisplayMenu(void)
|
||||
// count number of lines
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
if (String[i] == '\n' && i < (len - 1))
|
||||
if (str[i] == '\n' && i < (len - 1))
|
||||
{ // found new line char
|
||||
lines++;
|
||||
String[i] = 0; // null terminate the line
|
||||
str[i] = 0; // null terminate the line
|
||||
}
|
||||
}
|
||||
|
||||
@ -1180,16 +1180,16 @@ void UI_DisplayMenu(void)
|
||||
for (i = 0; i < len && lines > 0; lines--)
|
||||
{
|
||||
if (small)
|
||||
UI_PrintStringSmall(String + i, sub_menu_x1, sub_menu_x2, y);
|
||||
UI_PrintStringSmall(str + i, sub_menu_x1, sub_menu_x2, y);
|
||||
else
|
||||
UI_PrintString(String + i, sub_menu_x1, sub_menu_x2, y, 8);
|
||||
UI_PrintString(str + i, sub_menu_x1, sub_menu_x2, y, 8);
|
||||
|
||||
// look for start of next line
|
||||
while (i < len && String[i] >= 32)
|
||||
while (i < len && str[i] >= 32)
|
||||
i++;
|
||||
|
||||
// hop over the null term char(s)
|
||||
while (i < len && String[i] < 32)
|
||||
while (i < len && str[i] < 32)
|
||||
i++;
|
||||
|
||||
y += small ? 1 : 2;
|
||||
@ -1203,43 +1203,43 @@ void UI_DisplayMenu(void)
|
||||
|
||||
// if (g_sub_menu_selection == 0xFF)
|
||||
if (g_sub_menu_selection < 0)
|
||||
strcpy(String, "NULL");
|
||||
strcpy(str, "NULL");
|
||||
else
|
||||
UI_GenerateChannelStringEx(String, "CH-", g_sub_menu_selection);
|
||||
UI_GenerateChannelStringEx(str, "CH-", g_sub_menu_selection);
|
||||
|
||||
// if (g_sub_menu_selection == 0xFF || !g_eeprom.scan_list_enabled[i])
|
||||
if (g_sub_menu_selection < 0 || !g_eeprom.scan_list_enabled[i])
|
||||
{
|
||||
// channel number
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 0, 8);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 0, 8);
|
||||
|
||||
// channel name
|
||||
BOARD_fetchChannelName(String, g_sub_menu_selection);
|
||||
if (String[0] == 0)
|
||||
strcpy(String, "--");
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 2, 8);
|
||||
BOARD_fetchChannelName(str, g_sub_menu_selection);
|
||||
if (str[0] == 0)
|
||||
strcpy(str, "--");
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 2, 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
// channel number
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 0, 8);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 0, 8);
|
||||
|
||||
// channel name
|
||||
BOARD_fetchChannelName(String, g_sub_menu_selection);
|
||||
if (String[0] == 0)
|
||||
strcpy(String, "--");
|
||||
UI_PrintStringSmall(String, sub_menu_x1, sub_menu_x2, 2);
|
||||
BOARD_fetchChannelName(str, g_sub_menu_selection);
|
||||
if (str[0] == 0)
|
||||
strcpy(str, "--");
|
||||
UI_PrintStringSmall(str, sub_menu_x1, sub_menu_x2, 2);
|
||||
|
||||
if (IS_USER_CHANNEL(g_eeprom.scan_list_priority_ch1[i]))
|
||||
{
|
||||
sprintf(String, "PRI1:%u", g_eeprom.scan_list_priority_ch1[i] + 1);
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 3, 8);
|
||||
sprintf(str, "PRI1:%u", g_eeprom.scan_list_priority_ch1[i] + 1);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 3, 8);
|
||||
}
|
||||
|
||||
if (IS_USER_CHANNEL(g_eeprom.scan_list_priority_ch2[i]))
|
||||
{
|
||||
sprintf(String, "PRI2:%u", g_eeprom.scan_list_priority_ch2[i] + 1);
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 5, 8);
|
||||
sprintf(str, "PRI2:%u", g_eeprom.scan_list_priority_ch2[i] + 1);
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 5, 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1264,9 +1264,9 @@ void UI_DisplayMenu(void)
|
||||
if (g_in_sub_menu)
|
||||
{
|
||||
unsigned int Offset;
|
||||
NUMBER_ToDigits(g_sub_menu_selection, String);
|
||||
NUMBER_ToDigits(g_sub_menu_selection, str);
|
||||
Offset = (g_menu_cursor == MENU_DTMF_LIST) ? 2 : 3;
|
||||
UI_Displaysmall_digits(Offset, String + (8 - Offset), 105, 0, false);
|
||||
UI_Displaysmall_digits(Offset, str + (8 - Offset), 105, 0, false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1275,8 +1275,8 @@ void UI_DisplayMenu(void)
|
||||
g_menu_cursor == MENU_MEM_NAME ||
|
||||
g_menu_cursor == MENU_MEM_DEL) && g_ask_for_confirmation)
|
||||
{ // display confirmation
|
||||
strcpy(String, (g_ask_for_confirmation == 1) ? "SURE?" : "WAIT!");
|
||||
UI_PrintString(String, sub_menu_x1, sub_menu_x2, 5, 8);
|
||||
strcpy(str, (g_ask_for_confirmation == 1) ? "SURE?" : "WAIT!");
|
||||
UI_PrintString(str, sub_menu_x1, sub_menu_x2, 5, 8);
|
||||
}
|
||||
|
||||
ST7565_BlitFullScreen();
|
||||
|
Reference in New Issue
Block a user