private void SetFunctionState(Image image, XboxCustomFunction function, bool state) { if (VirtualXboxController.IsOwned(this.UserIndex)) { CustomFunctionHelper.SetFunctionState(function, this.UserIndex, state); image.Opacity = state ? 1 : 0; } }
public static XboxTrigger GetXboxTrigger(XboxCustomFunction function) { if (GetFunctionType(function) != FunctionType.Trigger) { throw new InvalidOperationException( "Passed function's control type is not trigger type"); } return((XboxTrigger)(int)function); }
public static XboxDpadDirection GetDpadDirection(XboxCustomFunction function) { if (GetFunctionType(function) != FunctionType.Dpad) { throw new InvalidOperationException( "Passed function's control type is not dpad type"); } return((XboxDpadDirection)(int)function); }
public static XboxButton GetXboxButton(XboxCustomFunction function) { if (GetFunctionType(function) != FunctionType.Button) { throw new InvalidOperationException( "Passed function's control type is not button type"); } return((XboxButton)(int)function); }
public PresetCustomVersionOne(XboxCustomFunction function, string key) { if (key == null) { throw new ArgumentNullException("key"); } this.Function = function; this.KeyboardKey = key; }
public static FunctionType GetFunctionType(XboxCustomFunction function) { switch (function) { case XboxCustomFunction.Button_Guide: case XboxCustomFunction.Button_A: case XboxCustomFunction.Button_B: case XboxCustomFunction.Button_X: case XboxCustomFunction.Button_Y: case XboxCustomFunction.Left_Bumper: case XboxCustomFunction.Right_Bumper: case XboxCustomFunction.Button_Back: case XboxCustomFunction.Button_Start: case XboxCustomFunction.Left_Thumb: case XboxCustomFunction.Right_Thumb: return(FunctionType.Button); case XboxCustomFunction.Left_Trigger: case XboxCustomFunction.Right_Trigger: return(FunctionType.Trigger); case XboxCustomFunction.Dpad_Up: case XboxCustomFunction.Dpad_Down: case XboxCustomFunction.Dpad_Left: case XboxCustomFunction.Dpad_Right: return(FunctionType.Dpad); case XboxCustomFunction.Axis_X_Min: case XboxCustomFunction.Axis_X_Max: case XboxCustomFunction.Axis_Y_Min: case XboxCustomFunction.Axis_Y_Max: case XboxCustomFunction.Axis_Rx_Min: case XboxCustomFunction.Axis_Rx_Max: case XboxCustomFunction.Axis_Ry_Min: case XboxCustomFunction.Axis_Ry_Max: return(FunctionType.Axis); default: throw new NotImplementedException( "Not implemented custom function: " + function); } }
public List <InputKey> GetKeys(PresetButton presetButton) { var keys = new List <InputKey>(); keys.AddRange(this.Buttons.Where(x => x == presetButton).Select(x => x.Key)); // Adding buttons from custom functions foreach (var customFunction in this.CustomFunctions) { XboxCustomFunction xboxCustomfunction = (XboxCustomFunction)customFunction.Function; if (Helpers.CustomFunctionHelper.GetFunctionType(xboxCustomfunction) == FunctionType.Button) { uint customXboxButton = (uint)Helpers.CustomFunctionHelper.GetXboxButton(xboxCustomfunction); if (customXboxButton == presetButton.Button) { keys.Add(customFunction.Key); } } } return(keys); }
public List <InputKey> GetKeys(PresetDpad dpad) { var keys = new List <InputKey>(); keys.AddRange(this.Dpads.Where(x => x.Direction == dpad.Direction).Select(x => x.Key)); // Adding dpads from custom functions foreach (var customFunction in this.CustomFunctions) { XboxCustomFunction xboxCustomfunction = (XboxCustomFunction)customFunction.Function; if (Helpers.CustomFunctionHelper.GetFunctionType(xboxCustomfunction) == FunctionType.Dpad) { int customXboxDpad = (int)Helpers.CustomFunctionHelper.GetDpadDirection(xboxCustomfunction); if (customXboxDpad == dpad.Direction) { keys.Add(customFunction.Key); } } } return(keys); }
public static bool SetFunctionState(XboxCustomFunction function, uint userIndex, bool newState) { var functionType = GetFunctionType(function); switch (functionType) { case FunctionType.Button: var button = GetXboxButton(function); return(VirtualXboxController.SetButton(userIndex, button, newState)); case FunctionType.Axis: XboxAxisPosition position; var axis = GetXboxAxis(function, out position); if (newState == false) { return(VirtualXboxController.SetAxis(userIndex, axis, (short)XboxAxisPosition.Center)); } return(VirtualXboxController.SetAxis(userIndex, axis, (short)position)); case FunctionType.Dpad: if (newState == false) { return(VirtualXboxController.SetDPad(userIndex, XboxDpadDirection.Off)); } var direction = GetDpadDirection(function); return(VirtualXboxController.SetDPad(userIndex, direction)); case FunctionType.Trigger: var trigger = GetXboxTrigger(function); return(VirtualXboxController.SetTrigger(userIndex, trigger, newState ? (byte)255 : (byte)0)); default: throw new NotImplementedException("Not implemented xbox function type: " + functionType); } }
public List <InputKey> GetKeys(PresetAxis axis) { var keys = new List <InputKey>(); keys.AddRange(this.Axes.Where(x => x.Axis == axis.Axis && x.Value == axis.Value).Select(x => x.Key)); // Adding dpads from custom functions foreach (var customFunction in this.CustomFunctions) { XboxCustomFunction xboxCustomfunction = (XboxCustomFunction)customFunction.Function; if (Helpers.CustomFunctionHelper.GetFunctionType(xboxCustomfunction) == FunctionType.Axis) { XboxAxisPosition pos; uint customXboxAxis = (uint)Helpers.CustomFunctionHelper.GetXboxAxis(xboxCustomfunction, out pos); if (customXboxAxis == axis.Axis && (short)pos == axis.Value) { keys.Add(customFunction.Key); } } } return(keys); }
public static XboxAxis GetXboxAxis(XboxCustomFunction function, out XboxAxisPosition position) { if (GetFunctionType(function) != FunctionType.Axis) { throw new InvalidOperationException( "Passed function's control type is not axis type"); } XboxAxis axis; switch (function) { case XboxCustomFunction.Axis_X_Min: { axis = XboxAxis.X; position = XboxAxisPosition.Min; } break; case XboxCustomFunction.Axis_X_Max: { axis = XboxAxis.X; position = XboxAxisPosition.Max; } break; case XboxCustomFunction.Axis_Y_Min: { axis = XboxAxis.Y; position = XboxAxisPosition.Min; } break; case XboxCustomFunction.Axis_Y_Max: { axis = XboxAxis.Y; position = XboxAxisPosition.Max; } break; case XboxCustomFunction.Axis_Rx_Min: { axis = XboxAxis.Rx; position = XboxAxisPosition.Min; } break; case XboxCustomFunction.Axis_Rx_Max: { axis = XboxAxis.Rx; position = XboxAxisPosition.Max; } break; case XboxCustomFunction.Axis_Ry_Min: { axis = XboxAxis.Ry; position = XboxAxisPosition.Min; } break; case XboxCustomFunction.Axis_Ry_Max: { axis = XboxAxis.Ry; position = XboxAxisPosition.Max; } break; default: throw new NotImplementedException(); } return(axis); }