mirror of
https://github.com/Ryujinx/Opentk.git
synced 2024-12-24 03:15:30 +00:00
Added IJoystickDevice2 interface
This commit is contained in:
parent
78078d0742
commit
5215891a4f
|
@ -34,11 +34,6 @@ namespace OpenTK.Input
|
|||
|
||||
public struct GamePadCapabilities : IEquatable<GamePadCapabilities>
|
||||
{
|
||||
byte axis_count;
|
||||
byte button_count;
|
||||
byte dpad_count;
|
||||
byte trackball_count;
|
||||
|
||||
Buttons buttons;
|
||||
byte gamepad_type;
|
||||
bool is_connected;
|
||||
|
@ -221,34 +216,6 @@ namespace OpenTK.Input
|
|||
|
||||
#endregion
|
||||
|
||||
#region Internal Members
|
||||
|
||||
internal int AxisCount
|
||||
{
|
||||
get { return axis_count; }
|
||||
set { axis_count = (byte)value; }
|
||||
}
|
||||
|
||||
internal int ButtonCount
|
||||
{
|
||||
get { return button_count; }
|
||||
set { button_count = (byte)value; }
|
||||
}
|
||||
|
||||
internal int DPadCount
|
||||
{
|
||||
get { return dpad_count; }
|
||||
set { dpad_count = (byte)value; }
|
||||
}
|
||||
|
||||
internal int TrackballCount
|
||||
{
|
||||
get { return trackball_count; }
|
||||
set { trackball_count = (byte)value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IEquatable<GamePadCapabilities> Members
|
||||
|
||||
public bool Equals(GamePadCapabilities other)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// #region License
|
||||
#region License
|
||||
//
|
||||
// GamePadType.cs
|
||||
//
|
||||
|
@ -25,7 +25,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
// #endregion
|
||||
#endregion
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
|
|
|
@ -37,5 +37,6 @@ namespace OpenTK.Input
|
|||
IMouseDriver2 MouseDriver { get; }
|
||||
IKeyboardDriver2 KeyboardDriver { get; }
|
||||
IGamePadDriver GamePadDriver { get; }
|
||||
IJoystickDriver2 JoystickDriver { get; }
|
||||
}
|
||||
}
|
||||
|
|
41
Source/OpenTK/Input/IJoystickDriver2.cs
Normal file
41
Source/OpenTK/Input/IJoystickDriver2.cs
Normal file
|
@ -0,0 +1,41 @@
|
|||
#region License
|
||||
//
|
||||
// IJoystickDriver2.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
interface IJoystickDriver2
|
||||
{
|
||||
JoystickState GetState(int index);
|
||||
JoystickCapabilities GetCapabilities(int index);
|
||||
}
|
||||
}
|
51
Source/OpenTK/Input/Joystick.cs
Normal file
51
Source/OpenTK/Input/Joystick.cs
Normal file
|
@ -0,0 +1,51 @@
|
|||
#region License
|
||||
//
|
||||
// Joystick.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
public class Joystick
|
||||
{
|
||||
static readonly IJoystickDriver2 implementation =
|
||||
Platform.Factory.Default.CreateJoystickDriver();
|
||||
|
||||
public static JoystickCapabilities GetCapabilities(int index)
|
||||
{
|
||||
return implementation.GetCapabilities(index);
|
||||
}
|
||||
|
||||
public static JoystickState GetState(int index)
|
||||
{
|
||||
return implementation.GetState(index);
|
||||
}
|
||||
}
|
||||
}
|
62
Source/OpenTK/Input/JoystickAxis.cs
Normal file
62
Source/OpenTK/Input/JoystickAxis.cs
Normal file
|
@ -0,0 +1,62 @@
|
|||
#region License
|
||||
//
|
||||
// JoystickAxis.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines available JoystickDevice axes.
|
||||
/// </summary>
|
||||
public enum JoystickAxis
|
||||
{
|
||||
/// <summary>The first axis of the JoystickDevice.</summary>
|
||||
Axis0 = 0,
|
||||
/// <summary>The second axis of the JoystickDevice.</summary>
|
||||
Axis1,
|
||||
/// <summary>The third axis of the JoystickDevice.</summary>
|
||||
Axis2,
|
||||
/// <summary>The fourth axis of the JoystickDevice.</summary>
|
||||
Axis3,
|
||||
/// <summary>The fifth axis of the JoystickDevice.</summary>
|
||||
Axis4,
|
||||
/// <summary>The sixth axis of the JoystickDevice.</summary>
|
||||
Axis5,
|
||||
/// <summary>The seventh axis of the JoystickDevice.</summary>
|
||||
Axis6,
|
||||
/// <summary>The eighth axis of the JoystickDevice.</summary>
|
||||
Axis7,
|
||||
/// <summary>The ninth axis of the JoystickDevice.</summary>
|
||||
Axis8,
|
||||
/// <summary>The tenth axis of the JoystickDevice.</summary>
|
||||
Axis9,
|
||||
}
|
||||
}
|
78
Source/OpenTK/Input/JoystickButton.cs
Normal file
78
Source/OpenTK/Input/JoystickButton.cs
Normal file
|
@ -0,0 +1,78 @@
|
|||
#region License
|
||||
//
|
||||
// JoystickButton.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
#region JoystickButton
|
||||
|
||||
/// <summary>
|
||||
/// Defines available JoystickDevice buttons.
|
||||
/// </summary>
|
||||
public enum JoystickButton
|
||||
{
|
||||
/// <summary>The first button of the JoystickDevice.</summary>
|
||||
Button0 = 0,
|
||||
/// <summary>The second button of the JoystickDevice.</summary>
|
||||
Button1,
|
||||
/// <summary>The third button of the JoystickDevice.</summary>
|
||||
Button2,
|
||||
/// <summary>The fourth button of the JoystickDevice.</summary>
|
||||
Button3,
|
||||
/// <summary>The fifth button of the JoystickDevice.</summary>
|
||||
Button4,
|
||||
/// <summary>The sixth button of the JoystickDevice.</summary>
|
||||
Button5,
|
||||
/// <summary>The seventh button of the JoystickDevice.</summary>
|
||||
Button6,
|
||||
/// <summary>The eighth button of the JoystickDevice.</summary>
|
||||
Button7,
|
||||
/// <summary>The ninth button of the JoystickDevice.</summary>
|
||||
Button8,
|
||||
/// <summary>The tenth button of the JoystickDevice.</summary>
|
||||
Button9,
|
||||
/// <summary>The eleventh button of the JoystickDevice.</summary>
|
||||
Button10,
|
||||
/// <summary>The twelfth button of the JoystickDevice.</summary>
|
||||
Button11,
|
||||
/// <summary>The thirteenth button of the JoystickDevice.</summary>
|
||||
Button12,
|
||||
/// <summary>The fourteenth button of the JoystickDevice.</summary>
|
||||
Button13,
|
||||
/// <summary>The fifteenth button of the JoystickDevice.</summary>
|
||||
Button14,
|
||||
/// <summary>The sixteenth button of the JoystickDevice.</summary>
|
||||
Button15,
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
75
Source/OpenTK/Input/JoystickCapabilities.cs
Normal file
75
Source/OpenTK/Input/JoystickCapabilities.cs
Normal file
|
@ -0,0 +1,75 @@
|
|||
#region License
|
||||
//
|
||||
// JoystickCapabilities.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
public struct JoystickCapabilities
|
||||
{
|
||||
byte axis_count;
|
||||
byte button_count;
|
||||
byte dpad_count;
|
||||
byte trackball_count;
|
||||
|
||||
#region Public Members
|
||||
|
||||
public int AxisCount
|
||||
{
|
||||
get { return axis_count; }
|
||||
set { axis_count = (byte)value; }
|
||||
}
|
||||
|
||||
public int ButtonCount
|
||||
{
|
||||
get { return button_count; }
|
||||
set { button_count = (byte)value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private Members
|
||||
|
||||
int DPadCount
|
||||
{
|
||||
get { return dpad_count; }
|
||||
set { dpad_count = (byte)value; }
|
||||
}
|
||||
|
||||
int TrackballCount
|
||||
{
|
||||
get { return trackball_count; }
|
||||
set { trackball_count = (byte)value; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -271,49 +271,6 @@ namespace OpenTK.Input
|
|||
|
||||
#endregion
|
||||
|
||||
#region JoystickButton
|
||||
|
||||
/// <summary>
|
||||
/// Defines available JoystickDevice buttons.
|
||||
/// </summary>
|
||||
public enum JoystickButton
|
||||
{
|
||||
/// <summary>The first button of the JoystickDevice.</summary>
|
||||
Button0 = 0,
|
||||
/// <summary>The second button of the JoystickDevice.</summary>
|
||||
Button1,
|
||||
/// <summary>The third button of the JoystickDevice.</summary>
|
||||
Button2,
|
||||
/// <summary>The fourth button of the JoystickDevice.</summary>
|
||||
Button3,
|
||||
/// <summary>The fifth button of the JoystickDevice.</summary>
|
||||
Button4,
|
||||
/// <summary>The sixth button of the JoystickDevice.</summary>
|
||||
Button5,
|
||||
/// <summary>The seventh button of the JoystickDevice.</summary>
|
||||
Button6,
|
||||
/// <summary>The eighth button of the JoystickDevice.</summary>
|
||||
Button7,
|
||||
/// <summary>The ninth button of the JoystickDevice.</summary>
|
||||
Button8,
|
||||
/// <summary>The tenth button of the JoystickDevice.</summary>
|
||||
Button9,
|
||||
/// <summary>The eleventh button of the JoystickDevice.</summary>
|
||||
Button10,
|
||||
/// <summary>The twelfth button of the JoystickDevice.</summary>
|
||||
Button11,
|
||||
/// <summary>The thirteenth button of the JoystickDevice.</summary>
|
||||
Button12,
|
||||
/// <summary>The fourteenth button of the JoystickDevice.</summary>
|
||||
Button13,
|
||||
/// <summary>The fifteenth button of the JoystickDevice.</summary>
|
||||
Button14,
|
||||
/// <summary>The sixteenth button of the JoystickDevice.</summary>
|
||||
Button15,
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region JoystickButtonCollection
|
||||
|
||||
/// <summary>
|
||||
|
@ -376,37 +333,6 @@ namespace OpenTK.Input
|
|||
|
||||
#endregion
|
||||
|
||||
#region JoystickAxis
|
||||
|
||||
/// <summary>
|
||||
/// Defines available JoystickDevice axes.
|
||||
/// </summary>
|
||||
public enum JoystickAxis
|
||||
{
|
||||
/// <summary>The first axis of the JoystickDevice.</summary>
|
||||
Axis0 = 0,
|
||||
/// <summary>The second axis of the JoystickDevice.</summary>
|
||||
Axis1,
|
||||
/// <summary>The third axis of the JoystickDevice.</summary>
|
||||
Axis2,
|
||||
/// <summary>The fourth axis of the JoystickDevice.</summary>
|
||||
Axis3,
|
||||
/// <summary>The fifth axis of the JoystickDevice.</summary>
|
||||
Axis4,
|
||||
/// <summary>The sixth axis of the JoystickDevice.</summary>
|
||||
Axis5,
|
||||
/// <summary>The seventh axis of the JoystickDevice.</summary>
|
||||
Axis6,
|
||||
/// <summary>The eighth axis of the JoystickDevice.</summary>
|
||||
Axis7,
|
||||
/// <summary>The ninth axis of the JoystickDevice.</summary>
|
||||
Axis8,
|
||||
/// <summary>The tenth axis of the JoystickDevice.</summary>
|
||||
Axis9,
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region JoystickAxisCollection
|
||||
|
||||
/// <summary>
|
||||
|
|
79
Source/OpenTK/Input/JoystickState.cs
Normal file
79
Source/OpenTK/Input/JoystickState.cs
Normal file
|
@ -0,0 +1,79 @@
|
|||
#region License
|
||||
//
|
||||
// JoystickState.cs
|
||||
//
|
||||
// Author:
|
||||
// Stefanos A. <stapostol@gmail.com>
|
||||
//
|
||||
// Copyright (c) 2006-2013 Stefanos Apostolopoulos
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
|
||||
namespace OpenTK.Input
|
||||
{
|
||||
public struct JoystickState
|
||||
{
|
||||
const int MaxAxes = 10; // JoystickAxis defines 10 axes
|
||||
const float ConversionFactor = 1.0f / short.MaxValue;
|
||||
unsafe fixed short axes[MaxAxes];
|
||||
JoystickButton buttons;
|
||||
|
||||
public float GetAxis(JoystickAxis axis)
|
||||
{
|
||||
return GetAxis((int)axis);
|
||||
}
|
||||
|
||||
public float GetAxis(int axis)
|
||||
{
|
||||
float value = 0.0f;
|
||||
if (axis >= 0 && axis < MaxAxes)
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
fixed (short* paxis = axes)
|
||||
{
|
||||
value = *(paxis + axis) * ConversionFactor;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Print("[Joystick] Invalid axis {0}", axis);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public bool IsButtonDown(JoystickButton button)
|
||||
{
|
||||
return (buttons & button) != 0;
|
||||
}
|
||||
|
||||
public bool IsButtonUp(JoystickButton button)
|
||||
{
|
||||
return (buttons & button) == 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -138,8 +138,14 @@
|
|||
<Compile Include="Input\GamePadType.cs" />
|
||||
<Compile Include="Input\IGamePadDriver.cs" />
|
||||
<Compile Include="Input\IInputDriver2.cs" />
|
||||
<Compile Include="Input\IJoystickDriver2.cs" />
|
||||
<Compile Include="Input\IKeyboardDriver2.cs" />
|
||||
<Compile Include="Input\IMouseDriver2.cs" />
|
||||
<Compile Include="Input\Joystick.cs" />
|
||||
<Compile Include="Input\JoystickAxis.cs" />
|
||||
<Compile Include="Input\JoystickButton.cs" />
|
||||
<Compile Include="Input\JoystickCapabilities.cs" />
|
||||
<Compile Include="Input\JoystickState.cs" />
|
||||
<Compile Include="InteropHelper.cs" />
|
||||
<Compile Include="Math\Matrix2.cs" />
|
||||
<Compile Include="Math\Matrix2d.cs" />
|
||||
|
|
|
@ -149,6 +149,11 @@ namespace OpenTK.Platform
|
|||
return default_implementation.CreateGamePadDriver();
|
||||
}
|
||||
|
||||
public Input.IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
return default_implementation.CreateJoystickDriver();
|
||||
}
|
||||
|
||||
class UnsupportedPlatform : IPlatformFactory
|
||||
{
|
||||
#region Fields
|
||||
|
@ -210,6 +215,11 @@ namespace OpenTK.Platform
|
|||
throw new PlatformNotSupportedException(error_string);
|
||||
}
|
||||
|
||||
public Input.IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
throw new PlatformNotSupportedException(error_string);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -52,5 +52,7 @@ namespace OpenTK.Platform
|
|||
OpenTK.Input.IMouseDriver2 CreateMouseDriver();
|
||||
|
||||
OpenTK.Input.IGamePadDriver CreateGamePadDriver();
|
||||
|
||||
Input.IJoystickDriver2 CreateJoystickDriver();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,5 +113,10 @@ namespace OpenTK.Platform.MacOS
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
public IJoystickDriver2 JoystickDriver
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace OpenTK.Platform.MacOS
|
|||
|
||||
// Requires Mac OS X 10.5 or higher.
|
||||
// Todo: create a driver for older installations. Maybe use CGGetLastMouseDelta for that?
|
||||
class HIDInput : IInputDriver2, IMouseDriver2, IKeyboardDriver2, IGamePadDriver
|
||||
class HIDInput : IInputDriver2, IMouseDriver2, IKeyboardDriver2, IGamePadDriver, IJoystickDriver2
|
||||
{
|
||||
#region Fields
|
||||
|
||||
|
@ -292,6 +292,8 @@ namespace OpenTK.Platform.MacOS
|
|||
public IMouseDriver2 MouseDriver { get { return this; } }
|
||||
public IKeyboardDriver2 KeyboardDriver { get { return this; } }
|
||||
public IGamePadDriver GamePadDriver { get { return this; } }
|
||||
public IJoystickDriver2 JoystickDriver { get { return this; } }
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -385,6 +387,20 @@ namespace OpenTK.Platform.MacOS
|
|||
|
||||
#endregion
|
||||
|
||||
#region IJoystickDriver2 Members
|
||||
|
||||
JoystickState IJoystickDriver2.GetState(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
JoystickCapabilities IJoystickDriver2.GetCapabilities(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region NativeMethods
|
||||
|
||||
class NativeMethods
|
||||
|
|
|
@ -94,6 +94,11 @@ namespace OpenTK.Platform.MacOS
|
|||
return InputDriver.GamePadDriver;
|
||||
}
|
||||
|
||||
public IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
return InputDriver.JoystickDriver;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -104,6 +104,11 @@ namespace OpenTK.Platform.SDL2
|
|||
return InputDriver.GamePadDriver;
|
||||
}
|
||||
|
||||
public IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
return InputDriver.JoystickDriver;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -220,6 +220,14 @@ namespace OpenTK.Platform.SDL2
|
|||
}
|
||||
}
|
||||
|
||||
public IJoystickDriver2 JoystickDriver
|
||||
{
|
||||
get
|
||||
{
|
||||
return joystick_driver;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -32,7 +32,7 @@ using OpenTK.Input;
|
|||
|
||||
namespace OpenTK.Platform.SDL2
|
||||
{
|
||||
class Sdl2JoystickDriver : IJoystickDriver, IGamePadDriver, IDisposable
|
||||
class Sdl2JoystickDriver : IJoystickDriver, IJoystickDriver2, IGamePadDriver, IDisposable
|
||||
{
|
||||
const float RangeMultiplier = 1.0f / 32768.0f;
|
||||
|
||||
|
@ -322,6 +322,20 @@ namespace OpenTK.Platform.SDL2
|
|||
|
||||
#endregion
|
||||
|
||||
#region IJoystickDriver2 Members
|
||||
|
||||
JoystickState IJoystickDriver2.GetState(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
JoystickCapabilities IJoystickDriver2.GetCapabilities(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
||||
void Dispose(bool manual)
|
||||
|
|
|
@ -131,6 +131,11 @@ namespace OpenTK.Platform.Windows
|
|||
return InputDriver.GamePadDriver;
|
||||
}
|
||||
|
||||
public IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
return InputDriver.JoystickDriver;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
IInputDriver2 InputDriver
|
||||
|
|
|
@ -164,6 +164,8 @@ namespace OpenTK.Platform.Windows
|
|||
public abstract IKeyboardDriver2 KeyboardDriver { get; }
|
||||
public abstract IGamePadDriver GamePadDriver { get; }
|
||||
|
||||
public abstract IJoystickDriver2 JoystickDriver { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -445,10 +445,10 @@ namespace OpenTK.Platform.Windows
|
|||
JoystickError result = UnsafeNativeMethods.joyGetDevCaps(index, out caps, JoyCaps.SizeInBytes);
|
||||
if (result == JoystickError.NoError)
|
||||
{
|
||||
gpcaps.AxisCount = caps.NumAxes;
|
||||
gpcaps.ButtonCount = caps.NumButtons;
|
||||
if ((caps.Capabilities & JoystCapsFlags.HasPov) != 0)
|
||||
gpcaps.DPadCount++;
|
||||
//gpcaps.AxisCount = caps.NumAxes;
|
||||
//gpcaps.ButtonCount = caps.NumButtons;
|
||||
//if ((caps.Capabilities & JoystCapsFlags.HasPov) != 0)
|
||||
// gpcaps.DPadCount++;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -190,6 +190,11 @@ namespace OpenTK.Platform.Windows
|
|||
get { return joystick_driver; }
|
||||
}
|
||||
|
||||
public override IJoystickDriver2 JoystickDriver
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// #region License
|
||||
#region License
|
||||
//
|
||||
// XInputJoystick.cs
|
||||
//
|
||||
|
@ -25,7 +25,7 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
// #endregion
|
||||
#endregion
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
|
@ -98,6 +98,12 @@ namespace OpenTK.Platform.X11
|
|||
return new X11Joystick();
|
||||
}
|
||||
|
||||
public virtual OpenTK.Input.IJoystickDriver2 CreateJoystickDriver()
|
||||
{
|
||||
return new X11Joystick();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposable Members
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace OpenTK.Platform.X11
|
|||
{
|
||||
struct X11JoyDetails { }
|
||||
|
||||
sealed class X11Joystick : IJoystickDriver, IGamePadDriver
|
||||
sealed class X11Joystick : IJoystickDriver, IJoystickDriver2, IGamePadDriver
|
||||
{
|
||||
#region Fields
|
||||
|
||||
|
@ -277,5 +277,19 @@ namespace OpenTK.Platform.X11
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IJoystickDriver2 Members
|
||||
|
||||
JoystickState IJoystickDriver2.GetState(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
JoystickCapabilities IJoystickDriver2.GetCapabilities(int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue