コード例 #1
0
ファイル: XInput.cs プロジェクト: wahyuaditri/x360ce
 public static unsafe ErrorCode XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities pCapabilities)
 {
     pCapabilities = new Capabilities();
     try { return(GetMethod <XInputGetCapabilitiesDelegate>("XInputGetCapabilities")(dwUserIndex, (int)dwFlags, out pCapabilities)); }
     catch (AccessViolationException ex) { throw new Exception(ex.Message); }
     catch (Exception) { throw; }
 }
コード例 #2
0
 public int XInputGetCapabilities(
     int dwUserIndex,
     DeviceQueryType dwFlags,
     out Capabilities capabilitiesRef)
 {
     return(Native.XInputGetCapabilities(dwUserIndex, dwFlags, out capabilitiesRef));
 }
コード例 #3
0
ファイル: Controller.cs プロジェクト: Ziriax/SharpDX
 /// <summary>
 /// Gets the capabilities.
 /// </summary>
 /// <param name="deviceQueryType">Type of the device query.</param>
 /// <returns></returns>
 /// <unmanaged>unsigned int XInputGetCapabilities([In] XUSER_INDEX dwUserIndex,[In] XINPUT_DEVQUERYTYPE dwFlags,[Out] XINPUT_CAPABILITIES* pCapabilities)</unmanaged>	
 public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
 {
     Capabilities temp;
     var result = ErrorCodeHelper.ToResult(XInput.XInputGetCapabilities((int)userIndex, deviceQueryType, out temp));
     result.CheckError();
     return temp;
 }
コード例 #4
0
ファイル: Controller.cs プロジェクト: pablo0722/x360ce
        public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
        {
            Capabilities capabilities;

            ErrorCodeHelper.ToResult(SharpDX.XInput.XInput.XInputGetCapabilities((int)this.userIndex, deviceQueryType, out capabilities)).CheckError();
            return(capabilities);
        }
コード例 #5
0
        /// <summary>
        /// Gets the keystroke.
        /// </summary>
        /// <param name="deviceQueryType">The flag.</param>
        /// <param name="keystroke">The keystroke.</param>
        /// <returns></returns>
        /// <unmanaged>unsigned int XInputGetKeystroke([In] XUSER_INDEX dwUserIndex,[In] unsigned int dwReserved,[Out] XINPUT_KEYSTROKE* pKeystroke)</unmanaged>
        public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
        {
            var result = ErrorCodeHelper.ToResult(XInput.XInputGetKeystroke((int)userIndex, (int)deviceQueryType, out keystroke));

            result.CheckError();
            return(result);
        }
コード例 #6
0
ファイル: XInput.cs プロジェクト: tanis2000/FEZ
 public static unsafe int XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilitiesRef)
 {
     capabilitiesRef = new Capabilities();
       int capabilities;
       fixed (Capabilities* capabilitiesPtr = &capabilitiesRef)
     capabilities = XInput.XInputGetCapabilities_(dwUserIndex, (int) dwFlags, (void*) capabilitiesPtr);
       return capabilities;
 }
コード例 #7
0
        /// <summary>
        /// Gets the capabilities.
        /// </summary>
        /// <param name="deviceQueryType">Type of the device query.</param>
        /// <returns></returns>
        /// <unmanaged>unsigned int XInputGetCapabilities([In] XUSER_INDEX dwUserIndex,[In] XINPUT_DEVQUERYTYPE dwFlags,[Out] XINPUT_CAPABILITIES* pCapabilities)</unmanaged>
        public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
        {
            Capabilities temp;
            var          result = ErrorCodeHelper.ToResult(xinput.XInputGetCapabilities((int)userIndex, deviceQueryType, out temp));

            result.CheckError();
            return(temp);
        }
コード例 #8
0
 public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
 {
     return(ErrorCodeHelper.ToResult(
                openXinput ?
                NativeOpenXinput.XInputGetKeystroke(userIndex, (int)deviceQueryType, out keystroke) :
                NativeXinput.XInputGetKeystroke(userIndex, (int)deviceQueryType, out keystroke)
                ));
 }
