package imseProc.jotter;

import org.eclipse.swt.widgets.Composite;
import binaryMatrixFile.BinaryMatrixFile;
import imseProc.core.ImagePipeController;
import imseProc.core.Img;
import imseProc.core.ImgPipe;
import imseProc.core.ImgSink;

public class JotterSink extends JotterPipe implements ImgSink {
	
	private boolean dirty = false;
	
 	@Override
	public void imageChanged(int idx) { 
		dirty = true;
		updateAllControllers();
 	}
 		
	@Override
	protected void selectedImageChanged() {
		dirty = true;
		updateAllControllers();
	}

	public void saveImage(int pulse) {
		Img sinkedImg = getSelectedImageFromConnectedSource();
		
		if(sinkedImg == null) {
			System.err.println("Jotter: No image to save to pulse " + pulse);
			return;
		}
		
		double vals[][] = new double[sinkedImg.getHeight()][sinkedImg.getWidth()];
		for(int y=0;y < sinkedImg.getHeight(); y++){
			for(int x=0; x < sinkedImg.getWidth(); x++){
				vals[y][x] = sinkedImg.getPixelValue(x, y);
			}
		}
		
		BinaryMatrixFile.mustWrite(notesDB.getPath() + "/img" + pulse + ".bin", vals, false);
		
		dirty = false;
		updateAllControllers();
	}
	
	public boolean isIdle() { return false; };	
}
