private string RetrieveFunctionName(IPresetElement presetElement) { var targetType = typeof(string); switch (presetElement.FunctionType) { case SplitterCore.FunctionType.Button: { var button = presetElement as PresetButton; return(new XboxButtonConverter().Convert(button.Button, targetType, null, null).ToString()); } case SplitterCore.FunctionType.Trigger: { var trigger = presetElement as PresetTrigger; return(new XboxTriggerConverter().Convert(trigger.Trigger, targetType, null, null).ToString()); } case SplitterCore.FunctionType.Axis: { var axis = presetElement as PresetAxis; var axisConverter = new XboxAxisConverter(); var xboxAxisName = axisConverter.Convert(axis.Axis, targetType, null, null); var pos = axisConverter.Convert(axis.Value, targetType, "value", null); return(string.Format("{0} {1}", xboxAxisName, pos)); } case SplitterCore.FunctionType.Dpad: { var dpad = presetElement as PresetDpad; return(new XboxDpadConverter().Convert(dpad.Direction, targetType, null, null).ToString()); } case SplitterCore.FunctionType.Custom: { var custom = presetElement as PresetCustom; return(new XboxCustomFunctionConverter().Convert(custom.Function, targetType, null, null).ToString()); } default: throw new NotImplementedException("Not implemented function type: " + presetElement.FunctionType); } }
public InputDetectorWindow(IInputManager inputManager, InputDetectorDeviceFilter filter, IPresetElement presetElement, IEmulationSlot slot) : this(inputManager, filter) { this.InputDetectorTarget = InputDetectorTarget.Key; this.FunctionName = this.RetrieveFunctionName(presetElement); this.GamepadName = "on " + slot.Gamepad.FriendlyName; this.keyboard = slot.Keyboard; this.mouse = slot.Mouse; this.Title = "Waiting for "; switch (this.DeviceFilter) { case InputDetectorDeviceFilter.KeyboardOnly: this.Title += this.keyboard.StrongName; break; case InputDetectorDeviceFilter.MouseOnly: this.Title += this.mouse.StrongName; break; case InputDetectorDeviceFilter.KeyboardAndMouse: this.Title += this.keyboard.StrongName + " and " + this.mouse.StrongName; break; default: break; } this.Title += " input..."; }