annotate src/samer/units/SignalWindow.java @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
samer@0 1 package samer.units;
samer@0 2 import samer.tools.*;
samer@0 3 import samer.maths.*;
samer@0 4
samer@0 5 public class SignalWindow extends AnonymousTask
samer@0 6 {
samer@0 7 Generator gen;
samer@0 8 VVector output;
samer@0 9 double out[], buf[];
samer@0 10 int size, count;
samer@0 11
samer@0 12 public SignalWindow(Generator g, int size) {
samer@0 13 this(g,size,size);
samer@0 14 }
samer@0 15
samer@0 16 public SignalWindow(Generator g, int size, int step)
samer@0 17 {
samer@0 18 output=new VVector("signalBlock", size);
samer@0 19 out=output.array();
samer@0 20 buf=new double[step];
samer@0 21 this.size=size;
samer@0 22 gen=g;
samer@0 23 }
samer@0 24
samer@0 25 public VVector output() { return output; }
samer@0 26 public void starting() { count=0; }
samer@0 27 public void run() { buf[count++]=gen.next(); }
samer@0 28 public void flush() {
samer@0 29 System.arraycopy(out,count,out,0,size-count);
samer@0 30 System.arraycopy(buf,0,out,size-count,count);
samer@0 31 count=0;
samer@0 32 output.changed();
samer@0 33 }
samer@0 34
samer@0 35 public Task flushTask() {
samer@0 36 return new NullTask() { public void run() { flush(); } };
samer@0 37 }
samer@0 38 }
samer@0 39