sdl2-bindings 0.0.4 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f118058647c2dac8172c7240e09fe535a2efe02987eb7f176c83816c42d5bc6
4
- data.tar.gz: acfb6538985bfc21f820c083cd9cc73ee91fd16fff3d7a940882265e5f9051b8
3
+ metadata.gz: 35079ab7c6bbfd35b26fdaeb404263532c8076897bbdaae87252f4c7eb752ba6
4
+ data.tar.gz: ebb622ab9b6693acc19c70cd110365a1f3e546f7cdb60a1f63033324b86b769b
5
5
  SHA512:
6
- metadata.gz: 436c7e2e1fe87e50440c1398f513f306bfe271bfbb5fb5d4868713c545026a0398b7138394a58e6506b2eea25c8ce88ff65ea52b14a31ec6fe9ec64aa526f776
7
- data.tar.gz: 4b45499bc140f16d00bccf1b1e74bb5ca84645febb941ec7eb1817e629be97687e8a74c8b023aa557504056cae39118e2705e0046dc54799c4f64348e335b3b5
6
+ metadata.gz: 62cb6b497ffb2a3b07485280698c74ab8caf4823449cc8958334373596a9dd18a019a6ffe8619beb19009a23fdda32ec2585859d6430911686204e4f03aac4a6
7
+ data.tar.gz: 031fec3cd69850e0cdab203e2facc931d7fe75b1cb1c7753c8a514fa6d694410490c595d8f808868ba96fe6af87f86838c5f6e37aa43a797f6b742e1d7e26a03
data/ChangeLog CHANGED
@@ -1,3 +1,26 @@
1
+ 2021-12-02 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * Added SDL 2.0.18 features ( https://github.com/libsdl-org/SDL/releases/tag/release-2.0.18 )
4
+
5
+ 2021-08-12 vaiorabbit <http://twitter.com/vaiorabbit>
6
+
7
+ * Added SDL 2.0.14 features (SDL_misc).
8
+ * Added SDL 2.0.16 features (SDL_sensor).
9
+
10
+ 2021-02-21 vaiorabbit <http://twitter.com/vaiorabbit>
11
+
12
+ * Added defines from Audio, Mixer and TTF
13
+
14
+ 2020-12-27 vaiorabbit <http://twitter.com/vaiorabbit>
15
+
16
+ * Added SDL 2.0.14 features.
17
+ * third_party/sdl2_build_dll.sh: Added to build x64 DLL for Windows
18
+ * test/util.rb: Added
19
+
20
+ 2020-12-20 vaiorabbit <http://twitter.com/vaiorabbit>
21
+
22
+ * third_party/sdl2_build_dylib.sh: Added to build x86_64|arm64 Universal Binary
23
+
1
24
  2020-06-08 vaiorabbit <http://twitter.com/vaiorabbit>
2
25
 
3
26
  * lib/sdl2_syswm.rb: Added
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  sdl2-bindings : Yet another SDL2 wrapper for Ruby
2
- Copyright (c) 2015-2020 vaiorabbit <http://twitter.com/vaiorabbit>
2
+ Copyright (c) 2015-2021 vaiorabbit <http://twitter.com/vaiorabbit>
3
3
 
4
4
  This software is provided 'as-is', without any express or implied
5
5
  warranty. In no event will the authors be held liable for any damages
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [Notice] Experimental project.
6
6
 
7
7
  * Created : 2015-09-19
8
- * Last modified : 2020-06-08
8
+ * Last modified : 2021-12-02
9
9
 
10
10
  ## Features ##
11
11
 
@@ -30,13 +30,19 @@
30
30
  * sdl2_ttf : 2.0.13
31
31
  * [2019-08-31] SDL 2.0.10 (Installed via Homebrew)
32
32
  * [2020-03-22] SDL 2.0.12 (Installed via Homebrew)
33
+ * [2020-12-27] SDL 2.0.14 (Installed via Homebrew)
34
+ * macOS Big Sur (11.0.1), ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [arm64-darwin20]
35
+ * [2021-08-12] SDL 2.0.16 (Installed via Homebrew)
36
+ * macOS Big Sur (11.5), ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [arm64-darwin20]
37
+ * [2021-12-02] SDL 2.0.18 (Installed via Homebrew)
38
+ * macOS Big Sur (11.6), ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [arm64-darwin20]
33
39
 
34
40
  ## License ##
35
41
 
36
42
  The zlib/libpng License ( http://opensource.org/licenses/Zlib ).
37
43
 
38
44
  sdl2-bindings : Yet another SDL2 wrapper for Ruby
39
- Copyright (c) 2015-2020 vaiorabbit <http://twitter.com/vaiorabbit>
45
+ Copyright (c) 2015-2021 vaiorabbit <http://twitter.com/vaiorabbit>
40
46
 
41
47
  This software is provided 'as-is', without any express or implied
42
48
  warranty. In no event will the authors be held liable for any damages
data/lib/sdl2.rb CHANGED
@@ -20,6 +20,7 @@ require_relative 'sdl2_keyboard.rb'
20
20
  require_relative 'sdl2_keycode.rb'
21
21
  require_relative 'sdl2_log.rb'
22
22
  require_relative 'sdl2_messagebox.rb'
23
+ require_relative 'sdl2_misc.rb'
23
24
  require_relative 'sdl2_mouse.rb'
24
25
  require_relative 'sdl2_pixels.rb'
25
26
  require_relative 'sdl2_platform.rb'
@@ -28,6 +29,7 @@ require_relative 'sdl2_rect.rb'
28
29
  require_relative 'sdl2_render.rb'
29
30
  require_relative 'sdl2_rwops.rb'
30
31
  require_relative 'sdl2_scancode.rb'
32
+ require_relative 'sdl2_sensor.rb'
31
33
  require_relative 'sdl2_shape.rb'
32
34
  require_relative 'sdl2_stdinc.rb'
33
35
  require_relative 'sdl2_surface.rb'
@@ -105,6 +107,7 @@ module SDL2
105
107
  setup_keycode_symbols()
106
108
  setup_log_symbols()
107
109
  setup_messagebox_symbols()
110
+ setup_misc_symbols()
108
111
  setup_mouse_symbols()
109
112
  setup_pixels_symbols()
110
113
  setup_platform_symbols()
@@ -113,6 +116,7 @@ module SDL2
113
116
  setup_render_symbols()
114
117
  setup_rwops_symbols()
115
118
  setup_scancode_symbols()
119
+ setup_sensor_symbols()
116
120
  setup_shape_symbols()
117
121
  setup_surface_symbols()
118
122
  setup_syswm_symbols()
@@ -128,12 +132,10 @@ end
128
132
 
129
133
 
130
134
  if __FILE__ == $0
131
- # SDL2.load_lib('libSDL2.dylib')
132
- # p SDL2.SDL_Init(SDL2::SDL_INIT_EVERYTHING)
133
135
  SDL2.load_lib('libSDL2.dylib',
134
136
  gfx_libpath: '/usr/local/lib/libSDL2_gfx.dylib'
135
137
  )
136
- #SDL2.SDL_SetMainReady()
138
+
137
139
  success = SDL2.SDL_Init(SDL2::SDL_INIT_EVERYTHING)
138
140
  exit if success < 0
139
141
 
data/lib/sdl2_audio.rb CHANGED
@@ -14,10 +14,29 @@ module SDL2
14
14
  SDL_AUDIO_MASK_DATATYPE = (1 << 8)
15
15
  SDL_AUDIO_MASK_ENDIAN = (1 << 12)
16
16
  SDL_AUDIO_MASK_SIGNED = (1 << 15)
17
+ AUDIO_U8 = 0x0008
18
+ AUDIO_S8 = 0x8008
19
+ AUDIO_U16LSB = 0x0010
20
+ AUDIO_S16LSB = 0x8010
21
+ AUDIO_U16MSB = 0x1010
22
+ AUDIO_S16MSB = 0x9010
23
+ AUDIO_U16 = AUDIO_U16LSB
24
+ AUDIO_S16 = AUDIO_S16LSB
25
+ AUDIO_S32LSB = 0x8020
26
+ AUDIO_S32MSB = 0x9020
27
+ AUDIO_S32 = AUDIO_S32LSB
28
+ AUDIO_F32LSB = 0x8120
29
+ AUDIO_F32MSB = 0x9120
30
+ AUDIO_F32 = AUDIO_F32LSB
31
+ AUDIO_U16SYS = AUDIO_U16LSB
32
+ AUDIO_S16SYS = AUDIO_S16LSB
33
+ AUDIO_S32SYS = AUDIO_S32LSB
34
+ AUDIO_F32SYS = AUDIO_F32LSB
17
35
  SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001
18
36
  SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002
19
37
  SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004
20
38
  SDL_AUDIO_ALLOW_SAMPLES_CHANGE = 0x00000008
39
+ SDL_AUDIO_ALLOW_ANY_CHANGE = (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | SDL_AUDIO_ALLOW_FORMAT_CHANGE | SDL_AUDIO_ALLOW_CHANNELS_CHANGE | SDL_AUDIO_ALLOW_SAMPLES_CHANGE)
21
40
  SDL_AUDIOCVT_MAX_FILTERS = 9
22
41
  SDL_MIX_MAXVOLUME = 128
23
42
 
@@ -80,6 +99,7 @@ module SDL2
80
99
  :SDL_OpenAudio,
81
100
  :SDL_GetNumAudioDevices,
82
101
  :SDL_GetAudioDeviceName,
102
+ :SDL_GetAudioDeviceSpec,
83
103
  :SDL_OpenAudioDevice,
84
104
  :SDL_GetAudioStatus,
85
105
  :SDL_GetAudioDeviceStatus,
@@ -118,6 +138,7 @@ module SDL2
118
138
  :SDL_OpenAudio => [:pointer, :pointer],
119
139
  :SDL_GetNumAudioDevices => [:int],
120
140
  :SDL_GetAudioDeviceName => [:int, :int],
141
+ :SDL_GetAudioDeviceSpec => [:int, :int, :pointer],
121
142
  :SDL_OpenAudioDevice => [:pointer, :int, :pointer, :pointer, :int],
122
143
  :SDL_GetAudioStatus => [],
123
144
  :SDL_GetAudioDeviceStatus => [:uint],
@@ -156,6 +177,7 @@ module SDL2
156
177
  :SDL_OpenAudio => :int,
157
178
  :SDL_GetNumAudioDevices => :int,
158
179
  :SDL_GetAudioDeviceName => :pointer,
180
+ :SDL_GetAudioDeviceSpec => :int,
159
181
  :SDL_OpenAudioDevice => :uint,
160
182
  :SDL_GetAudioStatus => :int,
161
183
  :SDL_GetAudioDeviceStatus => :int,
data/lib/sdl2_cpuinfo.rb CHANGED
@@ -44,6 +44,7 @@ module SDL2
44
44
  :SDL_GetSystemRAM,
45
45
  :SDL_SIMDGetAlignment,
46
46
  :SDL_SIMDAlloc,
47
+ :SDL_SIMDRealloc,
47
48
  :SDL_SIMDFree,
48
49
  ]
49
50
  args = {
@@ -65,7 +66,8 @@ module SDL2
65
66
  :SDL_HasNEON => [],
66
67
  :SDL_GetSystemRAM => [],
67
68
  :SDL_SIMDGetAlignment => [],
68
- :SDL_SIMDAlloc => [:ulong],
69
+ :SDL_SIMDAlloc => [:int],
70
+ :SDL_SIMDRealloc => [:pointer, :int],
69
71
  :SDL_SIMDFree => [:pointer],
70
72
  }
71
73
  retvals = {
@@ -86,8 +88,9 @@ module SDL2
86
88
  :SDL_HasARMSIMD => :int,
87
89
  :SDL_HasNEON => :int,
88
90
  :SDL_GetSystemRAM => :int,
89
- :SDL_SIMDGetAlignment => :size_t,
91
+ :SDL_SIMDGetAlignment => :int,
90
92
  :SDL_SIMDAlloc => :pointer,
93
+ :SDL_SIMDRealloc => :pointer,
91
94
  :SDL_SIMDFree => :void,
92
95
  }
93
96
  symbols.each do |sym|
data/lib/sdl2_error.rb CHANGED
@@ -33,18 +33,21 @@ module SDL2
33
33
  symbols = [
34
34
  :SDL_SetError,
35
35
  :SDL_GetError,
36
+ :SDL_GetErrorMsg,
36
37
  :SDL_ClearError,
37
38
  :SDL_Error,
38
39
  ]
39
40
  args = {
40
41
  :SDL_SetError => [:pointer],
41
42
  :SDL_GetError => [],
43
+ :SDL_GetErrorMsg => [:pointer, :int],
42
44
  :SDL_ClearError => [],
43
45
  :SDL_Error => [:int],
44
46
  }
45
47
  retvals = {
46
48
  :SDL_SetError => :int,
47
49
  :SDL_GetError => :pointer,
50
+ :SDL_GetErrorMsg => :pointer,
48
51
  :SDL_ClearError => :void,
49
52
  :SDL_Error => :int,
50
53
  }
data/lib/sdl2_events.rb CHANGED
@@ -14,7 +14,7 @@ module SDL2
14
14
  SDL_RELEASED = 0
15
15
  SDL_PRESSED = 1
16
16
  SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32
17
- SDL_TEXTINPUTEVENT_TEXT_SIZE = 2
17
+ SDL_TEXTINPUTEVENT_TEXT_SIZE = 32
18
18
  SDL_QUERY = -1
19
19
  SDL_IGNORE = 0
20
20
  SDL_DISABLE = 0
@@ -30,6 +30,7 @@ module SDL2
30
30
  SDL_APP_DIDENTERBACKGROUND = 260
31
31
  SDL_APP_WILLENTERFOREGROUND = 261
32
32
  SDL_APP_DIDENTERFOREGROUND = 262
33
+ SDL_LOCALECHANGED = 263
33
34
  SDL_DISPLAYEVENT = 336
34
35
  SDL_WINDOWEVENT = 512
35
36
  SDL_SYSWMEVENT = 513
@@ -55,6 +56,10 @@ module SDL2
55
56
  SDL_CONTROLLERDEVICEADDED = 1619
56
57
  SDL_CONTROLLERDEVICEREMOVED = 1620
57
58
  SDL_CONTROLLERDEVICEREMAPPED = 1621
59
+ SDL_CONTROLLERTOUCHPADDOWN = 1622
60
+ SDL_CONTROLLERTOUCHPADMOTION = 1623
61
+ SDL_CONTROLLERTOUCHPADUP = 1624
62
+ SDL_CONTROLLERSENSORUPDATE = 1625
58
63
  SDL_FINGERDOWN = 1792
59
64
  SDL_FINGERUP = 1793
60
65
  SDL_FINGERMOTION = 1794
@@ -71,6 +76,7 @@ module SDL2
71
76
  SDL_SENSORUPDATE = 4608
72
77
  SDL_RENDER_TARGETS_RESET = 8192
73
78
  SDL_RENDER_DEVICE_RESET = 8193
79
+ SDL_POLLSENTINEL = 32512
74
80
  SDL_USEREVENT = 32768
75
81
  SDL_LASTEVENT = 65535
76
82
  SDL_ADDEVENT = 0
@@ -191,6 +197,8 @@ module SDL2
191
197
  :x, :int,
192
198
  :y, :int,
193
199
  :direction, :uint,
200
+ :preciseX, :float,
201
+ :preciseY, :float,
194
202
  )
