ffi-xinput 1.0.0 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ffi-xinput.rb +21 -8
  3. metadata +17 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e8cd01dd106167d3bca6c4d997cc4d8524e44016aa9ce8eda321f1273ba8cf6
4
- data.tar.gz: 20d2f8ce2c5170c85fc88f03f69bb165be21894724404ab887abebcf22277865
3
+ metadata.gz: 40db57056eafad321d3873ff35bba86fe1f8e3de6bae5ce96a711aab8bad8610
4
+ data.tar.gz: fbb8b9dedc9c4af9e17a629797310849e7543285e82b793ba3510cc9e4f7070e
5
5
  SHA512:
6
- metadata.gz: 5088629c8d1e91b828fb68a1d3cc59d5df65c12153c563e7fc2308a51253996a19375ddae4b713008825b1ce31623add089be1e5bb206e119ae2e1b9cc97bbae
7
- data.tar.gz: 5b69b3e5816a15713ba17409d85a2a3051a6e0db2a6691ebca5f0d0646e92ec783a31e95b55d29a1ae921e6e0f3ec0b78490dbe8c1cd7e5ec248e306ac3fd157
6
+ metadata.gz: 9f25ea152d5a4dc028eb1adf4853552aa728be1d25b64616254c1a1ae24ac86bd45d2787820fdd627f25bf84e9e4f4f31e41dd391d73b139dfb327bd4d88024c
7
+ data.tar.gz: ed7293205f1d6fc14e651d09c0bc44d464177fc2958388d673c316b2f2f1fca14bf07d325344473d7b15d9725ce31d084eed3de7892ca1be645b08613ca8b082
data/lib/ffi-xinput.rb CHANGED
@@ -36,6 +36,9 @@ module FFI::XInput
36
36
  :wRightMotorSpeed, :ushort
37
37
 
38
38
  end
39
+
40
+ ERROR_SUCCESS = 0x0000
41
+ ERROR_DEVICE_NOT_CONNECTED = 0x048F
39
42
 
40
43
  XINPUT_GAMEPAD_DPAD_UP = 0x0001
41
44
  XINPUT_GAMEPAD_DPAD_DOWN = 0x0002
@@ -66,7 +69,15 @@ class XInput
66
69
  end
67
70
 
68
71
  def state
69
- return XInput.state(id)
72
+ XInput.state(@id)
73
+ end
74
+
75
+ def vibrate(left = 0, right = 0)
76
+ XInput.vibrate(@id, left, right)
77
+ end
78
+
79
+ def connected?
80
+ XInput.state(@id)[:connected]
70
81
  end
71
82
 
72
83
  def self.state(id)
@@ -76,6 +87,7 @@ class XInput
76
87
 
77
88
  state = {}
78
89
 
90
+ state[:connected] = result == ERROR_SUCCESS
79
91
  state[:up] = gamepad[:wButtons] & XINPUT_GAMEPAD_DPAD_UP > 0
80
92
  state[:down] = gamepad[:wButtons] & XINPUT_GAMEPAD_DPAD_DOWN > 0
81
93
  state[:left] = gamepad[:wButtons] & XINPUT_GAMEPAD_DPAD_LEFT > 0
@@ -97,18 +109,19 @@ class XInput
97
109
  state[:right_thumb_x] = gamepad[:sThumbRX].to_f / 0x8000.to_f
98
110
  state[:right_thumb_y] = gamepad[:sThumbRY].to_f / 0x8000.to_f
99
111
 
100
- return state
101
- end
102
-
103
- def vibrate(left = 0, right = 0)
104
- return XInput.vibrate(@id, left, right)
112
+ state
105
113
  end
106
114
 
107
115
  def self.vibrate(id, left = 0, right = 0)
108
116
  vibration = XINPUT_VIBRATION.new
109
117
  vibration[:wLeftMotorSpeed] = left * 0xFFFF
110
118
  vibration[:wRightMotorSpeed] = right * 0xFFFF
111
- return XInputSetState(id, vibration)
119
+
120
+ XInputSetState(id, vibration)
112
121
  end
113
122
 
114
- end
123
+ def self.connected?
124
+ self.state(@id)[:connected]
125
+ end
126
+
127
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-xinput
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allison Bailey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2018-12-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.9.25
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.9.25
13
27
  description:
14
28
  email: allison@isans.net
15
29
  executables: []