0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00

Hide little sub menu number till you enter the sub menu

This commit is contained in:
OneOfEleven 2023-10-18 18:50:37 +01:00
parent ce4528b4ee
commit 36ee70df5b
9 changed files with 90 additions and 70 deletions

View File

@ -46,7 +46,7 @@ ENABLE_FASTER_CHANNEL_SCAN := 1
ENABLE_RX_SIGNAL_BAR := 1 ENABLE_RX_SIGNAL_BAR := 1
ENABLE_TX_TIMEOUT_BAR := 0 ENABLE_TX_TIMEOUT_BAR := 0
ENABLE_TX_AUDIO_BAR := 1 ENABLE_TX_AUDIO_BAR := 1
ENABLE_COPY_CHAN_TO_VFO := 1 ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
#ENABLE_PANADAPTER := 0 #ENABLE_PANADAPTER := 0
#ENABLE_SINGLE_VFO_CHAN := 0 #ENABLE_SINGLE_VFO_CHAN := 0
@ -369,8 +369,8 @@ endif
ifeq ($(ENABLE_TX_TIMEOUT_BAR),1) ifeq ($(ENABLE_TX_TIMEOUT_BAR),1)
CFLAGS += -DENABLE_TX_TIMEOUT_BAR CFLAGS += -DENABLE_TX_TIMEOUT_BAR
endif endif
ifeq ($(ENABLE_COPY_CHAN_TO_VFO),1) ifeq ($(ENABLE_COPY_CHAN_TO_VFO_TO_CHAN),1)
CFLAGS += -DENABLE_COPY_CHAN_TO_VFO CFLAGS += -DENABLE_COPY_CHAN_TO_VFO_TO_CHAN
endif endif
ifeq ($(ENABLE_SINGLE_VFO_CHAN),1) ifeq ($(ENABLE_SINGLE_VFO_CHAN),1)
CFLAGS += -DENABLE_SINGLE_VFO_CHAN CFLAGS += -DENABLE_SINGLE_VFO_CHAN

View File

@ -77,7 +77,7 @@ ENABLE_FASTER_CHANNEL_SCAN := 1 increases the channel scan speed, bu
ENABLE_RX_SIGNAL_BAR := 1 enable a dBm/Sn RSSI bar graph level inplace of the little antenna symbols ENABLE_RX_SIGNAL_BAR := 1 enable a dBm/Sn RSSI bar graph level inplace of the little antenna symbols
ENABLE_TX_TIMEOUT_BAR := 0 show the remainng TX time ENABLE_TX_TIMEOUT_BAR := 0 show the remainng TX time
ENABLE_TX_AUDIO_BAR := 1 enable TX audio level bar, includes remaining TX time (in seconds) ENABLE_TX_AUDIO_BAR := 1 enable TX audio level bar, includes remaining TX time (in seconds)
ENABLE_COPY_CHAN_TO_VFO := 1 copy current channel into the other VFO. Long press Menu key ('M') ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1 long press M, copy channel to VFO, or VFO to channel
#ENABLE_BAND_SCOPE := 0 not yet implemented - spectrum/pan-adapter #ENABLE_BAND_SCOPE := 0 not yet implemented - spectrum/pan-adapter
#ENABLE_SINGLE_VFO_CHAN := 0 not yet implemented - single VFO on display when possible #ENABLE_SINGLE_VFO_CHAN := 0 not yet implemented - single VFO on display when possible
``` ```

View File