195
203
  end
196
204
 
@@ -288,6 +296,29 @@ module SDL2
288
296
  )
289
297
  end
290
298
 
299
+ class SDL_ControllerTouchpadEvent < FFI::Struct
300
+ layout(
301
+ :type, :uint,
302
+ :timestamp, :uint,
303
+ :which, :int,
304
+ :touchpad, :int,
305
+ :finger, :int,
306
+ :x, :float,
307
+ :y, :float,
308
+ :pressure, :float,
309
+ )
310
+ end
311
+
312
+ class SDL_ControllerSensorEvent < FFI::Struct
313
+ layout(
314
+ :type, :uint,
315
+ :timestamp, :uint,
316
+ :which, :int,
317
+ :sensor, :int,
318
+ :data, [:float, 3],
319
+ )
320
+ end
321
+
291
322
  class SDL_AudioDeviceEvent < FFI::Struct
292
323
  layout(
293
324
  :type, :uint,
@@ -413,6 +444,8 @@ module SDL2
413
444
  :caxis, SDL_ControllerAxisEvent,
414
445
  :cbutton, SDL_ControllerButtonEvent,
415
446
  :cdevice, SDL_ControllerDeviceEvent,
447
+ :ctouchpad, SDL_ControllerTouchpadEvent,
448
+ :csensor, SDL_ControllerSensorEvent,
416
449
  :adevice, SDL_AudioDeviceEvent,
417
450
  :sensor, SDL_SensorEvent,
418
451
  :quit, SDL_QuitEvent,
@@ -20,6 +20,10 @@ module SDL2
20
20
  SDL_CONTROLLER_TYPE_PS3 = 3
21
21
  SDL_CONTROLLER_TYPE_PS4 = 4
22
22
  SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO = 5
23
+ SDL_CONTROLLER_TYPE_VIRTUAL = 6
24
+ SDL_CONTROLLER_TYPE_PS5 = 7
25
+ SDL_CONTROLLER_TYPE_AMAZON_LUNA = 8
26
+ SDL_CONTROLLER_TYPE_GOOGLE_STADIA = 9
23
27
  SDL_CONTROLLER_BINDTYPE_NONE = 0
24
28
  SDL_CONTROLLER_BINDTYPE_BUTTON = 1
25
29
  SDL_CONTROLLER_BINDTYPE_AXIS = 2
@@ -48,7 +52,13 @@ module SDL2
48
52
  SDL_CONTROLLER_BUTTON_DPAD_DOWN = 12
49
53
  SDL_CONTROLLER_BUTTON_DPAD_LEFT = 13
50
54
  SDL_CONTROLLER_BUTTON_DPAD_RIGHT = 14
51
- SDL_CONTROLLER_BUTTON_MAX = 15
55
+ SDL_CONTROLLER_BUTTON_MISC1 = 15
56
+ SDL_CONTROLLER_BUTTON_PADDLE1 = 16
57
+ SDL_CONTROLLER_BUTTON_PADDLE2 = 17
58
+ SDL_CONTROLLER_BUTTON_PADDLE3 = 18
59
+ SDL_CONTROLLER_BUTTON_PADDLE4 = 19
60
+ SDL_CONTROLLER_BUTTON_TOUCHPAD = 20
61
+ SDL_CONTROLLER_BUTTON_MAX = 21
52
62
 
53
63
  # Typedef
54
64
 
@@ -107,6 +117,7 @@ module SDL2
107
117
  :SDL_GameControllerGetVendor,
108
118
  :SDL_GameControllerGetProduct,
109
119
  :SDL_GameControllerGetProductVersion,
120
+ :SDL_GameControllerGetSerial,
110
121
  :SDL_GameControllerGetAttached,
111
122
  :SDL_GameControllerGetJoystick,
112
123
  :SDL_GameControllerEventState,
@@ -114,20 +125,38 @@ module SDL2
114
125
  :SDL_GameControllerGetAxisFromString,
115
126
  :SDL_GameControllerGetStringForAxis,
116
127
  :SDL_GameControllerGetBindForAxis,
128
+ :SDL_GameControllerHasAxis,
117
129
  :SDL_GameControllerGetAxis,
118
130
  :SDL_GameControllerGetButtonFromString,
119
131
  :SDL_GameControllerGetStringForButton,
120
132
  :SDL_GameControllerGetBindForButton,
133
+ :SDL_GameControllerHasButton,
121
134
  :SDL_GameControllerGetButton,
135
+ :SDL_GameControllerGetNumTouchpads,
136
+ :SDL_GameControllerGetNumTouchpadFingers,
137
+ :SDL_GameControllerGetTouchpadFinger,
138
+ :SDL_GameControllerHasSensor,
139
+ :SDL_GameControllerSetSensorEnabled,
140
+ :SDL_GameControllerIsSensorEnabled,
141
+ :SDL_GameControllerGetSensorDataRate,
142
+ :SDL_GameControllerGetSensorData,
122
143
  :SDL_GameControllerRumble,
144
+ :SDL_GameControllerRumbleTriggers,
145
+ :SDL_GameControllerHasLED,
146
+ :SDL_GameControllerHasRumble,
147
+ :SDL_GameControllerHasRumbleTriggers,
148
+ :SDL_GameControllerSetLED,
149
+ :SDL_GameControllerSendEffect,
123
150
  :SDL_GameControllerClose,
151
+ :SDL_GameControllerGetAppleSFSymbolsNameForButton,
152
+ :SDL_GameControllerGetAppleSFSymbolsNameForAxis,
124
153
  ]
