Mercurial > hg > jslab
diff src/samer/units/SignalWindow.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/samer/units/SignalWindow.java Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,39 @@ +package samer.units; +import samer.tools.*; +import samer.maths.*; + +public class SignalWindow extends AnonymousTask +{ + Generator gen; + VVector output; + double out[], buf[]; + int size, count; + + public SignalWindow(Generator g, int size) { + this(g,size,size); + } + + public SignalWindow(Generator g, int size, int step) + { + output=new VVector("signalBlock", size); + out=output.array(); + buf=new double[step]; + this.size=size; + gen=g; + } + + public VVector output() { return output; } + public void starting() { count=0; } + public void run() { buf[count++]=gen.next(); } + public void flush() { + System.arraycopy(out,count,out,0,size-count); + System.arraycopy(buf,0,out,size-count,count); + count=0; + output.changed(); + } + + public Task flushTask() { + return new NullTask() { public void run() { flush(); } }; + } +} +