mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-04-28 14:21:25 +03:00
Hide little sub menu number till you enter the sub menu
This commit is contained in:
parent
ce4528b4ee
commit
36ee70df5b
6
Makefile
6
Makefile
@ -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
|
||||
|
@ -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
|
||||
```
|
||||
|
46
app/main.c
46
app/main.c
@ -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,21 +610,14 @@ 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
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
#ifdef ENABLE_COPY_CHAN_TO_VFO_TO_CHAN
|
||||
|
||||
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();
|
||||
|
||||
if (IS_USER_CHANNEL(g_eeprom.screen_channel[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
|
||||
|
69
audio.c
69
audio.c
@ -75,28 +75,28 @@ beep_type_t g_beep_to_play = BEEP_NONE;
|
||||
|
||||
void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
{
|
||||
uint16_t ToneConfig;
|
||||
uint16_t ToneFrequency;
|
||||
uint16_t Duration;
|
||||
const uint16_t ToneConfig = BK4819_ReadRegister(BK4819_REG_71);
|
||||
uint16_t ToneFrequency;
|
||||
uint16_t Duration;
|
||||
|
||||
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)
|
||||
return;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
@ -224,7 +235,7 @@ void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
|
||||
if (g_eeprom.voice_prompt == VOICE_PROMPT_OFF)
|
||||
return;
|
||||
|
||||
|
||||
GPIO_SetBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0);
|
||||
SYSTEM_DelayMs(20);
|
||||
GPIO_ClearBit(&GPIOA->DATA, GPIOA_PIN_VOICE_0);
|
||||
@ -273,7 +284,7 @@ void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
if (g_current_function == FUNCTION_RECEIVE || g_current_function == FUNCTION_MONITOR)
|
||||
BK4819_SetAF(BK4819_AF_MUTE);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ENABLE_FMRADIO
|
||||
#ifdef MUTE_AUDIO_FOR_VOICE
|
||||
if (g_fm_radio_mode)
|
||||
@ -288,7 +299,7 @@ void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
#endif
|
||||
|
||||
SYSTEM_DelayMs(5);
|
||||
|
||||
|
||||
AUDIO_PlayVoice(VoiceID);
|
||||
|
||||
if (g_voice_write_index == 1)
|
||||
@ -445,10 +456,10 @@ void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
|
||||
// ***********************
|
||||
// unmute the radios audio
|
||||
|
||||
|
||||
if (g_current_function == FUNCTION_RECEIVE || g_current_function == FUNCTION_MONITOR)
|
||||
BK4819_SetAF(g_rx_vfo->am_mode ? BK4819_AF_AM : BK4819_AF_FM);
|
||||
|
||||
|
||||
#ifdef ENABLE_FMRADIO
|
||||
if (g_fm_radio_mode)
|
||||
BK1080_Mute(false);
|
||||
@ -458,7 +469,7 @@ void AUDIO_PlayBeep(beep_type_t Beep)
|
||||
GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
|
||||
|
||||
// **********************
|
||||
|
||||
|
||||
#ifdef ENABLE_VOX
|
||||
g_vox_resume_count_down = 80;
|
||||
#endif
|
||||
|
20
audio.h
20
audio.h
@ -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,
|
||||
@ -35,18 +34,16 @@ enum beep_type_e
|
||||
};
|
||||
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);
|
||||
|
||||
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,
|
||||
@ -123,11 +120,11 @@ enum voice_id_e
|
||||
VOICE_ID_80 = 0x49U,
|
||||
VOICE_ID_90 = 0x4AU,
|
||||
VOICE_ID_END = 0x4BU,
|
||||
|
||||
|
||||
VOICE_ID_INVALID = 0xFFU,
|
||||
};
|
||||
typedef enum voice_id_e voice_id_t;
|
||||
|
||||
|
||||
#ifdef ENABLE_VOICE
|
||||
extern voice_id_t g_voice_id[8];
|
||||
extern uint8_t g_voice_read_index;
|
||||
@ -135,7 +132,7 @@ typedef enum voice_id_e voice_id_t;
|
||||
extern volatile uint16_t g_count_down_to_play_next_voice_10ms;
|
||||
extern volatile bool g_flag_play_queued_voice;
|
||||
extern voice_id_t g_another_voice_id;
|
||||
|
||||
|
||||
void AUDIO_PlayVoice(uint8_t VoiceID);
|
||||
void AUDIO_PlaySingleVoice(bool flag);
|
||||
void AUDIO_SetVoiceID(uint8_t Index, voice_id_t VoiceID);
|
||||
@ -144,4 +141,3 @@ typedef enum voice_id_e voice_id_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
15
ui/menu.c
15
ui/menu.c
@ -1234,14 +1234,17 @@ void UI_DisplayMenu(void)
|
||||
|
||||
if (g_menu_cursor == MENU_RX_CTCSS ||
|
||||
g_menu_cursor == MENU_TX_CTCSS ||
|
||||
g_menu_cursor == MENU_RX_CDCSS ||
|
||||
g_menu_cursor == MENU_TX_CDCSS ||
|
||||
g_menu_cursor == MENU_RX_CDCSS ||
|
||||
g_menu_cursor == MENU_TX_CDCSS ||
|
||||
g_menu_cursor == MENU_DTMF_LIST)
|
||||
{
|
||||
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_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 ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user