From 02ecffd210d0e4df08da83d4f97f8ca70acbb308 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 28 Oct 2023 23:11:57 +0100 Subject: [PATCH] removed a 1000 pragmas --- app/action.c | 7 ++----- app/app.c | 18 +++++++++--------- app/dtmf.c | 8 +++----- app/menu.c | 25 +++++++++---------------- app/search.c | 17 +++++------------ audio.c | 9 ++++----- firmware.bin | Bin 59896 -> 59892 bytes firmware.packed.bin | Bin 59914 -> 59910 bytes radio.c | 32 ++++++++++++++------------------ ui/aircopy.c | 5 ----- ui/main.c | 8 -------- ui/menu.c | 5 ----- ui/search.c | 14 ++++---------- 13 files changed, 50 insertions(+), 98 deletions(-) diff --git a/app/action.c b/app/action.c index 1599874..cea4124 100644 --- a/app/action.c +++ b/app/action.c @@ -39,9 +39,6 @@ #include "ui/inputbox.h" #include "ui/ui.h" -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - static void ACTION_FlashLight(void) { switch (g_flash_light_state) @@ -63,6 +60,8 @@ static void ACTION_FlashLight(void) case FLASHLIGHT_SOS: + // Fallthrough + default: g_flash_light_state = FLASHLIGHT_OFF; GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); @@ -428,5 +427,3 @@ void ACTION_process(const key_code_t Key, const bool key_pressed, const bool key break; } } - -#pragma GCC diagnostic pop diff --git a/app/app.c b/app/app.c index 9a37ce5..c22ce9c 100644 --- a/app/app.c +++ b/app/app.c @@ -78,9 +78,6 @@ const uint8_t orig_lna = 5; // -4dB const uint8_t orig_mixer = 3; // 0dB const uint8_t orig_pga = 6; // -3dB -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held); static void APP_update_rssi(const int vfo) @@ -742,6 +739,8 @@ static void APP_next_channel(void) } } + // Fallthrough + case SCAN_NEXT_CHAN_SCANLIST2: if (chan2 >= 0) { @@ -753,6 +752,8 @@ static void APP_next_channel(void) } } + // Fallthrough + // this bit doesn't yet work if the other VFO is a frequency case SCAN_NEXT_CHAN_DUAL_WATCH: // dual watch is enabled - include the other VFO in the scan @@ -768,6 +769,8 @@ static void APP_next_channel(void) // } // } + // Fallthrough + default: case SCAN_NEXT_CHAN_USER: g_scan_current_scan_list = SCAN_NEXT_CHAN_USER; @@ -1433,11 +1436,11 @@ void APP_process_flash_light_10ms(void) case FLASHLIGHT_SOS: { // 150ms tick - // '15' sets the morse speed, lower value = faster speed + // '16' sets the morse speed, lower value = faster speed // '+ 6' lengthens the loop time const unsigned int num_bits = sizeof(sos) * 8; - const unsigned int bit = (g_flash_light_blink_tick_10ms / 15) % (num_bits + 6); - if (bit < num_bits && (sos & (1u << ((num_bits - 1) - bit)))) + const unsigned int bit = (g_flash_light_blink_tick_10ms / 16) % (num_bits + 6); + if (bit < num_bits && (sos & (1u << (num_bits - 1 - bit)))) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // ON else GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // OFF @@ -3018,6 +3021,3 @@ Skip: g_request_display_screen = DISPLAY_INVALID; g_update_display = true; } - -#pragma GCC diagnostic pop - diff --git a/app/dtmf.c b/app/dtmf.c index eacb291..d812422 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -361,13 +361,13 @@ void DTMF_HandleRequest(void) g_update_display = true; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_eeprom.dtmf_decode_response) { case DTMF_DEC_RESPONSE_BOTH: g_dtmf_decode_ring_tick_500ms = dtmf_decode_ring_500ms; + + // Fallthrough + case DTMF_DEC_RESPONSE_REPLY: g_dtmf_reply_state = DTMF_REPLY_AAAAA; break; @@ -381,8 +381,6 @@ void DTMF_HandleRequest(void) break; } - #pragma GCC diagnostic pop - if (g_dtmf_IsGroupCall) g_dtmf_reply_state = DTMF_REPLY_NONE; } diff --git a/app/menu.c b/app/menu.c index 5432643..be16ac4 100644 --- a/app/menu.c +++ b/app/menu.c @@ -458,11 +458,11 @@ void MENU_AcceptSetting(void) g_request_save_channel = 1; return; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - case MENU_TX_CTCSS: pConfig = &g_tx_vfo->freq_config_tx; + + // Fallthrough + case MENU_RX_CTCSS: if (g_sub_menu_selection == 0) { @@ -489,8 +489,6 @@ void MENU_AcceptSetting(void) g_request_save_channel = 1; return; - #pragma GCC diagnostic pop - case MENU_SHIFT_DIR: g_tx_vfo->tx_offset_freq_dir = g_sub_menu_selection; g_request_save_channel = 1; @@ -1369,7 +1367,7 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) { #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wtype-limits" - + if (Key >= KEY_0 && Key <= KEY_9) { g_edit[g_edit_index] = '0' + Key - KEY_0; @@ -1395,9 +1393,6 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) if (!g_in_sub_menu) { - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_input_box_index) { case 2: @@ -1418,6 +1413,8 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) g_input_box[0] = g_input_box[1]; g_input_box_index = 1; + // Fallthrough + case 1: value = g_input_box[0]; if (value > 0 && value <= g_menu_list_count) @@ -1429,8 +1426,6 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) break; } - #pragma GCC diagnostic pop - g_input_box_index = 0; g_beep_to_play = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; @@ -1891,9 +1886,6 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) VFO = 0; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_menu_cursor) { case MENU_OFFSET: @@ -1932,6 +1924,9 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) case MENU_SLIST2: VFO = 1; + + // Fallthrough + case MENU_SLIST1: bCheckScanList = true; break; @@ -1942,8 +1937,6 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) return; } - #pragma GCC diagnostic pop - Channel = RADIO_FindNextChannel(g_sub_menu_selection + Direction, Direction, bCheckScanList, VFO); if (Channel != 0xFF) g_sub_menu_selection = Channel; diff --git a/app/search.c b/app/search.c index 5cb375c..f6a0a12 100644 --- a/app/search.c +++ b/app/search.c @@ -98,9 +98,6 @@ static void SEARCH_Key_EXIT(bool key_pressed, bool key_held) g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_search_edit_state) { case SEARCH_EDIT_STATE_NONE: @@ -128,6 +125,8 @@ static void SEARCH_Key_EXIT(bool key_pressed, bool key_held) break; } + // Fallthrough + case SEARCH_EDIT_STATE_SAVE_CONFIRM: g_search_edit_state = SEARCH_EDIT_STATE_NONE; @@ -139,8 +138,6 @@ static void SEARCH_Key_EXIT(bool key_pressed, bool key_held) g_update_display = true; break; } - - #pragma GCC diagnostic pop } static void SEARCH_Key_MENU(bool key_pressed, bool key_held) @@ -173,9 +170,6 @@ static void SEARCH_Key_MENU(bool key_pressed, bool key_held) g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_search_edit_state) { case SEARCH_EDIT_STATE_NONE: @@ -227,12 +221,13 @@ static void SEARCH_Key_MENU(bool key_pressed, bool key_held) if (g_input_box_index == 0) { - g_search_edit_state = SEARCH_EDIT_STATE_SAVE_CONFIRM; - + g_search_edit_state = SEARCH_EDIT_STATE_SAVE_CONFIRM; g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; g_request_display_screen = DISPLAY_SEARCH; } + // Fallthrough + // break; case SEARCH_EDIT_STATE_SAVE_CONFIRM: @@ -305,8 +300,6 @@ static void SEARCH_Key_MENU(bool key_pressed, bool key_held) g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; break; } - - #pragma GCC diagnostic pop } static void SEARCH_Key_STAR(bool key_pressed, bool key_held) diff --git a/audio.c b/audio.c index 3a04791..11e273c 100644 --- a/audio.c +++ b/audio.c @@ -156,9 +156,6 @@ void AUDIO_PlayBeep(beep_type_t Beep) SYSTEM_DelayMs(60); - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (Beep) { case BEEP_880HZ_60MS_TRIPLE_BEEP: @@ -167,6 +164,8 @@ void AUDIO_PlayBeep(beep_type_t Beep) BK4819_EnterTxMute(); SYSTEM_DelayMs(20); + // Fallthrough + case BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL: case BEEP_500HZ_60MS_DOUBLE_BEEP: BK4819_ExitTxMute(); @@ -174,6 +173,8 @@ void AUDIO_PlayBeep(beep_type_t Beep) BK4819_EnterTxMute(); SYSTEM_DelayMs(20); + // Fallthrough + case BEEP_1KHZ_60MS_OPTIONAL: BK4819_ExitTxMute(); Duration = 60; @@ -198,8 +199,6 @@ void AUDIO_PlayBeep(beep_type_t Beep) break; } - #pragma GCC diagnostic pop - SYSTEM_DelayMs(Duration); BK4819_EnterTxMute(); diff --git a/firmware.bin b/firmware.bin index 0be9d9a651348e61f013de17c9cc9a267e8b85dd..eb2fdcd5b188a6be3eba86fc04870803ed55b454 100644 GIT binary patch delta 5587 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 QC?1ACt`T9Cw?EeW9}4IAXaE2J delta 5704 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 delta 15520 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 diff --git a/radio.c b/radio.c index 77ee237..05c71ef 100644 --- a/radio.c +++ b/radio.c @@ -126,7 +126,7 @@ void RADIO_InitInfo(vfo_info_t *p_vfo, const uint8_t ChannelSave, const uint32_t { if (p_vfo == NULL) return; - + memset(p_vfo, 0, sizeof(*p_vfo)); p_vfo->band = FREQUENCY_GetBand(Frequency); @@ -346,11 +346,11 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur p_vfo->frequency_reverse = 0; p_vfo->tx_offset_freq_dir = TX_OFFSET_FREQ_DIR_OFF; p_vfo->tx_offset_freq = 0; - - + + // TODO: also update other settings such as step size - - + + } p_vfo->freq_config_rx.frequency = Frequency; @@ -425,7 +425,7 @@ void RADIO_ConfigureSquelchAndOutputPower(vfo_info_t *p_vfo) Base = (Band < BAND4_174MHz) ? 0x1E60 : 0x1E00; squelch_level = (p_vfo->squelch_level > 0) ? p_vfo->squelch_level : g_eeprom.squelch_level; - + // note that 'noise' and 'glitch' values are inverted compared to 'rssi' values if (squelch_level == 0) @@ -547,7 +547,7 @@ void RADIO_ConfigureSquelchAndOutputPower(vfo_info_t *p_vfo) // make low and mid even lower if (p_vfo->output_power == OUTPUT_POWER_LOW) { - TX_power[0] /= 5; //TX_power[0] /= 8; + TX_power[0] /= 5; //TX_power[0] /= 8; TX_power[1] /= 5; //TX_power[1] /= 8; TX_power[2] /= 5; //TX_power[2] /= 8; get more low power } @@ -638,13 +638,13 @@ void RADIO_setup_registers(bool switch_to_function_foreground) BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (Bandwidth) { default: Bandwidth = BK4819_FILTER_BW_WIDE; + + // Fallthrough + case BK4819_FILTER_BW_WIDE: case BK4819_FILTER_BW_NARROW: #ifdef ENABLE_AM_FIX @@ -656,8 +656,6 @@ void RADIO_setup_registers(bool switch_to_function_foreground) break; } - #pragma GCC diagnostic pop - BK4819_set_GPIO_pin(BK4819_GPIO5_PIN1_RED, false); // LED off BK4819_SetupPowerAmplifier(0, 0); BK4819_set_GPIO_pin(BK4819_GPIO1_PIN29_PA_ENABLE, false); // PA off @@ -895,13 +893,13 @@ void RADIO_enableTX(const bool fsk_tx) BK4819_set_GPIO_pin(BK4819_GPIO0_PIN28_RX_ENABLE, false); - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (Bandwidth) { default: Bandwidth = BK4819_FILTER_BW_WIDE; + + // Fallthrough + case BK4819_FILTER_BW_WIDE: case BK4819_FILTER_BW_NARROW: #ifdef ENABLE_AM_FIX @@ -913,8 +911,6 @@ void RADIO_enableTX(const bool fsk_tx) break; } - #pragma GCC diagnostic pop - // if DTMF is enabled when TX'ing, it changes the TX audio filtering ! .. 1of11 // so MAKE SURE that DTMF is disabled - until needed BK4819_DisableDTMF(); @@ -1180,6 +1176,6 @@ void RADIO_tx_eot(void) { BK4819_PlayTone(APOLLO_TONE2_HZ, APOLLO_TONE_MS, 28); } - + BK4819_ExitDTMF_TX(true); } diff --git a/ui/aircopy.c b/ui/aircopy.c index d22f65d..d3a662a 100644 --- a/ui/aircopy.c +++ b/ui/aircopy.c @@ -87,9 +87,6 @@ void UI_DisplayAircopy(void) // ********************************** // lower TX/RX status text line - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_aircopy_state) { case AIRCOPY_READY: @@ -132,8 +129,6 @@ void UI_DisplayAircopy(void) break; } - #pragma GCC diagnostic pop - // ********************************** ST7565_BlitFullScreen(); diff --git a/ui/main.c b/ui/main.c index 62ab581..2ab574e 100644 --- a/ui/main.c +++ b/ui/main.c @@ -14,10 +14,6 @@ * limitations under the License. */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" -#pragma GCC diagnostic pop - #include #include // abs() @@ -681,8 +677,6 @@ void UI_DisplayMain(void) if (g_eeprom.screen_channel[vfo_num] <= USER_CHANNEL_LAST) { // it's a channel - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" switch (g_eeprom.channel_display_mode) { @@ -741,8 +735,6 @@ void UI_DisplayMain(void) break; } - - #pragma GCC diagnostic pop } else // if (IS_FREQ_CHANNEL(g_eeprom.screen_channel[vfo_num])) diff --git a/ui/menu.c b/ui/menu.c index b69357b..1244276 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -555,9 +555,6 @@ void UI_DisplayMenu(void) bool already_printed = false; - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_menu_cursor) { case MENU_SQL: @@ -1185,8 +1182,6 @@ void UI_DisplayMenu(void) } } - #pragma GCC diagnostic pop - if (!already_printed) { // we now do multi-line text in a single string diff --git a/ui/search.c b/ui/search.c index d7aff19..92ea1f8 100644 --- a/ui/search.c +++ b/ui/search.c @@ -43,9 +43,6 @@ void UI_DisplaySearch(void) // *********************************** // frequency text line - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_search_css_state) { default: @@ -56,6 +53,8 @@ void UI_DisplaySearch(void) break; } + // Fallthrough + case SEARCH_CSS_STATE_SCANNING: case SEARCH_CSS_STATE_FOUND: case SEARCH_CSS_STATE_FAILED: @@ -71,8 +70,6 @@ void UI_DisplaySearch(void) break; } - #pragma GCC diagnostic pop - UI_PrintString(String, 2, 0, 1, 8); // *********************************** @@ -124,9 +121,6 @@ void UI_DisplaySearch(void) memset(String, 0, sizeof(String)); - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wimplicit-fallthrough=" - switch (g_search_edit_state) { default: @@ -155,6 +149,8 @@ void UI_DisplaySearch(void) break; } + // Fallthrough + case SEARCH_CSS_STATE_FREQ_FAILED: case SEARCH_CSS_STATE_REPEAT: strcpy(String, "* repeat"); @@ -181,8 +177,6 @@ void UI_DisplaySearch(void) break; } - #pragma GCC diagnostic pop - UI_PrintString(String, text_centered ? 0 : 2, text_centered ? 127 : 0, 5, 8); // ***********************************