125
154
  args = {
126
155
  :SDL_GameControllerAddMappingsFromRW => [:pointer, :int],
127
156
  :SDL_GameControllerAddMapping => [:pointer],
128
157
  :SDL_GameControllerNumMappings => [],
129
158
  :SDL_GameControllerMappingForIndex => [:int],
130
- :SDL_GameControllerMappingForGUID => [SDL_JoystickGUID],
159
+ :SDL_GameControllerMappingForGUID => [SDL_JoystickGUID.by_value],
131
160
  :SDL_GameControllerMapping => [:pointer],
132
161
  :SDL_IsGameController => [:int],
133
162
  :SDL_GameControllerNameForIndex => [:int],
@@ -143,6 +172,7 @@ module SDL2
143
172
  :SDL_GameControllerGetVendor => [:pointer],
144
173
  :SDL_GameControllerGetProduct => [:pointer],
145
174
  :SDL_GameControllerGetProductVersion => [:pointer],
175
+ :SDL_GameControllerGetSerial => [:pointer],
146
176
  :SDL_GameControllerGetAttached => [:pointer],
147
177
  :SDL_GameControllerGetJoystick => [:pointer],
148
178
  :SDL_GameControllerEventState => [:int],
@@ -150,13 +180,31 @@ module SDL2
150
180
  :SDL_GameControllerGetAxisFromString => [:pointer],
151
181
  :SDL_GameControllerGetStringForAxis => [:int],
152
182
  :SDL_GameControllerGetBindForAxis => [:pointer, :int],
183
+ :SDL_GameControllerHasAxis => [:pointer, :int],
153
184
  :SDL_GameControllerGetAxis => [:pointer, :int],
154
185
  :SDL_GameControllerGetButtonFromString => [:pointer],
155
186
  :SDL_GameControllerGetStringForButton => [:int],
156
187
  :SDL_GameControllerGetBindForButton => [:pointer, :int],
188
+ :SDL_GameControllerHasButton => [:pointer, :int],
157
189
  :SDL_GameControllerGetButton => [:pointer, :int],
190
+ :SDL_GameControllerGetNumTouchpads => [:pointer],
191
+ :SDL_GameControllerGetNumTouchpadFingers => [:pointer, :int],
192
+ :SDL_GameControllerGetTouchpadFinger => [:pointer, :int, :int, :pointer, :pointer, :pointer, :pointer],
193
+ :SDL_GameControllerHasSensor => [:pointer, :int],
194
+ :SDL_GameControllerSetSensorEnabled => [:pointer, :int, :int],
195
+ :SDL_GameControllerIsSensorEnabled => [:pointer, :int],
196
+ :SDL_GameControllerGetSensorDataRate => [:pointer, :int],
197
+ :SDL_GameControllerGetSensorData => [:pointer, :int, :pointer, :int],
158
198
  :SDL_GameControllerRumble => [:pointer, :ushort, :ushort, :uint],
199
+ :SDL_GameControllerRumbleTriggers => [:pointer, :ushort, :ushort, :uint],
200
+ :SDL_GameControllerHasLED => [:pointer],
201
+ :SDL_GameControllerHasRumble => [:pointer],
202
+ :SDL_GameControllerHasRumbleTriggers => [:pointer],
203
+ :SDL_GameControllerSetLED => [:pointer, :uchar, :uchar, :uchar],
204
+ :SDL_GameControllerSendEffect => [:pointer, :pointer, :int],
159
205
  :SDL_GameControllerClose => [:pointer],
206
+ :SDL_GameControllerGetAppleSFSymbolsNameForButton => [:pointer, :int],
207
+ :SDL_GameControllerGetAppleSFSymbolsNameForAxis => [:pointer, :int],
160
208
  }
161
209
  retvals = {
162
210
  :SDL_GameControllerAddMappingsFromRW => :int,
@@ -179,6 +227,7 @@ module SDL2
179
227
  :SDL_GameControllerGetVendor => :ushort,
180
228
  :SDL_GameControllerGetProduct => :ushort,
181
229
  :SDL_GameControllerGetProductVersion => :ushort,
230
+ :SDL_GameControllerGetSerial => :pointer,
182
231
  :SDL_GameControllerGetAttached => :int,
183
232
  :SDL_GameControllerGetJoystick => :pointer,
184
233
  :SDL_GameControllerEventState => :int,
@@ -186,13 +235,31 @@ module SDL2
186
235
  :SDL_GameControllerGetAxisFromString => :int,
187
236
  :SDL_GameControllerGetStringForAxis => :pointer,
188
237
  :SDL_GameControllerGetBindForAxis => SDL_GameControllerButtonBind,
238
+ :SDL_GameControllerHasAxis => :int,
189
239
  :SDL_GameControllerGetAxis => :short,
190
240
  :SDL_GameControllerGetButtonFromString => :int,
191
241
  :SDL_GameControllerGetStringForButton => :pointer,
192
242
  :SDL_GameControllerGetBindForButton => SDL_GameControllerButtonBind,
243
+ :SDL_GameControllerHasButton => :int,
193
244
  :SDL_GameControllerGetButton => :uchar,
245
+ :SDL_GameControllerGetNumTouchpads => :int,
246
+ :SDL_GameControllerGetNumTouchpadFingers => :int,
247
+ :SDL_GameControllerGetTouchpadFinger => :int,
248
+ :SDL_GameControllerHasSensor => :int,
249
+ :SDL_GameControllerSetSensorEnabled => :int,
250
+ :SDL_GameControllerIsSensorEnabled => :int,
251
+ :SDL_GameControllerGetSensorDataRate => :float,
252
+ :SDL_GameControllerGetSensorData => :int,
194
253
  :SDL_GameControllerRumble => :int,
254
+ :SDL_GameControllerRumbleTriggers => :int,
255
+ :SDL_GameControllerHasLED => :int,
256
+ :SDL_GameControllerHasRumble => :int,
257
+ :SDL_GameControllerHasRumbleTriggers => :int,
258
+ :SDL_GameControllerSetLED => :int,
259
+ :SDL_GameControllerSendEffect => :int,
195
260
  :SDL_GameControllerClose => :void,
261
+ :SDL_GameControllerGetAppleSFSymbolsNameForButton => :pointer,
262
+ :SDL_GameControllerGetAppleSFSymbolsNameForAxis => :pointer,
196
263
  }
