39 lines
		
	
	
		
			888 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			888 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
package kha.input;
 | 
						|
 | 
						|
@:keep
 | 
						|
class Sensor {
 | 
						|
	static var accelerometer: Sensor = new Sensor();
 | 
						|
	static var gyroscope: Sensor = new Sensor();
 | 
						|
 | 
						|
	var listeners: Array<Float->Float->Float->Void> = new Array();
 | 
						|
 | 
						|
	public static function get(type: SensorType): Sensor {
 | 
						|
		switch (type) {
 | 
						|
			case Accelerometer:
 | 
						|
				return accelerometer;
 | 
						|
			case Gyroscope:
 | 
						|
				return gyroscope;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public function notify(listener: Float->Float->Float->Void): Void {
 | 
						|
		listeners.push(listener);
 | 
						|
	}
 | 
						|
 | 
						|
	function new() {}
 | 
						|
 | 
						|
	public static function _accelerometerChanged(x: Float, y: Float, z: Float): Void {
 | 
						|
		var sensor = get(SensorType.Accelerometer);
 | 
						|
		for (listener in sensor.listeners) {
 | 
						|
			listener(x, y, z);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function _gyroscopeChanged(x: Float, y: Float, z: Float): Void {
 | 
						|
		var sensor = get(SensorType.Gyroscope);
 | 
						|
		for (listener in sensor.listeners) {
 | 
						|
			listener(x, y, z);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |