Unified · Split
| @@ -20,10 +20,10 @@ usage(void) · 19 unmodified lines | ||
| 20 | 20 | void |
| 21 | 21 | main(int argc, char **argv) |
| 22 | 22 | { |
| 23 | + double pos, freq, ratio, dur; | |
| 23 | 24 | DUMB_IT_SIGRENDERER *itren; |
| 24 | 25 | DUH_SIGRENDERER *ren; |
| 25 | 26 | int n, sz, r, resamp; |
| 26 | − double pos, freq, ratio; | |
| 27 | 27 | sample_t **samp; |
| 28 | 28 | char *data, *t; |
| 29 | 29 | long nsamp; |
| @@ -75,7 +75,10 @@ main(int argc, char **argv) · 45 unmodified lines | ||
| 75 | 75 | sysfatal("unknown/invalid mod"); |
| 76 | 76 | if((t = (char*)duh_get_tag(f, "TITLE")) != nil && *t) |
| 77 | 77 | fprint(2, "%s\n", t); |
| 78 | − fprint(2, "duration: %g\n", duh_get_length(f)*ratio/100000.0); | |
| 78 | + dur = duh_get_length(f)*ratio/100000.0; | |
| 79 | + fprint(2, "duration: %g\n", dur); | |
| 80 | + if(pos > dur) | |
| 81 | + exits(nil); | |
| 79 | 82 | ren = duh_start_sigrenderer(f, 0, 2, pos*100000.0/ratio); |
| 80 | 83 | itren = duh_get_it_sigrenderer(ren); |
| 81 | 84 | dumb_it_set_loop_callback(itren, dumb_it_callback_terminate, nil); |