@ -24,6 +24,9 @@
#include "app/generic.h" #include "app/generic.h"
#include "app/main.h" #include "app/main.h"
#include "app/search.h" #include "app/search.h"
#ifdef ENABLE_SPECTRUM
// #include "app/spectrum.h"
#endif
#include "audio.h" #include "audio.h"
#include "board.h" #include "board.h"
#include "driver/bk4819.h" #include "driver/bk4819.h"
@ -35,9 +38,7 @@
#include "settings.h" #include "settings.h"
#include "ui/inputbox.h" #include "ui/inputbox.h"
#include "ui/ui.h" #include "ui/ui.h"
#ifdef ENABLE_SPECTRUM #include "ui/menu.h"
// #include "app/spectrum.h"
#endif
void toggle_chan_scanlist(void) void toggle_chan_scanlist(void)
{ // toggle the selected channels scanlist setting { // toggle the selected channels scanlist setting
@ -587,7 +588,7 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
{ {
if (key_pressed && !key_held) if (key_pressed && !key_held)
{ // key just pressed { // key just pressed
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
} }
if (key_held) if (key_held)
@ -609,20 +610,13 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
g_fkey_pressed = false; g_fkey_pressed = false;
g_update_status = true; g_update_status = true;
#ifdef ENABLE_COPY_CHAN_TO_VFO #ifdef ENABLE_COPY_CHAN_TO_VFO_TO_CHAN
if (g_eeprom.vfo_open && g_css_scan_mode == CSS_SCAN_MODE_OFF) if (g_scan_state_dir == SCAN_STATE_DIR_OFF &&
{ g_css_scan_mode == CSS_SCAN_MODE_OFF &&
g_eeprom.dual_watch == DUAL_WATCH_OFF &&
if (g_scan_state_dir != SCAN_STATE_DIR_OFF) g_eeprom.vfo_open)
{ { // not scanning
if (g_current_function != FUNCTION_INCOMING ||
g_rx_reception_mode == RX_MODE_NONE ||
g_scan_pause_10ms == 0)
{ // scan is running (not paused)
return;
}
}
const unsigned int vfo = get_RX_VFO(); const unsigned int vfo = get_RX_VFO();
@ -647,6 +641,21 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
g_update_status = true; g_update_status = true;
g_update_display = true; g_update_display = true;
} }
else
if (IS_FREQ_CHANNEL(g_eeprom.screen_channel[vfo]))
{ // copy VFO to channel
#ifdef ENABLE_VOICE
g_another_voice_id = VOICE_ID_MENU;
#endif
// g_request_display_screen = DISPLAY_MENU;
GUI_SelectNextDisplay(DISPLAY_MENU);
g_menu_cursor = MENU_MEM_SAVE;
g_flag_refresh_menu = true;
g_ask_for_confirmation = 0;
g_is_in_sub_menu = true;
}
} }
else else
{ {
@ -671,6 +680,7 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
{ {
g_flag_refresh_menu = true; g_flag_refresh_menu = true;
g_request_display_screen = DISPLAY_MENU; g_request_display_screen = DISPLAY_MENU;
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
g_another_voice_id = VOICE_ID_MENU; g_another_voice_id = VOICE_ID_MENU;
#endif #endif

57
audio.c
View File

@ -75,28 +75,28 @@ beep_type_t g_beep_to_play = BEEP_NONE;
void AUDIO_PlayBeep(beep_type_t Beep) void AUDIO_PlayBeep(beep_type_t Beep)
{ {
uint16_t ToneConfig; const uint16_t ToneConfig = BK4819_ReadRegister(BK4819_REG_71);
uint16_t ToneFrequency; uint16_t ToneFrequency;
uint16_t Duration; uint16_t Duration;
if (Beep != BEEP_880HZ_60MS_TRIPLE_BEEP && if (!g_eeprom.beep_control)
Beep != BEEP_500HZ_60MS_DOUBLE_BEEP && { // beep not enabled
Beep != BEEP_440HZ_500MS && if (Beep != BEEP_880HZ_60MS_TRIPLE_BEEP &&
Beep != BEEP_880HZ_200MS && Beep != BEEP_500HZ_60MS_DOUBLE_BEEP &&
Beep != BEEP_880HZ_500MS && Beep != BEEP_440HZ_500MS &&
!g_eeprom.beep_control) Beep != BEEP_880HZ_200MS &&
return; Beep != BEEP_880HZ_500MS)
{
return;
}
}
#ifdef ENABLE_AIRCOPY #ifdef ENABLE_AIRCOPY
// if (g_screen_to_display == DISPLAY_AIRCOPY || g_aircopy_state != AIRCOPY_READY) // if (g_screen_to_display == DISPLAY_AIRCOPY || g_aircopy_state != AIRCOPY_READY)
// return; // return;
#endif #endif
if (g_current_function == FUNCTION_RECEIVE) if (g_current_function == FUNCTION_RECEIVE || g_current_function == FUNCTION_MONITOR)
return; return;
if (g_current_function == FUNCTION_MONITOR)
return;
ToneConfig = BK4819_ReadRegister(BK4819_REG_71);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
@ -110,7 +110,9 @@ void AUDIO_PlayBeep(beep_type_t Beep)
#endif #endif
#endif #endif
SYSTEM_DelayMs(20); // whats this for ?
// SYSTEM_DelayMs(20);
SYSTEM_DelayMs(2);
switch (Beep) switch (Beep)
{ {
@ -118,17 +120,21 @@ void AUDIO_PlayBeep(beep_type_t Beep)
case BEEP_NONE: case BEEP_NONE:
ToneFrequency = 220; ToneFrequency = 220;
break; break;
case BEEP_1KHZ_60MS_OPTIONAL: case BEEP_1KHZ_60MS_OPTIONAL:
ToneFrequency = 1000; ToneFrequency = 1000;
break; break;
case BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL: case BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL:
case BEEP_500HZ_60MS_DOUBLE_BEEP: case BEEP_500HZ_60MS_DOUBLE_BEEP:
ToneFrequency = 500; ToneFrequency = 500;
break; break;
case BEEP_440HZ_40MS_OPTIONAL: case BEEP_440HZ_40MS_OPTIONAL:
case BEEP_440HZ_500MS: case BEEP_440HZ_500MS:
ToneFrequency = 440; ToneFrequency = 440;
break; break;
case BEEP_880HZ_40MS_OPTIONAL: case BEEP_880HZ_40MS_OPTIONAL:
case BEEP_880HZ_60MS_TRIPLE_BEEP: case BEEP_880HZ_60MS_TRIPLE_BEEP:
case BEEP_880HZ_200MS: case BEEP_880HZ_200MS:
@ -138,9 +144,7 @@ void AUDIO_PlayBeep(beep_type_t Beep)
} }
BK4819_StartTone1(ToneFrequency, 96, true); BK4819_StartTone1(ToneFrequency, 96, true);
SYSTEM_DelayMs(2); SYSTEM_DelayMs(2);
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
SYSTEM_DelayMs(60); SYSTEM_DelayMs(60);
@ -190,18 +194,25 @@ void AUDIO_PlayBeep(beep_type_t Beep)
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
SYSTEM_DelayMs(Duration); SYSTEM_DelayMs(Duration);
BK4819_EnterTxMute();
SYSTEM_DelayMs(20);
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); BK4819_EnterTxMute();
// SYSTEM_DelayMs(20);
SYSTEM_DelayMs(2);
#ifdef ENABLE_VOX #ifdef ENABLE_VOX
g_vox_resume_count_down = 80; g_vox_resume_count_down = 80;
#endif #endif
SYSTEM_DelayMs(5); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
// SYSTEM_DelayMs(5);
SYSTEM_DelayMs(2);
BK4819_TurnsOffTones_TurnsOnRX(); BK4819_TurnsOffTones_TurnsOnRX();
SYSTEM_DelayMs(5); // SYSTEM_DelayMs(5);
SYSTEM_DelayMs(2);
// restore the register
BK4819_WriteRegister(BK4819_REG_71, ToneConfig); BK4819_WriteRegister(BK4819_REG_71, ToneConfig);
if (g_enable_speaker) if (g_enable_speaker)

14
audio.h
View File

@ -20,8 +20,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
enum beep_type_e enum beep_type_e {
{
BEEP_NONE = 0, BEEP_NONE = 0,
BEEP_1KHZ_60MS_OPTIONAL, BEEP_1KHZ_60MS_OPTIONAL,
BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL, BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL,
@ -35,18 +34,16 @@ enum beep_type_e
}; };
typedef enum beep_type_e beep_type_t; typedef enum beep_type_e beep_type_t;
extern beep_type_t g_beep_to_play; extern beep_type_t g_beep_to_play;
void AUDIO_PlayBeep(beep_type_t Beep); void AUDIO_PlayBeep(beep_type_t Beep);
enum enum {
{
VOICE_ID_CHI_BASE = 0x10U, VOICE_ID_CHI_BASE = 0x10U,
VOICE_ID_ENG_BASE = 0x60U, VOICE_ID_ENG_BASE = 0x60U
}; };
enum voice_id_e enum voice_id_e {
{
VOICE_ID_0 = 0x00U, VOICE_ID_0 = 0x00U,
VOICE_ID_1 = 0x01U, VOICE_ID_1 = 0x01U,
VOICE_ID_2 = 0x02U, VOICE_ID_2 = 0x02U,
@ -144,4 +141,3 @@ typedef enum voice_id_e voice_id_t;
#endif #endif
#endif #endif

Binary file not shown.

Binary file not shown.

View File

@ -1234,14 +1234,17 @@ void UI_DisplayMenu(void)
if (g_menu_cursor == MENU_RX_CTCSS || if (g_menu_cursor == MENU_RX_CTCSS ||
g_menu_cursor == MENU_TX_CTCSS || g_menu_cursor == MENU_TX_CTCSS ||
g_menu_cursor == MENU_RX_CDCSS || g_menu_cursor == MENU_RX_CDCSS ||
g_menu_cursor == MENU_TX_CDCSS || g_menu_cursor == MENU_TX_CDCSS ||
g_menu_cursor == MENU_DTMF_LIST) g_menu_cursor == MENU_DTMF_LIST)
{ {
unsigned int Offset; if (g_is_in_sub_menu)
NUMBER_ToDigits(g_sub_menu_selection, String); {
Offset = (g_menu_cursor == MENU_DTMF_LIST) ? 2 : 3; unsigned int Offset;
UI_Displaysmall_digits(Offset, String + (8 - Offset), 105, 0, false); NUMBER_ToDigits(g_sub_menu_selection, String);
Offset = (g_menu_cursor == MENU_DTMF_LIST) ? 2 : 3;
UI_Displaysmall_digits(Offset, String + (8 - Offset), 105, 0, false);
}
} }
if ((g_menu_cursor == MENU_RESET || if ((g_menu_cursor == MENU_RESET ||

View File

@ -95,7 +95,7 @@ void GUI_SelectNextDisplay(gui_display_type_t Display)
g_ask_for_confirmation = 0; g_ask_for_confirmation = 0;
g_ask_to_save = false; g_ask_to_save = false;
g_ask_to_delete = false; g_ask_to_delete = false;
g_fkey_pressed = false; g_fkey_pressed = false;
g_update_status = true; g_update_status = true;
} }