implement FFT_seq; include "fft_seq.m"; include "draw.m"; draw : Draw; include "sys.m"; sys: Sys; include "bufio.m"; bufio: Bufio; Iobuf : import bufio; include "readdir.m"; readdir : Readdir; init(nil: ref Draw->Context, nil: list of string) { draw = load Draw Draw->PATH; sys = load Sys Sys->PATH; readdir = load Readdir Readdir->PATH; } new_sequence(d : string) : ref Sequence { r := ref Sequence(big 33, d, big 0, 255); r.scan(); return r; } get_number(b : ref Iobuf) : int { n := b.gett("\n "); if(n[0] == '#' && n[len n - 1] != '\n') { b.gets('\n'); return get_number(b); } else { return int n; } } Sequence.scan(s : self ref Sequence) { (files, filecount) := readdir->init(s.directory, readdir->NAME | readdir->COMPACT); s.framecount = big filecount; fname := sys->sprint("%s/%s", s.directory, files[0].name); b := bufio->open(fname, sys->OREAD); if(b == nil){ sys->print("Opening %s failed\n", fname); return; } s.samples = get_number(b); b.gets('\n'); s.offset = b.offset(); }