コード例 #9
0
ファイル: XInput.cs プロジェクト: conankzhang/fez
        public static unsafe int XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilitiesRef)
        {
            capabilitiesRef = new Capabilities();
            int capabilities;

            fixed(Capabilities *capabilitiesPtr = &capabilitiesRef)
            capabilities = XInput.XInputGetCapabilities_(dwUserIndex, (int)dwFlags, (void *)capabilitiesPtr);

            return(capabilities);
        }
コード例 #10
0
        public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
        {
            Capabilities temp;

            ErrorCodeHelper.ToResult(
                openXinput ? NativeOpenXinput.XInputGetCapabilities(userIndex, deviceQueryType, out temp) :
                NativeXinput.XInputGetCapabilities(userIndex, deviceQueryType, out temp)
                ).CheckError();
            return(temp);
        }
コード例 #11
0
        /// <summary>
        /// <p>Retrieves the capabilities and features of a connected controller.</p>
        /// </summary>
        /// <param name="dwUserIndex"><dd> <p>Index of the user's controller. Can be a value in the range 0?3. For information about how this value is determined and how the value maps to indicators on the controller, see Multiple Controllers. </p> </dd></param>
        /// <param name="dwFlags"><dd> <p>Input flags that identify the controller type. If this value is 0, then the capabilities of all controllers connected to the system are returned. Currently, only one value is supported:</p> <table> <tr><th>Value</th><th>Description</th></tr> <tr><td><strong>XINPUT_FLAG_GAMEPAD</strong></td><td>Limit query to devices of Xbox 360 Controller type.</td></tr> </table> <p>?</p> <p>Any value of <em>dwflags</em> other than the above or 0 is illegal and will result in an error break when debugging.</p> </dd></param>
        /// <param name="capabilitiesRef"><dd> <p>Pointer to an <strong><see cref="T:SharpDX.XInput.Capabilities" /></strong> structure that receives the controller capabilities.</p> </dd></param>
        /// <returns><p>If the function succeeds, the return value is <strong>ERROR_SUCCESS</strong>.</p><p>If the controller is not connected, the return value is <strong>ERROR_DEVICE_NOT_CONNECTED</strong>.</p><p>If the function fails, the return value is an error code defined in WinError.h. The function does not use <em>SetLastError</em> to set the calling thread's last-error code.</p></returns>
        /// <remarks>
        /// <strong>Note</strong>??The legacy XINPUT 9.1.0 version (included in Windows?Vista and later) always returned a fixed set of capabilities regardless of attached device.?
        /// </remarks>
        /// <doc-id>microsoft.directx_sdk.reference.xinputgetcapabilities</doc-id>
        /// <unmanaged>DWORD XInputGetCapabilities([In] DWORD dwUserIndex,[In] DWORD dwFlags,[Out] XINPUT_CAPABILITIES* pCapabilities)</unmanaged>
        /// <unmanaged-short>XInputGetCapabilities</unmanaged-short>
        public static unsafe int XInputGetCapabilities(
            int dwUserIndex,
            DeviceQueryType dwFlags,
            out Capabilities capabilitiesRef)
        {
            Capabilities.__Native @ref = new Capabilities.__Native();
            capabilitiesRef = new Capabilities();
            int capabilities = XInputGetCapabilities_(dwUserIndex, (int)dwFlags, (void *)&@ref);

            capabilitiesRef.__MarshalFrom(ref @ref);
            return(capabilities);
        }
