view 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
line wrap: on
line source
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(); } };
	}
}