uint8_t op_mode;
} prefs;
+/* Preferences changed flag */
+int prefs_changed = 0;
+
struct tone_gen_t tone_gen;
struct sfx_player_t sfx_player;
struct morse_player_t morse_player;
menuTicker = MENU_DELAY;
if (!menu.stack_depth)
- save_settings = 1;
+ save_settings = prefs_changed;
} else if (switch_released(&sw_select)) {
menu_exec(&menu, MENU_EVT_NEXT);
led_pwr(1); led_ptt(0); led_rt(0); led_err(0); not_cptt(1);
menu_enter(&menu, &menu_root);
menuTicker = MENU_DELAY;
+ prefs_changed = 0;
} else if (switch_released(&sw_select)) {
/* Shortcut: change current mode */
op_mode = (op_mode + 1) % MAX_MODES;
prefs.op_mode = item->children[menu->current]->data.ui;
/* Play the "selected" tune and return. */
sfx_play(&sfx_player, sound_startup);
+ prefs_changed = 1;
menu_leave(menu);
break;
case MENU_EVT_BACK:
case MENU_EVT_SELECT:
/* Play the "selected" tune and return. */
sfx_play(&sfx_player, sound_startup);
+ prefs_changed = 1;
menu_leave(menu);
break;
case MENU_EVT_BACK:
case MENU_EVT_SELECT:
/* Play the "selected" tune and return. */
sfx_play(&sfx_player, sound_startup);
+ prefs_changed = 1;
menu_leave(menu);
break;
case MENU_EVT_BACK:
/* Play the "selected" tune and return. */
sfx_play(&sfx_player, sound_startup);
menu_leave(menu);
+ prefs_changed = 1;
break;
case MENU_EVT_BACK:
/* Restore the mode and exit the menu */