package net.beadsproject.touch;
import java.awt.MouseInfo;
import java.awt.Point;
import java.util.ArrayList;

import net.beadsproject.beads.core.AudioContext;
import net.beadsproject.beads.core.UGen;



public class FastMouse {

	//NOT COMPLETE AND MIGHT BE PREFERABLE TO USE LWJGL INSTEAD
	
	public static interface FastMouseListener {
		public void mousePoll(boolean button, int x, int y);
	}
	
	ArrayList<FastMouseListener> listeners;
	boolean button;
	
	public FastMouse(AudioContext ac) {
		listeners = new ArrayList<FastMouseListener>();
		UGen mousePoller = new UGen(ac) {
			public void calculateBuffer() {
				Point p = MouseInfo.getPointerInfo().getLocation();
				for(FastMouseListener l : listeners) {
					l.mousePoll(button, p.x, p.y);
				}
			}
		};
		ac.out.addDependent(mousePoller);
	}
	
	public void addListener(FastMouseListener l) {
		listeners.add(l);
	}
	
	public void removeListener(FastMouseListener l) {
		listeners.remove(l);
	}
	
	
}
