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 +4 -4
- data/ChangeLog +23 -0
- data/LICENSE.txt +1 -1
- data/README.md +8 -2
- data/lib/sdl2.rb +5 -3
- data/lib/sdl2_audio.rb +22 -0
- data/lib/sdl2_cpuinfo.rb +5 -2
- data/lib/sdl2_error.rb +3 -0
- data/lib/sdl2_events.rb +34 -1
- data/lib/sdl2_gamecontroller.rb +69 -2
- data/lib/sdl2_haptic.rb +1 -0
- data/lib/sdl2_hidapi.rb +118 -0
- data/lib/sdl2_hints.rb +108 -70
- data/lib/sdl2_joystick.rb +41 -1
- data/lib/sdl2_keycode.rb +5 -0
- data/lib/sdl2_misc.rb +45 -0
- data/lib/sdl2_mixer.rb +10 -0
- data/lib/sdl2_pixels.rb +6 -0
- data/lib/sdl2_render.rb +32 -0
- data/lib/sdl2_rwops.rb +11 -11
- data/lib/sdl2_sensor.rb +97 -0
- data/lib/sdl2_stdinc.rb +103 -34
- data/lib/sdl2_surface.rb +10 -1
- data/lib/sdl2_syswm.rb +2 -0
- data/lib/sdl2_timer.rb +3 -0
- data/lib/sdl2_touch.rb +2 -0
- data/lib/sdl2_ttf.rb +12 -0
- data/lib/sdl2_version.rb +1 -1
- data/lib/sdl2_video.rb +40 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35079ab7c6bbfd35b26fdaeb404263532c8076897bbdaae87252f4c7eb752ba6
|
4
|
+
data.tar.gz: ebb622ab9b6693acc19c70cd110365a1f3e546f7cdb60a1f63033324b86b769b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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-
|
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 :
|
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-
|
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
|
-
|
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 => [:
|
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 => :
|
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 =
|
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,
|
data/lib/sdl2_gamecontroller.rb
CHANGED
@@ -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
|
-
|
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
data/lib/sdl2_hidapi.rb
ADDED
@@ -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
|
+
|