コード例 #12
0
        static uint XInputGetCapabilities_Hooked(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities pCapabilities)
        {
            pCapabilities = new Capabilities();
            try
            {
                if (dwFlags > DeviceQueryType.Gamepad)
                {
                    return(ERROR_BAD_ARGUMENTS);
                }

                ControllerReader myController = ControllerReader.Instance;
                if (myController.controllers.Count < dwUserIndex)
                {
                    return(ERROR_DEVICE_NOT_CONNECTED);
                }

                pCapabilities.Flags   = CapabilityFlags.VoiceSupported;
                pCapabilities.Type    = DeviceType.Gamepad;
                pCapabilities.SubType = DeviceSubType.Gamepad;

                pCapabilities.Gamepad.Buttons = GamepadButtonFlags.A | GamepadButtonFlags.B | GamepadButtonFlags.Back | GamepadButtonFlags.DPadDown
                                                | GamepadButtonFlags.DPadLeft | GamepadButtonFlags.DPadRight | GamepadButtonFlags.DPadUp | GamepadButtonFlags.LeftShoulder | GamepadButtonFlags.LeftThumb
                                                | GamepadButtonFlags.RightShoulder | GamepadButtonFlags.RightThumb | GamepadButtonFlags.Start | GamepadButtonFlags.X | GamepadButtonFlags.Y;

                pCapabilities.Gamepad.LeftTrigger  = 0xFF;
                pCapabilities.Gamepad.RightTrigger = 0xFF;

                pCapabilities.Gamepad.LeftThumbX  = short.MaxValue;
                pCapabilities.Gamepad.LeftThumbY  = short.MaxValue;
                pCapabilities.Gamepad.RightThumbX = short.MaxValue;
                pCapabilities.Gamepad.RightThumbY = short.MaxValue;

                pCapabilities.Vibration.LeftMotorSpeed  = 0xFF;
                pCapabilities.Vibration.RightMotorSpeed = 0xFF;

                XboxOneControllerInjection This = (XboxOneControllerInjection)HookRuntimeInfo.Callback;

                lock (This.Queue)
                {
                    if (This.Queue.Count < 1000)
                    {
                        This.Queue.Push("XInputGetCapabilities");
                    }
                }
            }
            catch
            {
                return(ERROR_DEVICE_NOT_CONNECTED);
            }
            return(ERROR_SUCCESS);
        }
コード例 #13
0
        uint XInputGetCapabilities_Hooked(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities pCapabilities)
        {
            pCapabilities = new Capabilities();
            var controller = new Controller((UserIndex)dwUserIndex);

            if (controller.IsConnected)
            {
                try
                {
                    pCapabilities = controller.GetCapabilities(dwFlags);
                }
                catch
                {
                    return(ERROR_DEVICE_NOT_CONNECTED);
                }
            }
            else
            {
                if ((UserIndex)dwUserIndex == UserIndex.One ||
                    (UserIndex)dwUserIndex == UserIndex.Any)
                {
                    pCapabilities.Flags   = CapabilityFlags.None;
                    pCapabilities.Type    = DeviceType.Gamepad;
                    pCapabilities.SubType = DeviceSubType.Gamepad;

                    pCapabilities.Gamepad.Buttons = GamepadButtonFlags.A | GamepadButtonFlags.B | GamepadButtonFlags.Back |
                                                    GamepadButtonFlags.DPadDown
                                                    | GamepadButtonFlags.DPadLeft | GamepadButtonFlags.DPadRight | GamepadButtonFlags.DPadUp |
                                                    GamepadButtonFlags.LeftShoulder | GamepadButtonFlags.LeftThumb
                                                    | GamepadButtonFlags.RightShoulder | GamepadButtonFlags.RightThumb | GamepadButtonFlags.Start |
                                                    GamepadButtonFlags.X | GamepadButtonFlags.Y;

                    pCapabilities.Gamepad.LeftTrigger  = 0xFF;
                    pCapabilities.Gamepad.RightTrigger = 0xFF;

                    pCapabilities.Gamepad.LeftThumbX  = short.MaxValue;
                    pCapabilities.Gamepad.LeftThumbY  = short.MaxValue;
                    pCapabilities.Gamepad.RightThumbX = short.MaxValue;
                    pCapabilities.Gamepad.RightThumbY = short.MaxValue;

                    pCapabilities.Vibration.LeftMotorSpeed  = 0xFF;
                    pCapabilities.Vibration.RightMotorSpeed = 0xFF;
                }
            }

            return(ERROR_SUCCESS);
        }
コード例 #14
0
 /// <summary>Gets the capabilities.</summary>
 /// <param name="deviceQueryType">Type of the device query.</param>
 /// <param name="capabilities">The capabilities of this controller.</param>
 /// <returns><c>true</c> if the controller is connected, <c>false</c> otherwise.</returns>
 public bool GetCapabilities(DeviceQueryType deviceQueryType, out Capabilities capabilities)
 {
     return(xinput.XInputGetCapabilities((int)this.userIndex, deviceQueryType, out capabilities) == 0);
 }
コード例 #15
0
ファイル: Controller.cs プロジェクト: tanis2000/FEZ
 public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
 {
     Result result = ErrorCodeHelper.ToResult(XInput.XInputGetKeystroke((int) this.userIndex, (int) deviceQueryType, out keystroke));
       result.CheckError();
       return result;
 }
コード例 #16
0
ファイル: Controller.cs プロジェクト: tanis2000/FEZ
 public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
 {
     Capabilities capabilitiesRef;
       ErrorCodeHelper.ToResult(XInput.XInputGetCapabilities((int) this.userIndex, deviceQueryType, out capabilitiesRef)).CheckError();
       return capabilitiesRef;
 }
コード例 #17
0
		uint XInputGetCapabilities_Hooked(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities pCapabilities)
		{
			pCapabilities = new Capabilities();
			var controller = new Controller((UserIndex)dwUserIndex);
			if (controller.IsConnected)
			{
				try
				{
					pCapabilities = controller.GetCapabilities(dwFlags);
				}
				catch
				{
					return ERROR_DEVICE_NOT_CONNECTED;
				}
			}
			else 
			{
				if ((UserIndex) dwUserIndex == UserIndex.One
					|| (UserIndex) dwUserIndex == UserIndex.Any)
				{
					pCapabilities.Flags = CapabilityFlags.None;
					pCapabilities.Type = DeviceType.Gamepad;
					pCapabilities.SubType = DeviceSubType.Gamepad;

					pCapabilities.Gamepad.Buttons = GamepadButtonFlags.A | GamepadButtonFlags.B | GamepadButtonFlags.Back |
													GamepadButtonFlags.DPadDown
													| GamepadButtonFlags.DPadLeft | GamepadButtonFlags.DPadRight | GamepadButtonFlags.DPadUp |
													GamepadButtonFlags.LeftShoulder | GamepadButtonFlags.LeftThumb
													| GamepadButtonFlags.RightShoulder | GamepadButtonFlags.RightThumb | GamepadButtonFlags.Start |
													GamepadButtonFlags.X | GamepadButtonFlags.Y;

					pCapabilities.Gamepad.LeftTrigger = 0xFF;
					pCapabilities.Gamepad.RightTrigger = 0xFF;

					pCapabilities.Gamepad.LeftThumbX = short.MaxValue;
					pCapabilities.Gamepad.LeftThumbY = short.MaxValue;
					pCapabilities.Gamepad.RightThumbX = short.MaxValue;
					pCapabilities.Gamepad.RightThumbY = short.MaxValue;

					pCapabilities.Vibration.LeftMotorSpeed = 0xFF;
					pCapabilities.Vibration.RightMotorSpeed = 0xFF;
				}
			}

			return ERROR_SUCCESS;
		}
コード例 #18
0
ファイル: XInput910.cs プロジェクト: alexey-bez/SharpDX
 public static extern int XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilitiesRef);
コード例 #19
0
ファイル: XInput910.cs プロジェクト: alexey-bez/SharpDX
 public int XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilitiesRef)
 {
     return Native.XInputGetCapabilities(dwUserIndex, dwFlags, out capabilitiesRef);
 }
コード例 #20
0
 /// <summary>
 /// Gets the capabilities.
 /// </summary>
 /// <param name="deviceQueryType">Type of the device query.</param>
 /// <param name="capabilities">The capabilities of this controller.</param>
 /// <returns><c>true</c> if the controller is connected, <c>false</c> otherwise.</returns>
 public bool GetCapabilities(DeviceQueryType deviceQueryType, out Capabilities capabilities)
 {
     return XInput.XInputGetCapabilities((int)userIndex, deviceQueryType, out capabilities) == 0;
 }
コード例 #21
0
 public static extern int XInputGetCapabilities(
     int dwUserIndex,
     DeviceQueryType dwFlags,
     out Capabilities capabilitiesRef);
