sdl2_ffi 0.0.3 → 0.0.4

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/README.md +31 -17
  4. data/bin/yard +16 -0
  5. data/bin/yardoc +16 -0
  6. data/bin/yri +16 -0
  7. data/graph +566 -0
  8. data/lib/enumerable_constants.rb +82 -0
  9. data/lib/sdl2.rb +74 -117
  10. data/lib/sdl2/audio.rb +10 -7
  11. data/lib/sdl2/clipboard.rb +3 -3
  12. data/lib/sdl2/events.rb +228 -168
  13. data/lib/sdl2/gem_version.rb +1 -1
  14. data/lib/sdl2/haptic.rb +366 -55
  15. data/lib/sdl2/hints.rb +36 -24
  16. data/lib/sdl2/image.rb +4 -10
  17. data/lib/sdl2/init.rb +21 -31
  18. data/lib/sdl2/joystick.rb +15 -12
  19. data/lib/sdl2/keycode.rb +261 -261
  20. data/lib/sdl2/library.rb +96 -0
  21. data/lib/sdl2/mouse.rb +22 -17
  22. data/lib/sdl2/pixel_format.rb +2 -1
  23. data/lib/sdl2/pixels.rb +114 -161
  24. data/lib/sdl2/rect.rb +14 -10
  25. data/lib/sdl2/render.rb +29 -13
  26. data/lib/sdl2/renderer.rb +9 -2
  27. data/lib/sdl2/rwops.rb +11 -7
  28. data/lib/sdl2/scancode.rb +246 -245
  29. data/lib/sdl2/stdinc.rb +213 -0
  30. data/lib/sdl2/surface.rb +23 -7
  31. data/lib/sdl2/ttf.rb +23 -19
  32. data/lib/sdl2/version.rb +8 -2
  33. data/lib/sdl2/video.rb +64 -73
  34. data/lib/sdl2/window.rb +143 -36
  35. data/lib/sdl2_ffi.rb +2 -1
  36. data/sdl2_ffi.gemspec +3 -1
  37. data/test/fixtures/an_example.png +0 -0
  38. data/test/fixtures/background.bmp +0 -0
  39. data/test/fixtures/hello.bmp +0 -0
  40. data/test/functional/examples/test_lazy_foo_examples.rb +123 -0
  41. data/test/functional/examples/test_readme_examples.rb +15 -0
  42. data/test/unit/sdl2/test_haptic.rb +17 -0
  43. data/test/unit/sdl2/test_hints.rb +9 -9
  44. data/test/unit/sdl2/test_init.rb +8 -8
  45. data/test/unit/sdl2/test_log.rb +1 -1
  46. data/test/unit/sdl2/test_pixel_format.rb +3 -1
  47. data/test/unit/sdl2/test_video.rb +3 -3
  48. data/test/unit/sdl2/test_window.rb +4 -4
  49. data/test/unit/test_scratch.rb +2 -2
  50. metadata +37 -16
@@ -5,23 +5,27 @@ require 'sdl2/point'
5
5
 
6
6
  module SDL2
7
7
 
8
- class Rect < FFI::Struct
8
+ class Rect < Struct
9
9
  layout :x, :int, :y, :int, :w, :int, :h, :int
10
10
 
11
+ member_readers *members
12
+ member_writers *members
13
+
11
14
  def empty
12
- return ((!self.null?) || (self[:w] <= 0) || (self[:h] <= 0)) ? :true : :false
15
+ return ((!self.null?) || (self[:w] <= 0) || (self[:h] <= 0))
13
16
  end
14
17
 
15
- def empty?
16
- empty == :true
17
- end
18
+ alias_method :empty?, :empty
18
19
 
19
- def equals(other)
20
- if self.null or other.null?
21
- return (self.null? and other.null?) ? :true : :false
20
+ def equals(other)
21
+ return false if other.nil?
22
+ return false unless other.kind_of? Rect
23
+
24
+ if self.null? or other.null? # Either null?
25
+ return (self.null? and other.null?) # Equal if both are null!
22
26
  else
