mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-28 22:31:25 +03:00
Fixed side key scan start AND stop
This commit is contained in:
parent
dee38f429f
commit
a3aa3da2db
15
app/action.c
15
app/action.c
@ -160,7 +160,8 @@ void ACTION_Scan(bool bRestart)
|
||||
#endif
|
||||
|
||||
if (gScreenToDisplay != DISPLAY_SCANNER)
|
||||
{
|
||||
{ // not scanning
|
||||
|
||||
RADIO_SelectVfos();
|
||||
|
||||
#ifdef ENABLE_NOAA
|
||||
@ -192,6 +193,18 @@ void ACTION_Scan(bool bRestart)
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
if (!bRestart)
|
||||
{ // scanning
|
||||
|
||||
SCANNER_Stop();
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
gAnotherVoiceID = VOICE_ID_SCANNING_STOP;
|
||||
#endif
|
||||
|
||||
gRequestDisplayScreen = DISPLAY_MAIN;
|
||||
}
|
||||
}
|
||||
|
||||
void ACTION_Vox(void)
|
||||
|
31
app/app.c
31
app/app.c
@ -2068,7 +2068,7 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
const bool backlight_was_on = GPIO_CheckBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
|
||||
|
||||
if (Key == KEY_EXIT && !backlight_was_on && gEeprom.BACKLIGHT > 0)
|
||||
{ // just turn the light on for now
|
||||
{ // just turn the light on for now so the user can see what's what
|
||||
BACKLIGHT_TurnOn();
|
||||
gBeepToPlay = BEEP_NONE;
|
||||
return;
|
||||
@ -2172,11 +2172,13 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
}
|
||||
|
||||
if (gScanState != SCAN_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR)
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_SIDE1 &&
|
||||
Key != KEY_SIDE2 &&
|
||||
Key != KEY_STAR)
|
||||
{ // scanning
|
||||
if (bKeyPressed && !bKeyHeld)
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
@ -2184,12 +2186,14 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
}
|
||||
|
||||
if (gCssScanMode != CSS_SCAN_MODE_OFF &&
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_STAR &&
|
||||
Key != KEY_MENU)
|
||||
Key != KEY_PTT &&
|
||||
Key != KEY_UP &&
|
||||
Key != KEY_DOWN &&
|
||||
Key != KEY_EXIT &&
|
||||
Key != KEY_SIDE1 &&
|
||||
Key != KEY_SIDE2 &&
|
||||
Key != KEY_STAR &&
|
||||
Key != KEY_MENU)
|
||||
{ // code scanning
|
||||
if (bKeyPressed && !bKeyHeld)
|
||||
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL);
|
||||
@ -2224,7 +2228,8 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
||||
if (gF_LOCK && (Key == KEY_PTT || Key == KEY_SIDE2 || Key == KEY_SIDE1))
|
||||
// if (gF_LOCK && (Key == KEY_PTT || Key == KEY_SIDE2 || Key == KEY_SIDE1))
|
||||
if (gF_LOCK && Key == KEY_PTT)
|
||||
return;
|
||||
|
||||
if (!bFlag)
|
||||
|
108
app/menu.c
108
app/menu.c
@ -1314,9 +1314,7 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
||||
if (edit_index < 0)
|
||||
{ // enter channel name edit mode
|
||||
if (!RADIO_CheckValidChannel(gSubMenuSelection, false, 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
BOARD_fetchChannelName(edit, gSubMenuSelection);
|
||||
|
||||
@ -1327,6 +1325,9 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
||||
edit[edit_index] = 0;
|
||||
edit_index = 0; // 'edit_index' is going to be used as the cursor position
|
||||
|
||||
// make a copy so we can test for change when exiting the menu item
|
||||
memmove(edit_original, edit, sizeof(edit_original));
|
||||
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -1337,56 +1338,73 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
|
||||
return; // next char
|
||||
|
||||
// exit
|
||||
gFlagAcceptSetting = false;
|
||||
gAskForConfirmation = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (gMenuCursor == MENU_RESET ||
|
||||
gMenuCursor == MENU_MEM_CH ||
|
||||
gMenuCursor == MENU_DEL_CH ||
|
||||
gMenuCursor == MENU_MEM_NAME)
|
||||
{
|
||||
switch (gAskForConfirmation)
|
||||
{
|
||||
case 0:
|
||||
gAskForConfirmation = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
gAskForConfirmation = 2;
|
||||
|
||||
UI_DisplayMenu();
|
||||
|
||||
if (gMenuCursor == MENU_RESET)
|
||||
{
|
||||
#ifdef ENABLE_VOICE
|
||||
AUDIO_SetVoiceID(0, VOICE_ID_CONFIRM);
|
||||
AUDIO_PlaySingleVoice(true);
|
||||
#endif
|
||||
|
||||
MENU_AcceptSetting();
|
||||
|
||||
#if defined(ENABLE_OVERLAY)
|
||||
overlay_FLASH_RebootToBootloader();
|
||||
#else
|
||||
NVIC_SystemReset();
|
||||
#endif
|
||||
}
|
||||
|
||||
gFlagAcceptSetting = true;
|
||||
if (memcmp(edit_original, edit, sizeof(edit_original)) == 0)
|
||||
{ // no change
|
||||
gFlagAcceptSetting = false;
|
||||
gIsInSubMenu = false;
|
||||
gAskForConfirmation = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gFlagAcceptSetting = false;
|
||||
gAskForConfirmation = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
// exiting the sub menu
|
||||
|
||||
if (gIsInSubMenu)
|
||||
{
|
||||
gFlagAcceptSetting = true;
|
||||
gIsInSubMenu = false;
|
||||
if (gMenuCursor == MENU_RESET ||
|
||||
gMenuCursor == MENU_MEM_CH ||
|
||||
gMenuCursor == MENU_DEL_CH ||
|
||||
gMenuCursor == MENU_MEM_NAME)
|
||||
{
|
||||
switch (gAskForConfirmation)
|
||||
{
|
||||
case 0:
|
||||
gAskForConfirmation = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
gAskForConfirmation = 2;
|
||||
|
||||
UI_DisplayMenu();
|
||||
|
||||
if (gMenuCursor == MENU_RESET)
|
||||
{
|
||||
#ifdef ENABLE_VOICE
|
||||
AUDIO_SetVoiceID(0, VOICE_ID_CONFIRM);
|
||||
AUDIO_PlaySingleVoice(true);
|
||||
#endif
|
||||
|
||||
MENU_AcceptSetting();
|
||||
|
||||
#if defined(ENABLE_OVERLAY)
|
||||
overlay_FLASH_RebootToBootloader();
|
||||
#else
|
||||
NVIC_SystemReset();
|
||||
#endif
|
||||
}
|
||||
|
||||
gFlagAcceptSetting = true;
|
||||
gIsInSubMenu = false;
|
||||
gAskForConfirmation = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gFlagAcceptSetting = true;
|
||||
gIsInSubMenu = false;
|
||||
}
|
||||
}
|
||||
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gUpdateStatus = true;
|
||||
if (gCssScanMode != CSS_SCAN_MODE_OFF)
|
||||
{
|
||||
gCssScanMode = CSS_SCAN_MODE_OFF;
|
||||
gUpdateStatus = true;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
if (gMenuCursor == MENU_SCR)
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
@ -275,6 +275,7 @@ int8_t gMenuScrollDirection;
|
||||
int32_t gSubMenuSelection;
|
||||
|
||||
// edit box
|
||||
char edit_original[17]; // a copy of the text before editing
|
||||
char edit[17];
|
||||
int edit_index;
|
||||
|
||||
@ -493,8 +494,8 @@ void UI_DisplayMenu(void)
|
||||
{ // show the channel name being edited
|
||||
UI_PrintString(edit, 50, 0, 2, 8);
|
||||
if (edit_index < 10)
|
||||
// UI_PrintString("^", 50 + (8 * edit_index), 0, 4, 8); // show the cursor
|
||||
UI_PrintStringSmall("^", 50 + (8 * edit_index), 0, 4);
|
||||
UI_PrintString("^", 50 + (8 * edit_index), 0, 4, 8); // show the cursor
|
||||
// UI_PrintStringSmall("^", 50 + (8 * edit_index), 0, 4);
|
||||
}
|
||||
|
||||
if (!gAskForConfirmation)
|
||||
|
Loading…
x
Reference in New Issue
Block a user