0
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:
OneOfEleven 2023-09-20 11:23:45 +01:00
parent dee38f429f
commit a3aa3da2db
8 changed files with 102 additions and 64 deletions

View File

@ -160,7 +160,8 @@ void ACTION_Scan(bool bRestart)
#endif #endif
if (gScreenToDisplay != DISPLAY_SCANNER) if (gScreenToDisplay != DISPLAY_SCANNER)
{ { // not scanning
RADIO_SelectVfos(); RADIO_SelectVfos();
#ifdef ENABLE_NOAA #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) void ACTION_Vox(void)

View File

@ -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); const bool backlight_was_on = GPIO_CheckBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT);
if (Key == KEY_EXIT && !backlight_was_on && gEeprom.BACKLIGHT > 0) 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(); BACKLIGHT_TurnOn();
gBeepToPlay = BEEP_NONE; gBeepToPlay = BEEP_NONE;
return; return;
@ -2172,11 +2172,13 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
} }
if (gScanState != SCAN_OFF && if (gScanState != SCAN_OFF &&
Key != KEY_PTT && Key != KEY_PTT &&
Key != KEY_UP && Key != KEY_UP &&
Key != KEY_DOWN && Key != KEY_DOWN &&
Key != KEY_EXIT && Key != KEY_EXIT &&
Key != KEY_STAR) Key != KEY_SIDE1 &&
Key != KEY_SIDE2 &&
Key != KEY_STAR)
{ // scanning { // scanning
if (bKeyPressed && !bKeyHeld) if (bKeyPressed && !bKeyHeld)
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); 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 && if (gCssScanMode != CSS_SCAN_MODE_OFF &&
Key != KEY_PTT && Key != KEY_PTT &&
Key != KEY_UP && Key != KEY_UP &&
Key != KEY_DOWN && Key != KEY_DOWN &&
Key != KEY_EXIT && Key != KEY_EXIT &&
Key != KEY_STAR && Key != KEY_SIDE1 &&
Key != KEY_MENU) Key != KEY_SIDE2 &&
Key != KEY_STAR &&
Key != KEY_MENU)
{ // code scanning { // code scanning
if (bKeyPressed && !bKeyHeld) if (bKeyPressed && !bKeyHeld)
AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL); 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; 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; return;
if (!bFlag) if (!bFlag)

View File

@ -1314,9 +1314,7 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
if (edit_index < 0) if (edit_index < 0)
{ // enter channel name edit mode { // enter channel name edit mode
if (!RADIO_CheckValidChannel(gSubMenuSelection, false, 0)) if (!RADIO_CheckValidChannel(gSubMenuSelection, false, 0))
{
return; return;
}
BOARD_fetchChannelName(edit, gSubMenuSelection); BOARD_fetchChannelName(edit, gSubMenuSelection);
@ -1327,6 +1325,9 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
edit[edit_index] = 0; edit[edit_index] = 0;
edit_index = 0; // 'edit_index' is going to be used as the cursor position 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; return;
} }
else else
@ -1337,56 +1338,73 @@ static void MENU_Key_MENU(const bool bKeyPressed, const bool bKeyHeld)
return; // next char return; // next char
// exit // exit
gFlagAcceptSetting = false; if (memcmp(edit_original, edit, sizeof(edit_original)) == 0)
gAskForConfirmation = 0; { // no change
} gFlagAcceptSetting = 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; gIsInSubMenu = false;
gAskForConfirmation = 0; gAskForConfirmation = 0;
}
else
{
gFlagAcceptSetting = false;
gAskForConfirmation = 0;
}
} }
} }
else
// exiting the sub menu
if (gIsInSubMenu)
{ {
gFlagAcceptSetting = true; if (gMenuCursor == MENU_RESET ||
gIsInSubMenu = false; 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; if (gCssScanMode != CSS_SCAN_MODE_OFF)
gUpdateStatus = true; {
gCssScanMode = CSS_SCAN_MODE_OFF;
gUpdateStatus = true;
}
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
if (gMenuCursor == MENU_SCR) if (gMenuCursor == MENU_SCR)

BIN
firmware

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -275,6 +275,7 @@ int8_t gMenuScrollDirection;
int32_t gSubMenuSelection; int32_t gSubMenuSelection;
// edit box // edit box
char edit_original[17]; // a copy of the text before editing
char edit[17]; char edit[17];
int edit_index; int edit_index;
@ -493,8 +494,8 @@ void UI_DisplayMenu(void)
{ // show the channel name being edited { // show the channel name being edited
UI_PrintString(edit, 50, 0, 2, 8); UI_PrintString(edit, 50, 0, 2, 8);
if (edit_index < 10) if (edit_index < 10)
// UI_PrintString("^", 50 + (8 * edit_index), 0, 4, 8); // show the cursor UI_PrintString("^", 50 + (8 * edit_index), 0, 4, 8); // show the cursor
UI_PrintStringSmall("^", 50 + (8 * edit_index), 0, 4); // UI_PrintStringSmall("^", 50 + (8 * edit_index), 0, 4);
} }
if (!gAskForConfirmation) if (!gAskForConfirmation)

View File

@ -133,6 +133,7 @@ extern uint8_t gMenuCursor;
extern int8_t gMenuScrollDirection; extern int8_t gMenuScrollDirection;
extern int32_t gSubMenuSelection; extern int32_t gSubMenuSelection;
extern char edit_original[17];
extern char edit[17]; extern char edit[17];
extern int edit_index; extern int edit_index;