23
- [:x, :y, :w, :h].each do |field|
24
- return :false unless self[field] == other[field]
27
+ members.each do |field| # Compare our fields.
28
+ return false unless self[field] == other[field]
25
29
  end
26
30
  end
27
31
  return true # if we made it this far
@@ -5,21 +5,37 @@ require 'sdl2/texture'
5
5
  require 'sdl2/point'
6
6
 
7
7
  module SDL2
8
- # lines 64~73
9
- enum :renderer_flags, [
10
- :software, Renderer::SOFTWARE,
11
- :accelerated, Renderer::ACCELERATED,
12
- :present_vsync, Renderer::PRESENTVSYNC,
13
- :target_texture, Renderer::TARGETTEXTURE
14
- ]
15
- # lines 91~96
16
- enum :texture_access, [:static, :streaming, :target]
17
- # lines 101~106
18
- enum :texture_modulate, [:none, 0x00000000, :color, 0x00000001, :alpha, 0x00000002]
19
- # lines 111~116
20
- enum :renderer_flip, [:none, 0x00000000, :horizontal, 0x00000001, :vertical, 0x00000002]
8
+ enum :renderer_flags, RENDERER.flatten_consts
9
+
10
+ # The access pattern allowed for a texture
11
+ module TEXTUREACCESS
12
+ include EnumerableConstants
13
+ STATIC = next_const_value
14
+ STREAMING = next_const_value
15
+ TARGET = next_const_value
16
+ end
17
+ enum :texture_access, TEXTUREACCESS.flatten_consts
18
+
19
+ # The texture channel modulation used in #render_copy
20
+ module TEXTUREMODULATE
21
+ include EnumerableConstants
22
+ NONE = 0x00000000
23
+ COLOR = 0x00000001
24
+ ALPHA = 0x00000002
25
+ end
26
+ enum :texture_modulate, TEXTUREMODULATE.flatten_consts
27
+
28
+ # Constants for #render_copy_ex
29
+ module FLIP
30
+ include EnumerableConstants
31
+ NONE = 0x00000000
32
+ HORIZONTAL = 0x00000001
33
+ VERTICAL = 0x00000002
34
+ end
35
+ enum :renderer_flip, FLIP.flatten_consts
21
36
 
22
37
  typedef :int, :render_driver_index
38
+
23
39
  api :SDL_GetNumRenderDrivers, [], :int
24
40
  api :SDL_GetRenderDriverInfo, [:render_driver_index, RendererInfo.by_ref], :int
25
41
  api :SDL_CreateWindowAndRenderer, [:int, :int, :window_flags, Window.by_ref, Renderer.by_ref], :int
@@ -2,12 +2,19 @@ require 'sdl2'
2
2
  require 'sdl2/renderer_info'
3
3
  module SDL2
4
4
 
5
- class Renderer < Struct
6
- layout :blank, :uint8 # Ignore Structure?
5
+ module RENDERER
6
+ include EnumerableConstants
7
+
7
8
  SOFTWARE = 0x00000001
8
9
  ACCELERATED = 0x00000002
9
10
  PRESENTVSYNC = 0x00000004
10
11
  TARGETTEXTURE = 0x00000008
12
+ end
13
+
14
+ class Renderer < Struct
15
+ include RENDERER
16
+
17
+ layout :blank, :uint8 # Ignore Structure?
11
18
 
12
19
  def self.create(window, driver_idx, flags)
13
20
  create_render(window, driver_idx, flags)
@@ -10,7 +10,7 @@ module SDL2
10
10
  callback :rwops_write, [RWops.by_ref, :pointer, :size_t, :size_t], :size_t
11
11
  callback :rwops_close, [RWops.by_ref], :int
12
12
 
13
- class RWops
13
+ class RWops < Struct
14
14
  class AndroidIO < Struct
15
15
  layout :fileNameRef, :pointer,
16
16
  :inputSteramRef, :pointer,
@@ -74,7 +74,11 @@ module SDL2
74
74
  # CONSTANTS
