Browse Source

Add better play/pause timing control

master
cancel 6 years ago
parent
commit
92e5e0aa57
  1. 9
      tui_main.c

9
tui_main.c

@ -940,12 +940,12 @@ void app_input_cmd(App_state* a, App_input_cmd ev) {
if (a->is_playing) { if (a->is_playing) {
app_stop_all_sustained_notes(a); app_stop_all_sustained_notes(a);
a->is_playing = false; a->is_playing = false;
// nodelay(stdscr, FALSE); a->accum_secs = 0.0;
} else { } else {
a->is_playing = true; a->is_playing = true;
// nodelay(stdscr, TRUE); // dumb'n'dirty, get us close to the next step time, but not quite
a->accum_secs = 60.0 / (double)a->bpm / 4.0 - 0.02;
} }
a->accum_secs = 0.0;
a->is_draw_dirty = true; a->is_draw_dirty = true;
break; break;
case App_input_cmd_toggle_show_event_list: case App_input_cmd_toggle_show_event_list:
@ -1256,6 +1256,9 @@ int main(int argc, char** argv) {
break; break;
case ' ': case ' ':
app_input_cmd(&app_state, App_input_cmd_toggle_play_pause); app_input_cmd(&app_state, App_input_cmd_toggle_play_pause);
// flush lap time -- quick hack to prevent time before hitting spacebar
// to play being applied as actual playback time
stm_laptime(&last_time);
break; break;
default: default:
if (key >= '!' && key <= '~') { if (key >= '!' && key <= '~') {

Loading…
Cancel
Save