0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-29 06:41:25 +03:00

Fix DTMF and frequency entry bug

This commit is contained in:
OneOfEleven 2023-10-10 00:00:22 +01:00
parent 44f90a20b4
commit 79dae75556
7 changed files with 37 additions and 26 deletions

View File

@ -2313,6 +2313,9 @@ static void APP_ProcessKey(const key_code_t Key, const bool key_pressed, const b
} }
} }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wtype-limits"
if ((Key >= KEY_0 && Key <= KEY_9) || Key == KEY_F) if ((Key >= KEY_0 && Key <= KEY_9) || Key == KEY_F)
{ {
if (g_scan_state_dir != SCAN_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF) if (g_scan_state_dir != SCAN_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF)
@ -2323,6 +2326,8 @@ static void APP_ProcessKey(const key_code_t Key, const bool key_pressed, const b
} }
} }
#pragma GCC diagnostic pop
if (Key == KEY_PTT && g_ptt_was_pressed) if (Key == KEY_PTT && g_ptt_was_pressed)
{ {
flag = key_held; flag = key_held;
@ -2338,20 +2343,20 @@ static void APP_ProcessKey(const key_code_t Key, const bool key_pressed, const b
// to this causing key releases to be totally ignored :( .. 1of11 // to this causing key releases to be totally ignored :( .. 1of11
if (Key != KEY_PTT && g_ptt_was_released) if (Key != KEY_PTT && g_ptt_was_released)
{ {
/* if (key_held) if (key_held)
flag = true; flag = true;
if (!key_pressed) // if (!key_pressed)
if (key_pressed) // I now use key released for button press detections
{ {
flag = true; flag = true;
*/
g_ptt_was_released = false; g_ptt_was_released = false;
/* } }
#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG)
UART_printf("proc key 1 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag); UART_printf("proc key 1 %3u %u %u %u %u\r\n", Key, key_pressed, key_held, g_fkey_pressed, flag);
#endif #endif
*/
} }
if (g_fkey_pressed && (Key == KEY_PTT || Key == KEY_EXIT || Key == KEY_SIDE1 || Key == KEY_SIDE2)) if (g_fkey_pressed && (Key == KEY_PTT || Key == KEY_EXIT || Key == KEY_SIDE1 || Key == KEY_SIDE2))

View File

@ -821,27 +821,24 @@ void MAIN_ProcessKeys(key_code_t Key, bool key_pressed, bool key_held)
} }
#endif #endif
if (g_dtmf_input_mode && key_pressed && !key_held) if (g_dtmf_input_mode)
{
if (key_pressed && !key_held)
{ {
const char Character = DTMF_GetCharacter(Key); const char Character = DTMF_GetCharacter(Key);
if (Character != 0xFF) if (Character != 0xFF)
{ // add key to DTMF string { // add key to DTMF string
DTMF_Append(Character); DTMF_Append(Character);
g_key_input_count_down = key_input_timeout_500ms; g_key_input_count_down = key_input_timeout_500ms;
g_request_display_screen = DISPLAY_MAIN;
// g_ptt_was_released = true; // why is this being set ? // g_ptt_was_released = true; // why is this being set ?
g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL;
g_request_display_screen = DISPLAY_MAIN;
}
}
return; return;
} }
}
// TODO: ???
// if (Key > KEY_PTT)
// {
// Key = KEY_SIDE2; // what's this doing ???
// }
switch (Key) switch (Key)
{ {

View File

@ -1264,6 +1264,9 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held)
if (g_edit_index < 10) if (g_edit_index < 10)
{ {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wtype-limits"
if (Key >= KEY_0 && Key <= KEY_9) if (Key >= KEY_0 && Key <= KEY_9)
{ {
g_edit[g_edit_index] = '0' + Key - KEY_0; g_edit[g_edit_index] = '0' + Key - KEY_0;
@ -1276,6 +1279,8 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held)
g_request_display_screen = DISPLAY_MENU; g_request_display_screen = DISPLAY_MENU;
} }
#pragma GCC diagnostic pop
} }
return; return;

View File

@ -22,8 +22,7 @@
#include <stdint.h> #include <stdint.h>
enum key_code_e { enum key_code_e {
KEY_INVALID = 0, KEY_0 = 0, // DTMF 0
KEY_0, // DTMF 0
KEY_1, // DTMF 1 KEY_1, // DTMF 1
KEY_2, // DTMF 2 KEY_2, // DTMF 2
KEY_3, // DTMF 3 KEY_3, // DTMF 3
@ -42,7 +41,7 @@ enum key_code_e {
KEY_PTT, // KEY_PTT, //
KEY_SIDE2, // KEY_SIDE2, //
KEY_SIDE1, // KEY_SIDE1, //
// KEY_INVALID // KEY_INVALID //
}; };
typedef enum key_code_e key_code_t; typedef enum key_code_e key_code_t;

Binary file not shown.

Binary file not shown.

View File

@ -29,7 +29,12 @@ void INPUTBOX_Append(const key_code_t Digit)
if (g_input_box_index == 0) if (g_input_box_index == 0)
memset(g_input_box, 10, sizeof(g_input_box)); memset(g_input_box, 10, sizeof(g_input_box));
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wtype-limits"
if (Digit >= KEY_0 && Digit != KEY_INVALID) if (Digit >= KEY_0 && Digit != KEY_INVALID)
g_input_box[g_input_box_index++] = (char)(Digit - KEY_0); g_input_box[g_input_box_index++] = (char)(Digit - KEY_0);
#pragma GCC diagnostic pop
} }