75
75
  SEEK_SET = 0
76
76
  SEEK_CUR = 1
77
- SEEK_END = 2
77
+ SEEK_END = 2
78
+
79
+ def self.from_file(file_name, mode)
80
+ SDL2.rw_from_file!(file_name, mode)
81
+ end
78
82
 
79
83
  # Read/Write Macros re-implemented: Lines #184~189
80
84
  def size
@@ -103,11 +107,11 @@ module SDL2
103
107
 
104
108
  end
105
109
 
106
- api :SDL_RWFromFile, [:string, :string], RWops.auto_ptr
107
- api :SDL_RWFromFP, [:pointer, :bool], RWops.auto_ptr
108
- api :SDL_RWFromMem, [:pointer, :count], RWops.auto_ptr
109
- api :SDL_RWFromConstMem, [:pointer, :count], RWops.auto_ptr
110
- api :SDL_AllocRW, [], RWops.auto_ptr
110
+ api :SDL_RWFromFile, [:string, :string], RWops.auto_ptr, {error: true, filter: TRUE_WHEN_NOT_NULL}
111
+ api :SDL_RWFromFP, [:pointer, :bool], RWops.auto_ptr, {error: true, filter: TRUE_WHEN_NOT_NULL}
112
+ api :SDL_RWFromMem, [:pointer, :count], RWops.auto_ptr, {error: true, filter: TRUE_WHEN_NOT_NULL}
113
+ api :SDL_RWFromConstMem, [:pointer, :count], RWops.auto_ptr, {error: true, filter: TRUE_WHEN_NOT_NULL}
114
+ api :SDL_AllocRW, [], RWops.auto_ptr, {error: true, filter: TRUE_WHEN_NOT_NULL}
111
115
  api :SDL_FreeRW, [RWops.by_ref], :void
112
116
  api :SDL_ReadU8, [RWops.by_ref], :uint8
113
117
  api :SDL_ReadLE16, [RWops.by_ref], :uint16
@@ -1,275 +1,276 @@
1
1
  require 'sdl2'
2
- require 'yinum'
2
+
3
3
 
4
4
  module SDL2
5
5
  NUM_SCANCODES = 512
6
+
7
+ module SCANCODE
8
+ include EnumerableConstants
9
+ A = 4
10
+ B = 5
11
+ C = 6
12
+ D = 7
13
+ E = 8
14
+ F = 9
15
+ G = 10
16
+ H = 11
17
+ I = 12
18
+ J = 13
19
+ K = 14
20
+ L = 15
21
+ M = 16
22
+ N = 17
23
+ O = 18
24
+ P = 19
25
+ Q = 20
26
+ R = 21
27
+ S = 22
28
+ T = 23
29
+ U = 24
30
+ V = 25
31
+ W = 26
32
+ X = 27
33
+ Y = 28
34
+ Z = 29
6
35
 