コード例 #22
0
ファイル: Controller.cs プロジェクト: remy22/BlueberryEngine
 /// <summary>
 /// Gets the keystroke.
 /// 
 /// </summary>
 /// <param name="deviceQueryType">The flag.</param><param name="keystroke">The keystroke.</param>
 /// <returns/>
 public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
 {
     #if WINDOWS
     Result result = ErrorCodeHelper.ToResult(XInput.XInputGetKeystroke((int)this.userIndex, (int)deviceQueryType, out keystroke));
     result.CheckError();
     return result;
     #else
     keystroke = new Keystroke();
     return Result.Abord;
     #endif
 }
コード例 #23
0
ファイル: XInput.cs プロジェクト: ng08000/Vortice.Windows
 /// <summary>
 /// Retrieves the capabilities and features of a connected controller.
 /// </summary>
 /// <param name="userIndex">Index of the user's controller. Can be a value in the range 0–3. </param>
 /// <param name="deviceQueryType">Type of the device query.</param>
 /// <param name="capabilities">The capabilities of this controller.</param>
 /// <returns>True if the controller is connected and succeed, false otherwise.</returns>
 public static bool GetCapabilities(int userIndex, DeviceQueryType deviceQueryType, out Capabilities capabilities)
 {
     return(s_xInput.XInputGetCapabilities(userIndex, deviceQueryType, out capabilities) == 0);
 }
コード例 #24
0
ファイル: Controller.cs プロジェクト: alexey-bez/SharpDX
 /// <summary>
 /// Gets the keystroke.
 /// </summary>
 /// <param name="deviceQueryType">The flag.</param>
 /// <param name="keystroke">The keystroke.</param>
 /// <returns></returns>
 /// <unmanaged>unsigned int XInputGetKeystroke([In] XUSER_INDEX dwUserIndex,[In] unsigned int dwReserved,[Out] XINPUT_KEYSTROKE* pKeystroke)</unmanaged>	
 public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
 {
     var result = ErrorCodeHelper.ToResult(xinput.XInputGetKeystroke((int)userIndex, (int)deviceQueryType, out keystroke));
     return result;
 }
コード例 #25
0
ファイル: XInput13.cs プロジェクト: ng08000/Vortice.Windows
 int IXInput.XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilities)
 {
     return(XInputGetCapabilities(dwUserIndex, dwFlags, out capabilities));
 }
コード例 #26
0
 public bool GetCapabilities(DeviceQueryType deviceQueryType, out Capabilities capabilities)
 {
     return((openXinput ?
             NativeOpenXinput.XInputGetCapabilities(userIndex, deviceQueryType, out capabilities) :
             NativeXinput.XInputGetCapabilities(userIndex, deviceQueryType, out capabilities)) == 0);
 }
コード例 #27
0
 /// <summary>Gets the keystroke.</summary>
 /// <param name="deviceQueryType">The flag.</param>
 /// <param name="keystroke">The keystroke.</param>
 /// <returns></returns>
 /// <unmanaged>unsigned int XInputGetKeystroke([In] XUSER_INDEX dwUserIndex,[In] unsigned int dwReserved,[Out] XINPUT_KEYSTROKE* pKeystroke)</unmanaged>
 public Result GetKeystroke(DeviceQueryType deviceQueryType, out Keystroke keystroke)
 {
     return(ErrorCodeHelper.ToResult(xinput.XInputGetKeystroke((int)this.userIndex, (int)deviceQueryType,
                                                               out keystroke)));
 }
コード例 #28
0
ファイル: Controller.cs プロジェクト: remy22/BlueberryEngine
 /// <summary>
 /// Gets the capabilities.
 /// 
 /// </summary>
 /// <param name="deviceQueryType">Type of the device query.</param>
 /// <returns/>
 public Capabilities GetCapabilities(DeviceQueryType deviceQueryType)
 {
     #if WINDOWS
     Capabilities capabilitiesRef;
     ErrorCodeHelper.ToResult(XInput.XInputGetCapabilities((int)this.userIndex, deviceQueryType, out capabilitiesRef)).CheckError();
     return capabilitiesRef;
     #else
     return Capabilities.Empty;
     #endif
 }
コード例 #29
0
ファイル: XInput13.cs プロジェクト: ng08000/Vortice.Windows
 private static extern int XInputGetCapabilities(int dwUserIndex, DeviceQueryType dwFlags, out Capabilities capabilities);