197
264
  symbols.each do |sym|
198
265
  begin
data/lib/sdl2_haptic.rb CHANGED
@@ -29,6 +29,7 @@ module SDL2
29
29
  SDL_HAPTIC_POLAR = 0
30
30
  SDL_HAPTIC_CARTESIAN = 1
31
31
  SDL_HAPTIC_SPHERICAL = 2
32
+ SDL_HAPTIC_STEERING_AXIS = 3
32
33
  SDL_HAPTIC_INFINITY = 4294967295
33
34
 
34
35
  # Enum
@@ -0,0 +1,118 @@
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 SDL2
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+
20
+ # Struct
21
+
22
+ class SDL_hid_device_info < FFI::Struct
23
+ layout(
24
+ :path, :pointer,
25
+ :vendor_id, :ushort,
26
+ :product_id, :ushort,
27
+ :serial_number, :pointer,
28
+ :release_number, :ushort,
29
+ :manufacturer_string, :pointer,
30
+ :product_string, :pointer,
31
+ :usage_page, :ushort,
32
+ :usage, :ushort,
33
+ :interface_number, :int,
34
+ :interface_class, :int,
35
+ :interface_subclass, :int,
36
+ :interface_protocol, :int,
37
+ :next, :pointer,
38
+ )
39
+ end
40
+
41
+
42
+ # Function
43
+
44
+ def self.setup_hidapi_symbols()
45
+ symbols = [
46
+ :SDL_hid_init,
47
+ :SDL_hid_exit,
48
+ :SDL_hid_device_change_count,
49
+ :SDL_hid_enumerate,
50
+ :SDL_hid_free_enumeration,
51
+ :SDL_hid_open,
52
+ :SDL_hid_open_path,
53
+ :SDL_hid_write,
54
+ :SDL_hid_read_timeout,
55
+ :SDL_hid_read,
56
+ :SDL_hid_set_nonblocking,
57
+ :SDL_hid_send_feature_report,
58
+ :SDL_hid_get_feature_report,
59
+ :SDL_hid_close,
60
+ :SDL_hid_get_manufacturer_string,
61
+ :SDL_hid_get_product_string,
62
+ :SDL_hid_get_serial_number_string,
63
+ :SDL_hid_get_indexed_string,
64
+ :SDL_hid_ble_scan,
65
+ ]
66
+ args = {
67
+ :SDL_hid_init => [],
68
+ :SDL_hid_exit => [],
69
+ :SDL_hid_device_change_count => [],
70
+ :SDL_hid_enumerate => [:ushort, :ushort],
71
+ :SDL_hid_free_enumeration => [:pointer],
72
+ :SDL_hid_open => [:ushort, :ushort, :pointer],
73
+ :SDL_hid_open_path => [:pointer, :int],
74
+ :SDL_hid_write => [:pointer, :pointer, :int],
75
+ :SDL_hid_read_timeout => [:pointer, :pointer, :int, :int],
76
+ :SDL_hid_read => [:pointer, :pointer, :int],
77
+ :SDL_hid_set_nonblocking => [:pointer, :int],
78
+ :SDL_hid_send_feature_report => [:pointer, :pointer, :int],
79
+ :SDL_hid_get_feature_report => [:pointer, :pointer, :int],
80
+ :SDL_hid_close => [:pointer],
81
+ :SDL_hid_get_manufacturer_string => [:pointer, :pointer, :int],
82
+ :SDL_hid_get_product_string => [:pointer, :pointer, :int],
83
+ :SDL_hid_get_serial_number_string => [:pointer, :pointer, :int],
84
+ :SDL_hid_get_indexed_string => [:pointer, :int, :pointer, :int],
85
+ :SDL_hid_ble_scan => [:int],
86
+ }
87
+ retvals = {
88
+ :SDL_hid_init => :int,
89
+ :SDL_hid_exit => :int,
90
+ :SDL_hid_device_change_count => :uint,
91
+ :SDL_hid_enumerate => :pointer,
92
+ :SDL_hid_free_enumeration => :void,
93
+ :SDL_hid_open => :pointer,
94
+ :SDL_hid_open_path => :pointer,
95
+ :SDL_hid_write => :int,
96
+ :SDL_hid_read_timeout => :int,
97
+ :SDL_hid_read => :int,
98
+ :SDL_hid_set_nonblocking => :int,
99
+ :SDL_hid_send_feature_report => :int,
100
+ :SDL_hid_get_feature_report => :int,
101
+ :SDL_hid_close => :void,
102
+ :SDL_hid_get_manufacturer_string => :int,
103
+ :SDL_hid_get_product_string => :int,
104
+ :SDL_hid_get_serial_number_string => :int,
105
+ :SDL_hid_get_indexed_string => :int,
106
+ :SDL_hid_ble_scan => :void,
107
+ }
108
+ symbols.each do |sym|
109
+ begin
110
+ attach_function sym, args[sym], retvals[sym]
111
+ rescue FFI::NotFoundError => error
112
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
113
+ end
114
+ end
115
+ end
116
+
117
+ end
118
+