namespace InControl
{
	// @cond nodoc
	[AutoDiscover]
	public class LogitechWingManWinProfile : UnityInputDeviceProfile
	{
		public LogitechWingManWinProfile()
		{
			Name = "Logitech WingMan Controller";
			Meta = "Logitech WingMan Controller on Windows";

			DeviceClass = InputDeviceClass.FlightStick;

			IncludePlatforms = new[] {
				"Windows"
			};

			JoystickNames = new[] {
				"WingMan Cordless Gamepad",
			};

			ButtonMappings = new[] {
				new InputControlMapping {
					Handle = "A",
					Target = InputControlType.Action1,
					Source = Button1
				},
				new InputControlMapping {
					Handle = "B",
					Target = InputControlType.Action2,
					Source = Button2
				},
				new InputControlMapping {
					Handle = "C",
					Target = InputControlType.Button0,
					Source = Button2
				},
				new InputControlMapping {
					Handle = "X",
					Target = InputControlType.Action3,
					Source = Button4
				},
				new InputControlMapping {
					Handle = "Y",
					Target = InputControlType.Action4,
					Source = Button5
				},
				new InputControlMapping {
					Handle = "Z",
					Target = InputControlType.Button1,
					Source = Button6
				},
				new InputControlMapping {
					Handle = "Left Bumper",
					Target = InputControlType.LeftBumper,
					Source = Button7
				},
				new InputControlMapping {
					Handle = "Right Bumper",
					Target = InputControlType.RightBumper,
					Source = Button8
				},
				new InputControlMapping {
					Handle = "Left Trigger",
					Target = InputControlType.LeftTrigger,
					Source = Button10
				},
				new InputControlMapping {
					Handle = "Right Trigger",
					Target = InputControlType.RightTrigger,
					Source = Button11,
				},
				new InputControlMapping {
					Handle = "Start",
					Target = InputControlType.Start,
					Source = Button9
				}
			};

			AnalogMappings = new[] {
				LeftStickLeftMapping( Analog0 ),
				LeftStickRightMapping( Analog0 ),
				LeftStickUpMapping( Analog1 ),
				LeftStickDownMapping( Analog1 ),

				RightStickLeftMapping( Analog3 ),
				RightStickRightMapping( Analog3 ),
				RightStickUpMapping( Analog4 ),
				RightStickDownMapping( Analog4 ),

				DPadLeftMapping( Analog5 ),
				DPadRightMapping( Analog5 ),
				DPadUpMapping( Analog6 ),
				DPadDownMapping( Analog6 ),

				new InputControlMapping {
					Handle = "Throttle",
					Target = InputControlType.Analog0,
					Source = Analog2
				}
			};
		}
	}
	// @endcond
}

