2021-02-02 22:50:02 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
add seek back/forward 5 or 30 seconds
diff --git a/qmp.c b/qmp.c index 362faf6..d2305f9 100644 --- a/qmp.c +++ b/qmp.c @@ -47,11 +47,14 @@ putsilence(unsigned int nsamples) qms_putsample(0, 0); } +#define seek_bck(n) qms_seek(&seeker, seeker.smp_i > (n) ? seeker.smp_i - (n) : 0) +#define seek_fwd(n) qms_seek(&seeker, max_smp_i - seeker.smp_i > (n) ? seeker.smp_i + (n) : max_smp_i-1); + int main(int argc, char *argv[]) { Seeker seeker; - unsigned int cur_sec, max_sec; + unsigned int cur_sec, max_sec, max_smp_i; char key; int paused, quit; int nevs = 0; @@ -79,10 +82,11 @@ main(int argc, char *argv[]) break; } setup_terminal(&term_prev); - max_sec = midi_evs[nevs-1].offset / R; + max_smp_i = midi_evs[nevs-1].offset; + max_sec = max_smp_i / R; qms_init(); qms_load(&seeker, midi_evs, nevs); - qms_seek(&seeker, 0*R); + qms_seek(&seeker, 0); paused = quit = 0; while (!quit) { if (!paused) { @@ -102,6 +106,18 @@ main(int argc, char *argv[]) case ' ': paused = !paused; break; + case ',': + seek_bck(5*R); + break; + case '.': + seek_fwd(5*R); + break; + case '<': + seek_bck(30*R); + break; + case '>': + seek_fwd(30*R); + break; } } }