From: sjlongland Date: Fri, 25 Sep 2015 21:26:43 +0000 (+0000) Subject: sm1000_main: Wait for BACK button release after menu exit. X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=cac83194c6c9352a025bde4b3f374fc2f1ed898c;p=freetel-svn-tracking.git sm1000_main: Wait for BACK button release after menu exit. Otherwise we inadvertantly switch modes unexpectedly. git-svn-id: https://svn.code.sf.net/p/freetel/code@2382 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/stm32/src/sm1000_main.c b/codec2-dev/stm32/src/sm1000_main.c index d09c563d..fbe7207e 100644 --- a/codec2-dev/stm32/src/sm1000_main.c +++ b/codec2-dev/stm32/src/sm1000_main.c @@ -61,6 +61,7 @@ struct switch_t sw_ptt; /*!< Switch driver for PTT buttons */ unsigned int announceTicker = 0; unsigned int menuLEDTicker = 0; unsigned int menuTicker = 0; +unsigned int menuExit = 0; /*! * User preferences @@ -190,12 +191,17 @@ int main(void) { menuTicker = 0; led_pwr(LED_ON); morse_play(&morse_player, NULL); + menuExit = 1; } } } else { uint8_t mode_changed = 0; - if (switch_pressed(&sw_select) > HOLD_DELAY) { + if (menuExit) { + /* We've just exited a menu, wait for release of BACK */ + if (switch_released(&sw_back)) + menuExit = 0; + } else if (switch_pressed(&sw_select) > HOLD_DELAY) { /* Enter the menu */ menu_enter(&menu, &menu_root); menuTicker = MENU_DELAY;