7
- Scancode = Enum.new(:SCANCODE, {
8
- :A => 4,
9
- :B => 5,
10
- :C => 6,
11
- :D => 7,
12
- :E => 8,
13
- :F => 9,
14
- :G => 10,
15
- :H => 11,
16
- :I => 12,
17
- :J => 13,
18
- :K => 14,
19
- :L => 15,
20
- :M => 16,
21
- :N => 17,
22
- :O => 18,
23
- :P => 19,
24
- :Q => 20,
25
- :R => 21,
26
- :S => 22,
27
- :T => 23,
28
- :U => 24,
29
- :V => 25,
30
- :W => 26,
31
- :X => 27,
32
- :Y => 28,
33
- :Z => 29,
34
-
35
- :'1' => 30,
36
- :'2' => 31,
37
- :'3' => 32,
38
- :'4' => 33,
39
- :'5' => 34,
40
- :'6' => 35,
41
- :'7' => 36,
42
- :'8' => 37,
43
- :'9' => 38,
44
- :'0' => 39,
36
+ N1 = 30
37
+ N2 = 31
38
+ N3 = 32
39
+ N4 = 33
40
+ N5 = 34
41
+ N6 = 35
42
+ N7 = 36
43
+ N8 = 37
44
+ N9 = 38
45
+ N0 = 39
45
46
 
46
- :RETURN => 40,
47
- :ESCAPE => 41,
48
- :BACKSPACE => 42,
49
- :TAB => 43,
50
- :SPACE => 44,
47
+ RETURN = 40
48
+ ESCAPE = 41
49
+ BACKSPACE = 42
50
+ TAB = 43
51
+ SPACE = 44
51
52
 
52
- :MINUS => 45,
53
- :EQUALS => 46,
54
- :LEFTBRACKET => 47,
55
- :RIGHTBRACKET => 48,
56
- :BACKSLASH => 49,
57
- :NONUSHASH => 50,
58
- :SEMICOLON => 51,
59
- :APOSTROPHE => 52,
60
- :GRAVE => 53,
61
- :COMMA => 54,
62
- :PERIOD => 55,
63
- :SLASH => 56,
53
+ MINUS = 45
54
+ EQUALS = 46
55
+ LEFTBRACKET = 47
56
+ RIGHTBRACKET = 48
57
+ BACKSLASH = 49
58
+ NONUSHASH = 50
59
+ SEMICOLON = 51
60
+ APOSTROPHE = 52
61
+ GRAVE = 53
62
+ COMMA = 54
63
+ PERIOD = 55
64
+ SLASH = 56
64
65
 
65
- :CAPSLOCK => 57,
66
+ CAPSLOCK = 57
66
67
 
67
- :F1 => 58,
68
- :F2 => 59,
69
- :F3 => 60,
70
- :F4 => 61,
71
- :F5 => 62,
72
- :F6 => 63,
73
- :F7 => 64,
74
- :F8 => 65,
75
- :F9 => 66,
76
- :F10 => 67,
77
- :F11 => 68,
78
- :F12 => 69,
68
+ F1 = 58
69
+ F2 = 59
70
+ F3 = 60
71
+ F4 = 61
72
+ F5 = 62
73
+ F6 = 63
74
+ F7 = 64
75
+ F8 = 65
76
+ F9 = 66
77
+ F10 = 67
78
+ F11 = 68
79
+ F12 = 69
79
80
 
80
- :PRINTSCREEN => 70,
81
- :SCROLLLOCK => 71,
82
- :PAUSE => 72,
83
- :INSERT => 73,
81
+ PRINTSCREEN = 70
82
+ SCROLLLOCK = 71
83
+ PAUSE = 72
84
+ INSERT = 73
84
85
 
85
- :HOME => 74,
86
- :PAGEUP => 75,
87
- :DELETE => 76,
88
- :END => 77,
89
- :PAGEDOWN => 78,
90
- :RIGHT => 79,
91
- :LEFT => 80,
92
- :DOWN => 81,
93
- :UP => 82,
86
+ HOME = 74
87
+ PAGEUP = 75
88
+ DELETE = 76
89
+ END_ = 77
90
+ PAGEDOWN = 78
91
+ RIGHT = 79
92
+ LEFT = 80
93
+ DOWN = 81
94
+ UP = 82
94
95
 
95
- :NUMLOCKCLEAR => 83,
96
+ NUMLOCKCLEAR = 83
96
97
 
97
- :KP_DIVIDE => 84,
98
- :KP_MULTIPLY => 85,
99
- :KP_MINUS => 86,
100
- :KP_PLUS => 87,
101
- :KP_ENTER => 88,
102
- :KP_1 => 89,
103
- :KP_2 => 90,
104
- :KP_3 => 91,
105
- :KP_4 => 92,
106
- :KP_5 => 93,
107
- :KP_6 => 94,
108
- :KP_7 => 95,
109
- :KP_8 => 96,
110
- :KP_9 => 97,
111
- :KP_0 => 98,
112
- :KP_PERIOD => 99,
98
+ KP_DIVIDE = 84
99
+ KP_MULTIPLY = 85
100
+ KP_MINUS = 86
101
+ KP_PLUS = 87
102
+ KP_ENTER = 88
103
+ KP_1 = 89
104
+ KP_2 = 90
105
+ KP_3 = 91
106
+ KP_4 = 92
107
+ KP_5 = 93
108
+ KP_6 = 94
109
+ KP_7 = 95
110
+ KP_8 = 96
111
+ KP_9 = 97
112
+ KP_0 = 98
113
+ KP_PERIOD = 99
113
114
 
114
- :NONUSBACKSLASH => 100,
115
+ NONUSBACKSLASH = 100
115
116
 
116
- :APPLICATION => 101,
117
- :POWER => 102,
117
+ APPLICATION = 101
118
+ POWER = 102
118
119
 
119
- :KP_EQUALS => 103,
120
- :F13 => 104,
121
- :F14 => 105,
122
- :F15 => 106,
123
- :F16 => 107,
124
- :F17 => 108,
125
- :F18 => 109,
126
- :F19 => 110,
127
- :F20 => 111,
128
- :F21 => 112,
129
- :F22 => 113,
130
- :F23 => 114,
131
- :F24 => 115,
132
- :EXECUTE => 116,
133
- :HELP => 117,
134
- :MENU => 118,
135
- :SELECT => 119,
136
- :STOP => 120,
137
- :AGAIN => 121,
138
- :UNDO => 122,
139
- :CUT => 123,
140
- :COPY => 124,
141
- :PASTE => 125,
142
- :FIND => 126,
143
- :MUTE => 127,
144
- :VOLUMEUP => 128,
145
- :VOLUMEDOWN => 129,
120
+ KP_EQUALS = 103
121
+ F13 = 104
122
+ F14 = 105
123
+ F15 = 106
124
+ F16 = 107
125
+ F17 = 108
126
+ F18 = 109
127
+ F19 = 110
128
+ F20 = 111
129
+ F21 = 112
130
+ F22 = 113
131
+ F23 = 114
132
+ F24 = 115
133
+ EXECUTE = 116
134
+ HELP = 117
135
+ MENU = 118
136
+ SELECT = 119
137
+ STOP = 120
138
+ AGAIN = 121
139
+ UNDO = 122
140
+ CUT = 123
141
+ COPY = 124
142
+ PASTE = 125
143
+ FIND = 126
144
+ MUTE = 127
145
+ VOLUMEUP = 128
146
+ VOLUMEDOWN = 129
146
147
 
147
- :KP_COMMA => 133,
148
- :KP_EQUALSAS400 => 134,
148
+ KP_COMMA = 133
149
+ KP_EQUALSAS400 = 134
149
150
 
150
- :INTERNATIONAL1 => 135,
151
+ INTERNATIONAL1 = 135
151
152
 
152
- :INTERNATIONAL2 => 136,
153
- :INTERNATIONAL3 => 137,
154
- :INTERNATIONAL4 => 138,
155
- :INTERNATIONAL5 => 139,
156
- :INTERNATIONAL6 => 140,
157
- :INTERNATIONAL7 => 141,
158
- :INTERNATIONAL8 => 142,
159
- :INTERNATIONAL9 => 143,
160
- :LANG1 => 144,
161
- :LANG2 => 145,
162
- :LANG3 => 146,
163
- :LANG4 => 147,
164
- :LANG5 => 148,
165
- :LANG6 => 149,
166
- :LANG7 => 150,
167
- :LANG8 => 151,
168
- :LANG9 => 152,
153
+ INTERNATIONAL2 = 136
154
+ INTERNATIONAL3 = 137
155
+ INTERNATIONAL4 = 138
156
+ INTERNATIONAL5 = 139
157
+ INTERNATIONAL6 = 140
158
+ INTERNATIONAL7 = 141
159
+ INTERNATIONAL8 = 142
160
+ INTERNATIONAL9 = 143
161
+ LANG1 = 144
162
+ LANG2 = 145
163
+ LANG3 = 146
164
+ LANG4 = 147
165
+ LANG5 = 148
166
+ LANG6 = 149
167
+ LANG7 = 150
168
+ LANG8 = 151
169
+ LANG9 = 152
169
170
 
170
- :ALTERASE => 153,
171
- :SYSREQ => 154,
172
- :CANCEL => 155,
173
- :CLEAR => 156,
174
- :PRIOR => 157,
175
- :RETURN2 => 158,
176
- :SEPARATOR => 159,
177
- :OUT => 160,
178
- :OPER => 161,
179
- :CLEARAGAIN => 162,
180
- :CRSEL => 163,
181
- :EXSEL => 164,
171
+ ALTERASE = 153
172
+ SYSREQ = 154
173
+ CANCEL = 155
174
+ CLEAR = 156
175
+ PRIOR = 157
176
+ RETURN2 = 158
177
+ SEPARATOR = 159
178
+ OUT = 160
179
+ OPER = 161
180
+ CLEARAGAIN = 162
181
+ CRSEL = 163
182
+ EXSEL = 164
182
183
 
183
- :KP_00 => 176,
184
- :KP_000 => 177,
185
- :THOUSANDSSEPARATOR => 178,
186
- :DECIMALSEPARATOR => 179,
187
- :CURRENCYUNIT => 180,
188
- :CURRENCYSUBUNIT => 181,
189
- :KP_LEFTPAREN => 182,
190
- :KP_RIGHTPAREN => 183,
191
- :KP_LEFTBRACE => 184,
192
- :KP_RIGHTBRACE => 185,
193
- :KP_TAB => 186,
194
- :KP_BACKSPACE => 187,
195
- :KP_A => 188,
196
- :KP_B => 189,
197
- :KP_C => 190,
198
- :KP_D => 191,
199
- :KP_E => 192,
200
- :KP_F => 193,
201
- :KP_XOR => 194,
202
- :KP_POWER => 195,
203
- :KP_PERCENT => 196,
204
- :KP_LESS => 197,
205
- :KP_GREATER => 198,
206
- :KP_AMPERSAND => 199,
207
- :KP_DBLAMPERSAND => 200,
208
- :KP_VERTICALBAR => 201,
209
- :KP_DBLVERTICALBAR => 202,
210
- :KP_COLON => 203,
211
- :KP_HASH => 204,
212
- :KP_SPACE => 205,
213
- :KP_AT => 206,
214
- :KP_EXCLAM => 207,
215
- :KP_MEMSTORE => 208,
216
- :KP_MEMRECALL => 209,
217
- :KP_MEMCLEAR => 210,
218
- :KP_MEMADD => 211,
219
- :KP_MEMSUBTRACT => 212,
220
- :KP_MEMMULTIPLY => 213,
221
- :KP_MEMDIVIDE => 214,
222
- :KP_PLUSMINUS => 215,
223
- :KP_CLEAR => 216,
224
- :KP_CLEARENTRY => 217,
225
- :KP_BINARY => 218,
226
- :KP_OCTAL => 219,
227
- :KP_DECIMAL => 220,
228
- :KP_HEXADECIMAL => 221,
184
+ KP_00 = 176
185
+ KP_000 = 177
186
+ THOUSANDSSEPARATOR = 178
187
+ DECIMALSEPARATOR = 179
188
+ CURRENCYUNIT = 180
189
+ CURRENCYSUBUNIT = 181
190
+ KP_LEFTPAREN = 182
191
+ KP_RIGHTPAREN = 183
192
+ KP_LEFTBRACE = 184
193
+ KP_RIGHTBRACE = 185
194
+ KP_TAB = 186
195
+ KP_BACKSPACE = 187
196
+ KP_A = 188
197
+ KP_B = 189
198
+ KP_C = 190
199
+ KP_D = 191
200
+ KP_E = 192
201
+ KP_F = 193
202
+ KP_XOR = 194
203
+ KP_POWER = 195
204
+ KP_PERCENT = 196
205
+ KP_LESS = 197
206
+ KP_GREATER = 198
207
+ KP_AMPERSAND = 199
208
+ KP_DBLAMPERSAND = 200
209
+ KP_VERTICALBAR = 201
210
+ KP_DBLVERTICALBAR = 202
211
+ KP_COLON = 203
212
+ KP_HASH = 204
213
+ KP_SPACE = 205
214
+ KP_AT = 206
215
+ KP_EXCLAM = 207
216
+ KP_MEMSTORE = 208
217
+ KP_MEMRECALL = 209
218
+ KP_MEMCLEAR = 210
219
+ KP_MEMADD = 211
220
+ KP_MEMSUBTRACT = 212
221
+ KP_MEMMULTIPLY = 213
222
+ KP_MEMDIVIDE = 214
223
+ KP_PLUSMINUS = 215
224
+ KP_CLEAR = 216
225
+ KP_CLEARENTRY = 217
226
+ KP_BINARY = 218
227
+ KP_OCTAL = 219
228
+ KP_DECIMAL = 220
229
+ KP_HEXADECIMAL = 221
229
230
 
230
- :LCTRL => 224,
231
- :LSHIFT => 225,
232
- :LALT => 226,
233
- :LGUI => 227,
234
- :RCTRL => 228,
235
- :RSHIFT => 229,
236
- :RALT => 230,
237
- :RGUI => 231,
231
+ LCTRL = 224
232
+ LSHIFT = 225
233
+ LALT = 226
234
+ LGUI = 227
235
+ RCTRL = 228
236
+ RSHIFT = 229
237
+ RALT = 230
238
+ RGUI = 231
238
239
 
239
- :MODE => 257,
240
+ MODE = 257
240
241
 
241
- :AUDIONEXT => 258,
242
- :AUDIOPREV => 259,
243
- :AUDIOSTOP => 260,
244
- :AUDIOPLAY => 261,
245
- :AUDIOMUTE => 262,
246
- :MEDIASELECT => 263,
247
- :WWW => 264,
248
- :MAIL => 265,
249
- :CALCULATOR => 266,
250
- :COMPUTER => 267,
251
- :AC_SEARCH => 268,
252
- :AC_HOME => 269,
253
- :AC_BACK => 270,
254
- :AC_FORWARD => 271,
255
- :AC_STOP => 272,
256
- :AC_REFRESH => 273,
257
- :AC_BOOKMARKS => 274,
242
+ AUDIONEXT = 258
243
+ AUDIOPREV = 259
244
+ AUDIOSTOP = 260
245
+ AUDIOPLAY = 261
246
+ AUDIOMUTE = 262
247
+ MEDIASELECT = 263
248
+ WWW = 264
249
+ MAIL = 265
250
+ CALCULATOR = 266
251
+ COMPUTER = 267
252
+ AC_SEARCH = 268
253
+ AC_HOME = 269
254
+ AC_BACK = 270
255
+ AC_FORWARD = 271
256
+ AC_STOP = 272
257
+ AC_REFRESH = 273
258
+ AC_BOOKMARKS = 274
258
259
 
259
- :BRIGHTNESSDOWN => 275,
260
- :BRIGHTNESSUP => 276,
261
- :DISPLAYSWITCH => 277,
260
+ BRIGHTNESSDOWN = 275
261
+ BRIGHTNESSUP = 276
262
+ DISPLAYSWITCH = 277
262
263
 
263
- :KBDILLUMTOGGLE => 278,
264
- :KBDILLUMDOWN => 279,
265
- :KBDILLUMUP => 280,
266
- :EJECT => 281,
267
- :SLEEP => 282,
264
+ KBDILLUMTOGGLE = 278
265
+ KBDILLUMDOWN = 279
266
+ KBDILLUMUP = 280
267
+ EJECT = 281
268
+ SLEEP = 282
268
269
 
269
- :APP1 => 283,
270
- :APP2 => 284
271
- })
270
+ APP1 = 283
271
+ APP2 = 284
272
+ end
272
273
 
273
- enum :scancode, Scancode.by_name
274
+ enum :scancode, SCANCODE.flatten_consts
274
275
 
275
276
  end