Cleanup, more smooth update

multi_trace
DiSlord 5 years ago committed by erikkaashoek
parent 66f77cb7a7
commit 88d98b10d7

91
ui.c

@ -1321,12 +1321,10 @@ static void
menu_select_touch(int i, int pos) menu_select_touch(int i, int pos)
{ {
long_t step = 0; long_t step = 0;
int do_exit = false;
selection = i; selection = i;
draw_menu_mask(1<<i); draw_menu_mask(1<<i);
#if 1 // drag values #if 1 // drag values
const menuitem_t *menu = menu_stack[menu_current_level]; const menuitem_t *menu = menu_stack[menu_current_level];
int old_keypad_mode = keypad_mode;
int keypad = menu[i].data; int keypad = menu[i].data;
int touch_x, touch_y, prev_touch_x = 0; int touch_x, touch_y, prev_touch_x = 0;
// touch_position(&touch_x, &touch_y); // touch_position(&touch_x, &touch_y);
@ -1421,65 +1419,46 @@ menu_select_touch(int i, int pos)
prev_touch_x = touch_x; prev_touch_x = touch_x;
} }
keypad_mode = old_keypad_mode;
selection = -1; selection = -1;
draw_menu(); draw_menu_mask(1<<i);
return; return;
} }
// Wait touch release if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD){
// touch_wait_release(); bool do_exit = false;
if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) { if (keypad == KM_LOWOUTLEVEL) {
switch (pos) { switch (pos) {
case 0: case 0:step = -10;break;
step = -10; case 1:step = -1;break;
break; case 2:goto nogo;
case 1: case 3:step = +1;break;
step = -1; case 4:step = +10;break;
break; }
case 2: uistat.value = setting.external_gain + get_level() + step;
goto nogo; do_exit = true;
case 3:
step = +1;
break;
case 4:
step = +10;
break;
} }
uistat.value = setting.external_gain + get_level() + step; else if (keypad == KM_CENTER) {
do_exit = true; switch (pos) {
} else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) { case 0: step = -setting.slider_span; break;
switch (pos) { case 1: step = -setting.slider_span/10;break;
case 0: case 2: goto nogo;
step = setting.slider_span; case 3: step = setting.slider_span/10;break;
step =-step; case 4: step = setting.slider_span; break;
break; }
case 1: if (step < 0 && get_sweep_frequency(ST_CENTER) < (freq_t)(-step))
step = setting.slider_span/10; uistat.freq_value = 0;
step =-step; else
break; uistat.freq_value = get_sweep_frequency(ST_CENTER) + step;
case 2: do_exit = true;
goto nogo; setting.slider_position = 0; // reset slider after step
case 3: check_frequency_slider(uistat.freq_value);
step = setting.slider_span/10; }
break; if (do_exit){
case 4: set_keypad_value(keypad);
step = setting.slider_span; selection = -1;
break; draw_menu_mask(1<<i);
perform(false, 0, get_sweep_frequency(ST_CENTER), false);
return;
} }
if (step < 0 && get_sweep_frequency(ST_CENTER) < (freq_t)(-step))
uistat.freq_value = 0;
else
uistat.freq_value = get_sweep_frequency(ST_CENTER) + step;
do_exit = true;
setting.slider_position = 0; // reset slider after step
check_frequency_slider(uistat.freq_value);
}
if (do_exit){
set_keypad_value(keypad);
perform(false, 0, get_sweep_frequency(ST_CENTER), false);
selection = -1;
draw_menu();
return;
} }
nogo: nogo:
setting.slider_position = 0; // Reset slider when entering frequency setting.slider_position = 0; // Reset slider when entering frequency

Loading…
Cancel
Save

Powered by TurnKey Linux.