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_TX_TIMEOUT_BAR := 0
ENABLE_TX_AUDIO_BAR := 1
ENABLE_COPY_CHAN_TO_VFO := 1
ENABLE_COPY_CHAN_TO_VFO_TO_CHAN := 1
#ENABLE_PANADAPTER := 0
#ENABLE_SINGLE_VFO_CHAN := 0
@ -369,8 +369,8 @@ endif
ifeq ($(ENABLE_TX_TIMEOUT_BAR),1)
CFLAGS += -DENABLE_TX_TIMEOUT_BAR
endif
ifeq ($(ENABLE_COPY_CHAN_TO_VFO),1)
CFLAGS += -DENABLE_COPY_CHAN_TO_VFO
ifeq ($(ENABLE_COPY_CHAN_TO_VFO_TO_CHAN),1)
CFLAGS += -DENABLE_COPY_CHAN_TO_VFO_TO_CHAN
endif
ifeq ($(ENABLE_SINGLE_VFO_CHAN),1)
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_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_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_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/main.h"
#include "app/search.h"
#ifdef ENABLE_SPECTRUM
// #include "app/spectrum.h"
#endif
#include "audio.h"
#include "board.h"
#include "driver/bk4819.h"
@ -35,9 +38,7 @@
#include "settings.h"
#include "ui/inputbox.h"
#include "ui/ui.h"
#ifdef ENABLE_SPECTRUM
// #include "app/spectrum.h"
#endif
#include "ui/menu.h"
void toggle_chan_scanlist(void)
{ // 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)
{ // key just pressed
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
AUDIO_PlayBeep(BEEP_1KHZ_60MS_OPTIONAL);
}
if (key_held)
@ -609,20 +610,13 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
g_fkey_pressed = false;
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)
{
if (g_current_function != FUNCTION_INCOMING ||
g_rx_reception_mode == RX_MODE_NONE ||
g_scan_pause_10ms == 0)
{ // scan is running (not paused)
return;
}
}
if (g_scan_state_dir == SCAN_STATE_DIR_OFF &&
g_css_scan_mode == CSS_SCAN_MODE_OFF &&
g_eeprom.dual_watch == DUAL_WATCH_OFF &&
g_eeprom.vfo_open)
{ // not scanning
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_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
{
@ -671,6 +680,7 @@ void MAIN_Key_MENU(const bool key_pressed, const bool key_held)
{
g_flag_refresh_menu = true;
g_request_display_screen = DISPLAY_MENU;
#ifdef ENABLE_VOICE
g_another_voice_id = VOICE_ID_MENU;
#endif

43
audio.c
View File

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

12
audio.h
View File

@ -20,8 +20,7 @@
#include <stdbool.h>
#include <stdint.h>
enum beep_type_e
{
enum beep_type_e {
BEEP_NONE = 0,
BEEP_1KHZ_60MS_OPTIONAL,
BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL,
@ -39,14 +38,12 @@ extern beep_type_t g_beep_to_play;
void AUDIO_PlayBeep(beep_type_t Beep);
enum
{
enum {
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_1 = 0x01U,
VOICE_ID_2 = 0x02U,
@ -144,4 +141,3 @@ typedef enum voice_id_e voice_id_t;
#endif
#endif

Binary file not shown.

Binary file not shown.

View File

@ -1237,12 +1237,15 @@ void UI_DisplayMenu(void)
g_menu_cursor == MENU_RX_CDCSS ||
g_menu_cursor == MENU_TX_CDCSS ||
g_menu_cursor == MENU_DTMF_LIST)
{
if (g_is_in_sub_menu)
{
unsigned int Offset;
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 ||
g_menu_cursor == MENU_MEM_SAVE ||