forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			891 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			891 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package kha.input;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import kha.SystemImpl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Sensor {
							 | 
						||
| 
								 | 
							
									static var isInited: Bool = false;
							 | 
						||
| 
								 | 
							
									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 {
							 | 
						||
| 
								 | 
							
										if (!isInited) {
							 | 
						||
| 
								 | 
							
											SystemImpl.initSensor();
							 | 
						||
| 
								 | 
							
											isInited = true;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										listeners.push(listener);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function new() {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public static function _changed(type: Int, x: Float, y: Float, z: Float): Void {
							 | 
						||
| 
								 | 
							
										var sensor = get(type == 0 ? SensorType.Accelerometer : SensorType.Gyroscope);
							 | 
						||
| 
								 | 
							
										for (listener in sensor.listeners) {
							 | 
						||
| 
								 | 
							
											listener(x, y, z);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |