sdl2-bindings 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +145 -134
  3. data/LICENSE.txt +0 -0
  4. data/README.md +108 -86
  5. data/lib/sdl2.rb +131 -131
  6. data/lib/sdl2_audio.rb +265 -261
  7. data/lib/sdl2_blendmode.rb +72 -72
  8. data/lib/sdl2_clipboard.rb +56 -56
  9. data/lib/sdl2_cpuinfo.rb +137 -129
  10. data/lib/sdl2_error.rb +71 -71
  11. data/lib/sdl2_events.rb +575 -564
  12. data/lib/sdl2_filesystem.rb +52 -52
  13. data/lib/sdl2_framerate.rb +74 -74
  14. data/lib/sdl2_gamecontroller.rb +345 -329
  15. data/lib/sdl2_gesture.rb +61 -61
  16. data/lib/sdl2_gfxPrimitives.rb +283 -283
  17. data/lib/sdl2_guid.rb +58 -0
  18. data/lib/sdl2_haptic.rb +301 -301
  19. data/lib/sdl2_hidapi.rb +139 -139
  20. data/lib/sdl2_hints.rb +240 -221
  21. data/lib/sdl2_image.rb +296 -296
  22. data/lib/sdl2_imageFilter.rb +164 -164
  23. data/lib/sdl2_joystick.rb +332 -294
  24. data/lib/sdl2_keyboard.rb +129 -125
  25. data/lib/sdl2_keycode.rb +311 -307
  26. data/lib/sdl2_log.rb +131 -131
  27. data/lib/sdl2_main.rb +74 -74
  28. data/lib/sdl2_messagebox.rb +102 -102
  29. data/lib/sdl2_misc.rb +48 -48
  30. data/lib/sdl2_mixer.rb +464 -464
  31. data/lib/sdl2_mouse.rb +136 -136
  32. data/lib/sdl2_pixels.rb +240 -240
  33. data/lib/sdl2_platform.rb +48 -48
  34. data/lib/sdl2_power.rb +54 -54
  35. data/lib/sdl2_rect.rb +145 -145
  36. data/lib/sdl2_render.rb +408 -408
  37. data/lib/sdl2_rotozoom.rb +76 -76
  38. data/lib/sdl2_rwops.rb +242 -242
  39. data/lib/sdl2_scancode.rb +293 -289
  40. data/lib/sdl2_sensor.rb +115 -115
  41. data/lib/sdl2_shape.rb +83 -83
  42. data/lib/sdl2_sound.rb +154 -154
  43. data/lib/sdl2_stdinc.rb +572 -548
  44. data/lib/sdl2_surface.rb +229 -229
  45. data/lib/sdl2_syswm.rb +160 -160
  46. data/lib/sdl2_timer.rb +74 -74
  47. data/lib/sdl2_touch.rb +86 -86
  48. data/lib/sdl2_ttf.rb +414 -414
  49. data/lib/sdl2_version.rb +67 -67
  50. data/lib/sdl2_video.rb +549 -540
  51. data/lib/sdl2_vulkan.rb +72 -72
  52. metadata +4 -3
data/lib/sdl2_joystick.rb CHANGED
@@ -1,294 +1,332 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
- #
5
- # [NOTICE] This is an automatically generated file.
6
-
7
- require 'ffi'
8
-
9
- module SDL
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
- IPHONE_MAX_GFORCE = 5.0
14
- JOYSTICK_AXIS_MAX = 32767
15
- JOYSTICK_AXIS_MIN = -32768
16
- HAT_CENTERED = 0x00
17
- HAT_UP = 0x01
18
- HAT_RIGHT = 0x02
19
- HAT_DOWN = 0x04
20
- HAT_LEFT = 0x08
21
- HAT_RIGHTUP = (HAT_RIGHT | HAT_UP)
22
- HAT_RIGHTDOWN = (HAT_RIGHT | HAT_DOWN)
23
- HAT_LEFTUP = (HAT_LEFT | HAT_UP)
24
- HAT_LEFTDOWN = (HAT_LEFT | HAT_DOWN)
25
-
26
- # Enum
27
-
28
- JOYSTICK_TYPE_UNKNOWN = 0
29
- JOYSTICK_TYPE_GAMECONTROLLER = 1
30
- JOYSTICK_TYPE_WHEEL = 2
31
- JOYSTICK_TYPE_ARCADE_STICK = 3
32
- JOYSTICK_TYPE_FLIGHT_STICK = 4
33
- JOYSTICK_TYPE_DANCE_PAD = 5
34
- JOYSTICK_TYPE_GUITAR = 6
35
- JOYSTICK_TYPE_DRUM_KIT = 7
36
- JOYSTICK_TYPE_ARCADE_PAD = 8
37
- JOYSTICK_TYPE_THROTTLE = 9
38
- JOYSTICK_POWER_UNKNOWN = -1
39
- JOYSTICK_POWER_EMPTY = 0
40
- JOYSTICK_POWER_LOW = 1
41
- JOYSTICK_POWER_MEDIUM = 2
42
- JOYSTICK_POWER_FULL = 3
43
- JOYSTICK_POWER_WIRED = 4
44
- JOYSTICK_POWER_MAX = 5
45
-
46
- # Typedef
47
-
48
- typedef :int, :SDL_JoystickID
49
- typedef :int, :SDL_JoystickType
50
- typedef :int, :SDL_JoystickPowerLevel
51
-
52
- # Struct
53
-
54
- class JoystickGUID < FFI::Struct
55
- layout(
56
- :data, [:uchar, 16],
57
- )
58
- end
59
-
60
-
61
- # Function
62
-
63
- def self.setup_joystick_symbols(output_error = false)
64
- symbols = [
65
- :SDL_LockJoysticks,
66
- :SDL_UnlockJoysticks,
67
- :SDL_NumJoysticks,
68
- :SDL_JoystickNameForIndex,
69
- :SDL_JoystickGetDevicePlayerIndex,
70
- :SDL_JoystickGetDeviceGUID,
71
- :SDL_JoystickGetDeviceVendor,
72
- :SDL_JoystickGetDeviceProduct,
73
- :SDL_JoystickGetDeviceProductVersion,
74
- :SDL_JoystickGetDeviceType,
75
- :SDL_JoystickGetDeviceInstanceID,
76
- :SDL_JoystickOpen,
77
- :SDL_JoystickFromInstanceID,
78
- :SDL_JoystickFromPlayerIndex,
79
- :SDL_JoystickAttachVirtual,
80
- :SDL_JoystickDetachVirtual,
81
- :SDL_JoystickIsVirtual,
82
- :SDL_JoystickSetVirtualAxis,
83
- :SDL_JoystickSetVirtualButton,
84
- :SDL_JoystickSetVirtualHat,
85
- :SDL_JoystickName,
86
- :SDL_JoystickGetPlayerIndex,
87
- :SDL_JoystickSetPlayerIndex,
88
- :SDL_JoystickGetGUID,
89
- :SDL_JoystickGetVendor,
90
- :SDL_JoystickGetProduct,
91
- :SDL_JoystickGetProductVersion,
92
- :SDL_JoystickGetSerial,
93
- :SDL_JoystickGetType,
94
- :SDL_JoystickGetGUIDString,
95
- :SDL_JoystickGetGUIDFromString,
96
- :SDL_JoystickGetAttached,
97
- :SDL_JoystickInstanceID,
98
- :SDL_JoystickNumAxes,
99
- :SDL_JoystickNumBalls,
100
- :SDL_JoystickNumHats,
101
- :SDL_JoystickNumButtons,
102
- :SDL_JoystickUpdate,
103
- :SDL_JoystickEventState,
104
- :SDL_JoystickGetAxis,
105
- :SDL_JoystickGetAxisInitialState,
106
- :SDL_JoystickGetHat,
107
- :SDL_JoystickGetBall,
108
- :SDL_JoystickGetButton,
109
- :SDL_JoystickRumble,
110
- :SDL_JoystickRumbleTriggers,
111
- :SDL_JoystickHasLED,
112
- :SDL_JoystickHasRumble,
113
- :SDL_JoystickHasRumbleTriggers,
114
- :SDL_JoystickSetLED,
115
- :SDL_JoystickSendEffect,
116
- :SDL_JoystickClose,
117
- :SDL_JoystickCurrentPowerLevel,
118
- ]
119
- apis = {
120
- :SDL_LockJoysticks => :LockJoysticks,
121
- :SDL_UnlockJoysticks => :UnlockJoysticks,
122
- :SDL_NumJoysticks => :NumJoysticks,
123
- :SDL_JoystickNameForIndex => :JoystickNameForIndex,
124
- :SDL_JoystickGetDevicePlayerIndex => :JoystickGetDevicePlayerIndex,
125
- :SDL_JoystickGetDeviceGUID => :JoystickGetDeviceGUID,
126
- :SDL_JoystickGetDeviceVendor => :JoystickGetDeviceVendor,
127
- :SDL_JoystickGetDeviceProduct => :JoystickGetDeviceProduct,
128
- :SDL_JoystickGetDeviceProductVersion => :JoystickGetDeviceProductVersion,
129
- :SDL_JoystickGetDeviceType => :JoystickGetDeviceType,
130
- :SDL_JoystickGetDeviceInstanceID => :JoystickGetDeviceInstanceID,
131
- :SDL_JoystickOpen => :JoystickOpen,
132
- :SDL_JoystickFromInstanceID => :JoystickFromInstanceID,
133
- :SDL_JoystickFromPlayerIndex => :JoystickFromPlayerIndex,
134
- :SDL_JoystickAttachVirtual => :JoystickAttachVirtual,
135
- :SDL_JoystickDetachVirtual => :JoystickDetachVirtual,
136
- :SDL_JoystickIsVirtual => :JoystickIsVirtual,
137
- :SDL_JoystickSetVirtualAxis => :JoystickSetVirtualAxis,
138
- :SDL_JoystickSetVirtualButton => :JoystickSetVirtualButton,
139
- :SDL_JoystickSetVirtualHat => :JoystickSetVirtualHat,
140
- :SDL_JoystickName => :JoystickName,
141
- :SDL_JoystickGetPlayerIndex => :JoystickGetPlayerIndex,
142
- :SDL_JoystickSetPlayerIndex => :JoystickSetPlayerIndex,
143
- :SDL_JoystickGetGUID => :JoystickGetGUID,
144
- :SDL_JoystickGetVendor => :JoystickGetVendor,
145
- :SDL_JoystickGetProduct => :JoystickGetProduct,
146
- :SDL_JoystickGetProductVersion => :JoystickGetProductVersion,
147
- :SDL_JoystickGetSerial => :JoystickGetSerial,
148
- :SDL_JoystickGetType => :JoystickGetType,
149
- :SDL_JoystickGetGUIDString => :JoystickGetGUIDString,
150
- :SDL_JoystickGetGUIDFromString => :JoystickGetGUIDFromString,
151
- :SDL_JoystickGetAttached => :JoystickGetAttached,
152
- :SDL_JoystickInstanceID => :JoystickInstanceID,
153
- :SDL_JoystickNumAxes => :JoystickNumAxes,
154
- :SDL_JoystickNumBalls => :JoystickNumBalls,
155
- :SDL_JoystickNumHats => :JoystickNumHats,
156
- :SDL_JoystickNumButtons => :JoystickNumButtons,
157
- :SDL_JoystickUpdate => :JoystickUpdate,
158
- :SDL_JoystickEventState => :JoystickEventState,
159
- :SDL_JoystickGetAxis => :JoystickGetAxis,
160
- :SDL_JoystickGetAxisInitialState => :JoystickGetAxisInitialState,
161
- :SDL_JoystickGetHat => :JoystickGetHat,
162
- :SDL_JoystickGetBall => :JoystickGetBall,
163
- :SDL_JoystickGetButton => :JoystickGetButton,
164
- :SDL_JoystickRumble => :JoystickRumble,
165
- :SDL_JoystickRumbleTriggers => :JoystickRumbleTriggers,
166
- :SDL_JoystickHasLED => :JoystickHasLED,
167
- :SDL_JoystickHasRumble => :JoystickHasRumble,
168
- :SDL_JoystickHasRumbleTriggers => :JoystickHasRumbleTriggers,
169
- :SDL_JoystickSetLED => :JoystickSetLED,
170
- :SDL_JoystickSendEffect => :JoystickSendEffect,
171
- :SDL_JoystickClose => :JoystickClose,
172
- :SDL_JoystickCurrentPowerLevel => :JoystickCurrentPowerLevel,
173
- }
174
- args = {
175
- :SDL_LockJoysticks => [],
176
- :SDL_UnlockJoysticks => [],
177
- :SDL_NumJoysticks => [],
178
- :SDL_JoystickNameForIndex => [:int],
179
- :SDL_JoystickGetDevicePlayerIndex => [:int],
180
- :SDL_JoystickGetDeviceGUID => [:int],
181
- :SDL_JoystickGetDeviceVendor => [:int],
182
- :SDL_JoystickGetDeviceProduct => [:int],
183
- :SDL_JoystickGetDeviceProductVersion => [:int],
184
- :SDL_JoystickGetDeviceType => [:int],
185
- :SDL_JoystickGetDeviceInstanceID => [:int],
186
- :SDL_JoystickOpen => [:int],
187
- :SDL_JoystickFromInstanceID => [:int],
188
- :SDL_JoystickFromPlayerIndex => [:int],
189
- :SDL_JoystickAttachVirtual => [:int, :int, :int, :int],
190
- :SDL_JoystickDetachVirtual => [:int],
191
- :SDL_JoystickIsVirtual => [:int],
192
- :SDL_JoystickSetVirtualAxis => [:pointer, :int, :short],
193
- :SDL_JoystickSetVirtualButton => [:pointer, :int, :uchar],
194
- :SDL_JoystickSetVirtualHat => [:pointer, :int, :uchar],
195
- :SDL_JoystickName => [:pointer],
196
- :SDL_JoystickGetPlayerIndex => [:pointer],
197
- :SDL_JoystickSetPlayerIndex => [:pointer, :int],
198
- :SDL_JoystickGetGUID => [:pointer],
199
- :SDL_JoystickGetVendor => [:pointer],
200
- :SDL_JoystickGetProduct => [:pointer],
201
- :SDL_JoystickGetProductVersion => [:pointer],
202
- :SDL_JoystickGetSerial => [:pointer],
203
- :SDL_JoystickGetType => [:pointer],
204
- :SDL_JoystickGetGUIDString => [JoystickGUID.by_value, :pointer, :int],
205
- :SDL_JoystickGetGUIDFromString => [:pointer],
206
- :SDL_JoystickGetAttached => [:pointer],
207
- :SDL_JoystickInstanceID => [:pointer],
208
- :SDL_JoystickNumAxes => [:pointer],
209
- :SDL_JoystickNumBalls => [:pointer],
210
- :SDL_JoystickNumHats => [:pointer],
211
- :SDL_JoystickNumButtons => [:pointer],
212
- :SDL_JoystickUpdate => [],
213
- :SDL_JoystickEventState => [:int],
214
- :SDL_JoystickGetAxis => [:pointer, :int],
215
- :SDL_JoystickGetAxisInitialState => [:pointer, :int, :pointer],
216
- :SDL_JoystickGetHat => [:pointer, :int],
217
- :SDL_JoystickGetBall => [:pointer, :int, :pointer, :pointer],
218
- :SDL_JoystickGetButton => [:pointer, :int],
219
- :SDL_JoystickRumble => [:pointer, :ushort, :ushort, :uint],
220
- :SDL_JoystickRumbleTriggers => [:pointer, :ushort, :ushort, :uint],
221
- :SDL_JoystickHasLED => [:pointer],
222
- :SDL_JoystickHasRumble => [:pointer],
223
- :SDL_JoystickHasRumbleTriggers => [:pointer],
224
- :SDL_JoystickSetLED => [:pointer, :uchar, :uchar, :uchar],
225
- :SDL_JoystickSendEffect => [:pointer, :pointer, :int],
226
- :SDL_JoystickClose => [:pointer],
227
- :SDL_JoystickCurrentPowerLevel => [:pointer],
228
- }
229
- retvals = {
230
- :SDL_LockJoysticks => :void,
231
- :SDL_UnlockJoysticks => :void,
232
- :SDL_NumJoysticks => :int,
233
- :SDL_JoystickNameForIndex => :pointer,
234
- :SDL_JoystickGetDevicePlayerIndex => :int,
235
- :SDL_JoystickGetDeviceGUID => JoystickGUID.by_value,
236
- :SDL_JoystickGetDeviceVendor => :ushort,
237
- :SDL_JoystickGetDeviceProduct => :ushort,
238
- :SDL_JoystickGetDeviceProductVersion => :ushort,
239
- :SDL_JoystickGetDeviceType => :int,
240
- :SDL_JoystickGetDeviceInstanceID => :int,
241
- :SDL_JoystickOpen => :pointer,
242
- :SDL_JoystickFromInstanceID => :pointer,
243
- :SDL_JoystickFromPlayerIndex => :pointer,
244
- :SDL_JoystickAttachVirtual => :int,
245
- :SDL_JoystickDetachVirtual => :int,
246
- :SDL_JoystickIsVirtual => :int,
247
- :SDL_JoystickSetVirtualAxis => :int,
248
- :SDL_JoystickSetVirtualButton => :int,
249
- :SDL_JoystickSetVirtualHat => :int,
250
- :SDL_JoystickName => :pointer,
251
- :SDL_JoystickGetPlayerIndex => :int,
252
- :SDL_JoystickSetPlayerIndex => :void,
253
- :SDL_JoystickGetGUID => JoystickGUID.by_value,
254
- :SDL_JoystickGetVendor => :ushort,
255
- :SDL_JoystickGetProduct => :ushort,
256
- :SDL_JoystickGetProductVersion => :ushort,
257
- :SDL_JoystickGetSerial => :pointer,
258
- :SDL_JoystickGetType => :int,
259
- :SDL_JoystickGetGUIDString => :void,
260
- :SDL_JoystickGetGUIDFromString => JoystickGUID.by_value,
261
- :SDL_JoystickGetAttached => :int,
262
- :SDL_JoystickInstanceID => :int,
263
- :SDL_JoystickNumAxes => :int,
264
- :SDL_JoystickNumBalls => :int,
265
- :SDL_JoystickNumHats => :int,
266
- :SDL_JoystickNumButtons => :int,
267
- :SDL_JoystickUpdate => :void,
268
- :SDL_JoystickEventState => :int,
269
- :SDL_JoystickGetAxis => :short,
270
- :SDL_JoystickGetAxisInitialState => :int,
271
- :SDL_JoystickGetHat => :uchar,
272
- :SDL_JoystickGetBall => :int,
273
- :SDL_JoystickGetButton => :uchar,
274
- :SDL_JoystickRumble => :int,
275
- :SDL_JoystickRumbleTriggers => :int,
276
- :SDL_JoystickHasLED => :int,
277
- :SDL_JoystickHasRumble => :int,
278
- :SDL_JoystickHasRumbleTriggers => :int,
279
- :SDL_JoystickSetLED => :int,
280
- :SDL_JoystickSendEffect => :int,
281
- :SDL_JoystickClose => :void,
282
- :SDL_JoystickCurrentPowerLevel => :int,
283
- }
284
- symbols.each do |sym|
285
- begin
286
- attach_function apis[sym], sym, args[sym], retvals[sym]
287
- rescue FFI::NotFoundError => error
288
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
289
- end
290
- end
291
- end
292
-
293
- end
294
-
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+ require_relative 'sdl2_guid'
9
+
10
+ module SDL
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+ IPHONE_MAX_GFORCE = 5.0
15
+ VIRTUAL_JOYSTICK_DESC_VERSION = 1
16
+ JOYSTICK_AXIS_MAX = 32767
17
+ JOYSTICK_AXIS_MIN = -32768
18
+ HAT_CENTERED = 0x00
19
+ HAT_UP = 0x01
20
+ HAT_RIGHT = 0x02
21
+ HAT_DOWN = 0x04
22
+ HAT_LEFT = 0x08
23
+ HAT_RIGHTUP = (HAT_RIGHT | HAT_UP)
24
+ HAT_RIGHTDOWN = (HAT_RIGHT | HAT_DOWN)
25
+ HAT_LEFTUP = (HAT_LEFT | HAT_UP)
26
+ HAT_LEFTDOWN = (HAT_LEFT | HAT_DOWN)
27
+
28
+ # Enum
29
+
30
+ JOYSTICK_TYPE_UNKNOWN = 0
31
+ JOYSTICK_TYPE_GAMECONTROLLER = 1
32
+ JOYSTICK_TYPE_WHEEL = 2
33
+ JOYSTICK_TYPE_ARCADE_STICK = 3
34
+ JOYSTICK_TYPE_FLIGHT_STICK = 4
35
+ JOYSTICK_TYPE_DANCE_PAD = 5
36
+ JOYSTICK_TYPE_GUITAR = 6
37
+ JOYSTICK_TYPE_DRUM_KIT = 7
38
+ JOYSTICK_TYPE_ARCADE_PAD = 8
39
+ JOYSTICK_TYPE_THROTTLE = 9
40
+ JOYSTICK_POWER_UNKNOWN = -1
41
+ JOYSTICK_POWER_EMPTY = 0
42
+ JOYSTICK_POWER_LOW = 1
43
+ JOYSTICK_POWER_MEDIUM = 2
44
+ JOYSTICK_POWER_FULL = 3
45
+ JOYSTICK_POWER_WIRED = 4
46
+ JOYSTICK_POWER_MAX = 5
47
+
48
+ # Typedef
49
+
50
+
51
+ JoystickGUID = SDL::GUID
52
+
53
+ typedef :int, :SDL_JoystickID
54
+ typedef :int, :SDL_JoystickType
55
+ typedef :int, :SDL_JoystickPowerLevel
56
+
57
+ # Struct
58
+
59
+ class VirtualJoystickDesc < FFI::Struct
60
+ layout(
61
+ :version, :ushort,
62
+ :type, :ushort,
63
+ :naxes, :ushort,
64
+ :nbuttons, :ushort,
65
+ :nhats, :ushort,
66
+ :vendor_id, :ushort,
67
+ :product_id, :ushort,
68
+ :padding, :ushort,
69
+ :button_mask, :uint,
70
+ :axis_mask, :uint,
71
+ :name, :pointer,
72
+ :userdata, :pointer,
73
+ :Update, :pointer,
74
+ :SetPlayerIndex, :pointer,
75
+ :Rumble, :pointer,
76
+ :RumbleTriggers, :pointer,
77
+ :SetLED, :pointer,
78
+ :SendEffect, :pointer,
79
+ )
80
+ end
81
+
82
+
83
+ # Function
84
+
85
+ def self.setup_joystick_symbols(output_error = false)
86
+ symbols = [
87
+ :SDL_LockJoysticks,
88
+ :SDL_UnlockJoysticks,
89
+ :SDL_NumJoysticks,
90
+ :SDL_JoystickNameForIndex,
91
+ :SDL_JoystickPathForIndex,
92
+ :SDL_JoystickGetDevicePlayerIndex,
93
+ :SDL_JoystickGetDeviceGUID,
94
+ :SDL_JoystickGetDeviceVendor,
95
+ :SDL_JoystickGetDeviceProduct,
96
+ :SDL_JoystickGetDeviceProductVersion,
97
+ :SDL_JoystickGetDeviceType,
98
+ :SDL_JoystickGetDeviceInstanceID,
99
+ :SDL_JoystickOpen,
100
+ :SDL_JoystickFromInstanceID,
101
+ :SDL_JoystickFromPlayerIndex,
102
+ :SDL_JoystickAttachVirtual,
103
+ :SDL_JoystickAttachVirtualEx,
104
+ :SDL_JoystickDetachVirtual,
105
+ :SDL_JoystickIsVirtual,
106
+ :SDL_JoystickSetVirtualAxis,
107
+ :SDL_JoystickSetVirtualButton,
108
+ :SDL_JoystickSetVirtualHat,
109
+ :SDL_JoystickName,
110
+ :SDL_JoystickPath,
111
+ :SDL_JoystickGetPlayerIndex,
112
+ :SDL_JoystickSetPlayerIndex,
113
+ :SDL_JoystickGetGUID,
114
+ :SDL_JoystickGetVendor,
115
+ :SDL_JoystickGetProduct,
116
+ :SDL_JoystickGetProductVersion,
117
+ :SDL_JoystickGetFirmwareVersion,
118
+ :SDL_JoystickGetSerial,
119
+ :SDL_JoystickGetType,
120
+ :SDL_JoystickGetGUIDString,
121
+ :SDL_JoystickGetGUIDFromString,
122
+ :SDL_JoystickGetAttached,
123
+ :SDL_JoystickInstanceID,
124
+ :SDL_JoystickNumAxes,
125
+ :SDL_JoystickNumBalls,
126
+ :SDL_JoystickNumHats,
127
+ :SDL_JoystickNumButtons,
128
+ :SDL_JoystickUpdate,
129
+ :SDL_JoystickEventState,
130
+ :SDL_JoystickGetAxis,
131
+ :SDL_JoystickGetAxisInitialState,
132
+ :SDL_JoystickGetHat,
133
+ :SDL_JoystickGetBall,
134
+ :SDL_JoystickGetButton,
135
+ :SDL_JoystickRumble,
136
+ :SDL_JoystickRumbleTriggers,
137
+ :SDL_JoystickHasLED,
138
+ :SDL_JoystickHasRumble,
139
+ :SDL_JoystickHasRumbleTriggers,
140
+ :SDL_JoystickSetLED,
141
+ :SDL_JoystickSendEffect,
142
+ :SDL_JoystickClose,
143
+ :SDL_JoystickCurrentPowerLevel,
144
+ ]
145
+ apis = {
146
+ :SDL_LockJoysticks => :LockJoysticks,
147
+ :SDL_UnlockJoysticks => :UnlockJoysticks,
148
+ :SDL_NumJoysticks => :NumJoysticks,
149
+ :SDL_JoystickNameForIndex => :JoystickNameForIndex,
150
+ :SDL_JoystickPathForIndex => :JoystickPathForIndex,
151
+ :SDL_JoystickGetDevicePlayerIndex => :JoystickGetDevicePlayerIndex,
152
+ :SDL_JoystickGetDeviceGUID => :JoystickGetDeviceGUID,
153
+ :SDL_JoystickGetDeviceVendor => :JoystickGetDeviceVendor,
154
+ :SDL_JoystickGetDeviceProduct => :JoystickGetDeviceProduct,
155
+ :SDL_JoystickGetDeviceProductVersion => :JoystickGetDeviceProductVersion,
156
+ :SDL_JoystickGetDeviceType => :JoystickGetDeviceType,
157
+ :SDL_JoystickGetDeviceInstanceID => :JoystickGetDeviceInstanceID,
158
+ :SDL_JoystickOpen => :JoystickOpen,
159
+ :SDL_JoystickFromInstanceID => :JoystickFromInstanceID,
160
+ :SDL_JoystickFromPlayerIndex => :JoystickFromPlayerIndex,
161
+ :SDL_JoystickAttachVirtual => :JoystickAttachVirtual,
162
+ :SDL_JoystickAttachVirtualEx => :JoystickAttachVirtualEx,
163
+ :SDL_JoystickDetachVirtual => :JoystickDetachVirtual,
164
+ :SDL_JoystickIsVirtual => :JoystickIsVirtual,
165
+ :SDL_JoystickSetVirtualAxis => :JoystickSetVirtualAxis,
166
+ :SDL_JoystickSetVirtualButton => :JoystickSetVirtualButton,
167
+ :SDL_JoystickSetVirtualHat => :JoystickSetVirtualHat,
168
+ :SDL_JoystickName => :JoystickName,
169
+ :SDL_JoystickPath => :JoystickPath,
170
+ :SDL_JoystickGetPlayerIndex => :JoystickGetPlayerIndex,
171
+ :SDL_JoystickSetPlayerIndex => :JoystickSetPlayerIndex,
172
+ :SDL_JoystickGetGUID => :JoystickGetGUID,
173
+ :SDL_JoystickGetVendor => :JoystickGetVendor,
174
+ :SDL_JoystickGetProduct => :JoystickGetProduct,
175
+ :SDL_JoystickGetProductVersion => :JoystickGetProductVersion,
176
+ :SDL_JoystickGetFirmwareVersion => :JoystickGetFirmwareVersion,
177
+ :SDL_JoystickGetSerial => :JoystickGetSerial,
178
+ :SDL_JoystickGetType => :JoystickGetType,
179
+ :SDL_JoystickGetGUIDString => :JoystickGetGUIDString,
180
+ :SDL_JoystickGetGUIDFromString => :JoystickGetGUIDFromString,
181
+ :SDL_JoystickGetAttached => :JoystickGetAttached,
182
+ :SDL_JoystickInstanceID => :JoystickInstanceID,
183
+ :SDL_JoystickNumAxes => :JoystickNumAxes,
184
+ :SDL_JoystickNumBalls => :JoystickNumBalls,
185
+ :SDL_JoystickNumHats => :JoystickNumHats,
186
+ :SDL_JoystickNumButtons => :JoystickNumButtons,
187
+ :SDL_JoystickUpdate => :JoystickUpdate,
188
+ :SDL_JoystickEventState => :JoystickEventState,
189
+ :SDL_JoystickGetAxis => :JoystickGetAxis,
190
+ :SDL_JoystickGetAxisInitialState => :JoystickGetAxisInitialState,
191
+ :SDL_JoystickGetHat => :JoystickGetHat,
192
+ :SDL_JoystickGetBall => :JoystickGetBall,
193
+ :SDL_JoystickGetButton => :JoystickGetButton,
194
+ :SDL_JoystickRumble => :JoystickRumble,
195
+ :SDL_JoystickRumbleTriggers => :JoystickRumbleTriggers,
196
+ :SDL_JoystickHasLED => :JoystickHasLED,
197
+ :SDL_JoystickHasRumble => :JoystickHasRumble,
198
+ :SDL_JoystickHasRumbleTriggers => :JoystickHasRumbleTriggers,
199
+ :SDL_JoystickSetLED => :JoystickSetLED,
200
+ :SDL_JoystickSendEffect => :JoystickSendEffect,
201
+ :SDL_JoystickClose => :JoystickClose,
202
+ :SDL_JoystickCurrentPowerLevel => :JoystickCurrentPowerLevel,
203
+ }
204
+ args = {
205
+ :SDL_LockJoysticks => [],
206
+ :SDL_UnlockJoysticks => [],
207
+ :SDL_NumJoysticks => [],
208
+ :SDL_JoystickNameForIndex => [:int],
209
+ :SDL_JoystickPathForIndex => [:int],
210
+ :SDL_JoystickGetDevicePlayerIndex => [:int],
211
+ :SDL_JoystickGetDeviceGUID => [:int],
212
+ :SDL_JoystickGetDeviceVendor => [:int],
213
+ :SDL_JoystickGetDeviceProduct => [:int],
214
+ :SDL_JoystickGetDeviceProductVersion => [:int],
215
+ :SDL_JoystickGetDeviceType => [:int],
216
+ :SDL_JoystickGetDeviceInstanceID => [:int],
217
+ :SDL_JoystickOpen => [:int],
218
+ :SDL_JoystickFromInstanceID => [:int],
219
+ :SDL_JoystickFromPlayerIndex => [:int],
220
+ :SDL_JoystickAttachVirtual => [:int, :int, :int, :int],
221
+ :SDL_JoystickAttachVirtualEx => [:pointer],
222
+ :SDL_JoystickDetachVirtual => [:int],
223
+ :SDL_JoystickIsVirtual => [:int],
224
+ :SDL_JoystickSetVirtualAxis => [:pointer, :int, :short],
225
+ :SDL_JoystickSetVirtualButton => [:pointer, :int, :uchar],
226
+ :SDL_JoystickSetVirtualHat => [:pointer, :int, :uchar],
227
+ :SDL_JoystickName => [:pointer],
228
+ :SDL_JoystickPath => [:pointer],
229
+ :SDL_JoystickGetPlayerIndex => [:pointer],
230
+ :SDL_JoystickSetPlayerIndex => [:pointer, :int],
231
+ :SDL_JoystickGetGUID => [:pointer],
232
+ :SDL_JoystickGetVendor => [:pointer],
233
+ :SDL_JoystickGetProduct => [:pointer],
234
+ :SDL_JoystickGetProductVersion => [:pointer],
235
+ :SDL_JoystickGetFirmwareVersion => [:pointer],
236
+ :SDL_JoystickGetSerial => [:pointer],
237
+ :SDL_JoystickGetType => [:pointer],
238
+ :SDL_JoystickGetGUIDString => [JoystickGUID.by_value, :pointer, :int],
239
+ :SDL_JoystickGetGUIDFromString => [:pointer],
240
+ :SDL_JoystickGetAttached => [:pointer],
241
+ :SDL_JoystickInstanceID => [:pointer],
242
+ :SDL_JoystickNumAxes => [:pointer],
243
+ :SDL_JoystickNumBalls => [:pointer],
244
+ :SDL_JoystickNumHats => [:pointer],
245
+ :SDL_JoystickNumButtons => [:pointer],
246
+ :SDL_JoystickUpdate => [],
247
+ :SDL_JoystickEventState => [:int],
248
+ :SDL_JoystickGetAxis => [:pointer, :int],
249
+ :SDL_JoystickGetAxisInitialState => [:pointer, :int, :pointer],
250
+ :SDL_JoystickGetHat => [:pointer, :int],
251
+ :SDL_JoystickGetBall => [:pointer, :int, :pointer, :pointer],
252
+ :SDL_JoystickGetButton => [:pointer, :int],
253
+ :SDL_JoystickRumble => [:pointer, :ushort, :ushort, :uint],
254
+ :SDL_JoystickRumbleTriggers => [:pointer, :ushort, :ushort, :uint],
255
+ :SDL_JoystickHasLED => [:pointer],
256
+ :SDL_JoystickHasRumble => [:pointer],
257
+ :SDL_JoystickHasRumbleTriggers => [:pointer],
258
+ :SDL_JoystickSetLED => [:pointer, :uchar, :uchar, :uchar],
259
+ :SDL_JoystickSendEffect => [:pointer, :pointer, :int],
260
+ :SDL_JoystickClose => [:pointer],
261
+ :SDL_JoystickCurrentPowerLevel => [:pointer],
262
+ }
263
+ retvals = {
264
+ :SDL_LockJoysticks => :void,
265
+ :SDL_UnlockJoysticks => :void,
266
+ :SDL_NumJoysticks => :int,
267
+ :SDL_JoystickNameForIndex => :pointer,
268
+ :SDL_JoystickPathForIndex => :pointer,
269
+ :SDL_JoystickGetDevicePlayerIndex => :int,
270
+ :SDL_JoystickGetDeviceGUID => JoystickGUID.by_value,
271
+ :SDL_JoystickGetDeviceVendor => :ushort,
272
+ :SDL_JoystickGetDeviceProduct => :ushort,
273
+ :SDL_JoystickGetDeviceProductVersion => :ushort,
274
+ :SDL_JoystickGetDeviceType => :int,
275
+ :SDL_JoystickGetDeviceInstanceID => :int,
276
+ :SDL_JoystickOpen => :pointer,
277
+ :SDL_JoystickFromInstanceID => :pointer,
278
+ :SDL_JoystickFromPlayerIndex => :pointer,
279
+ :SDL_JoystickAttachVirtual => :int,
280
+ :SDL_JoystickAttachVirtualEx => :int,
281
+ :SDL_JoystickDetachVirtual => :int,
282
+ :SDL_JoystickIsVirtual => :int,
283
+ :SDL_JoystickSetVirtualAxis => :int,
284
+ :SDL_JoystickSetVirtualButton => :int,
285
+ :SDL_JoystickSetVirtualHat => :int,
286
+ :SDL_JoystickName => :pointer,
287
+ :SDL_JoystickPath => :pointer,
288
+ :SDL_JoystickGetPlayerIndex => :int,
289
+ :SDL_JoystickSetPlayerIndex => :void,
290
+ :SDL_JoystickGetGUID => JoystickGUID.by_value,
291
+ :SDL_JoystickGetVendor => :ushort,
292
+ :SDL_JoystickGetProduct => :ushort,
293
+ :SDL_JoystickGetProductVersion => :ushort,
294
+ :SDL_JoystickGetFirmwareVersion => :ushort,
295
+ :SDL_JoystickGetSerial => :pointer,
296
+ :SDL_JoystickGetType => :int,
297
+ :SDL_JoystickGetGUIDString => :void,
298
+ :SDL_JoystickGetGUIDFromString => JoystickGUID.by_value,
299
+ :SDL_JoystickGetAttached => :int,
300
+ :SDL_JoystickInstanceID => :int,
301
+ :SDL_JoystickNumAxes => :int,
302
+ :SDL_JoystickNumBalls => :int,
303
+ :SDL_JoystickNumHats => :int,
304
+ :SDL_JoystickNumButtons => :int,
305
+ :SDL_JoystickUpdate => :void,
306
+ :SDL_JoystickEventState => :int,
307
+ :SDL_JoystickGetAxis => :short,
308
+ :SDL_JoystickGetAxisInitialState => :int,
309
+ :SDL_JoystickGetHat => :uchar,
310
+ :SDL_JoystickGetBall => :int,
311
+ :SDL_JoystickGetButton => :uchar,
312
+ :SDL_JoystickRumble => :int,
313
+ :SDL_JoystickRumbleTriggers => :int,
314
+ :SDL_JoystickHasLED => :int,
315
+ :SDL_JoystickHasRumble => :int,
316
+ :SDL_JoystickHasRumbleTriggers => :int,
317
+ :SDL_JoystickSetLED => :int,
318
+ :SDL_JoystickSendEffect => :int,
319
+ :SDL_JoystickClose => :void,
320
+ :SDL_JoystickCurrentPowerLevel => :int,
321
+ }
322
+ symbols.each do |sym|
323
+ begin
324
+ attach_function apis[sym], sym, args[sym], retvals[sym]
325
+ rescue FFI::NotFoundError => error
326
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
327
+ end
328
+ end
329
+ end
330
+
331
+ end
332
+