reflexion 0.3.5 → 0.3.6

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/reflex/application.cpp +16 -0
  3. data/.doc/ext/reflex/device.cpp +46 -3
  4. data/.doc/ext/reflex/device_event.cpp +62 -0
  5. data/.doc/ext/reflex/key_event.cpp +49 -19
  6. data/.doc/ext/reflex/native.cpp +6 -4
  7. data/.doc/ext/reflex/reflex.cpp +7 -6
  8. data/ChangeLog.md +8 -0
  9. data/VERSION +1 -1
  10. data/ext/reflex/application.cpp +18 -0
  11. data/ext/reflex/device.cpp +48 -3
  12. data/ext/reflex/device_event.cpp +65 -0
  13. data/ext/reflex/key_event.cpp +49 -19
  14. data/ext/reflex/native.cpp +6 -4
  15. data/ext/reflex/reflex.cpp +7 -6
  16. data/include/reflex/application.h +4 -0
  17. data/include/reflex/defs.h +58 -21
  18. data/include/reflex/device.h +22 -0
  19. data/include/reflex/event.h +25 -0
  20. data/include/reflex/gamepad.h +175 -0
  21. data/include/reflex/ruby/application.h +18 -0
  22. data/include/reflex/ruby/device.h +40 -0
  23. data/include/reflex/ruby/event.h +11 -0
  24. data/reflex.gemspec +3 -3
  25. data/src/application.cpp +67 -0
  26. data/src/application.h +9 -0
  27. data/src/device.cpp +24 -0
  28. data/src/event.cpp +38 -0
  29. data/src/gamepad.cpp +176 -0
  30. data/src/gamepad.h +74 -0
  31. data/src/ios/app_delegate.mm +2 -2
  32. data/src/ios/application.mm +0 -25
  33. data/src/ios/event.h +0 -5
  34. data/src/ios/event.mm +1 -85
  35. data/src/ios/gamepad.mm +313 -0
  36. data/src/ios/reflex.mm +0 -5
  37. data/src/osx/app_delegate.mm +2 -2
  38. data/src/osx/application.mm +0 -25
  39. data/src/osx/event.h +1 -3
  40. data/src/osx/event.mm +9 -86
  41. data/src/osx/gamepad.mm +40 -0
  42. data/src/osx/gamepad_gc.mm +299 -0
  43. data/src/osx/gamepad_hid.mm +567 -0
  44. data/src/osx/reflex.mm +0 -5
  45. data/src/win32/application.cpp +5 -26
  46. data/src/win32/event.cpp +6 -89
  47. data/src/win32/event.h +3 -1
  48. data/src/win32/gamepad.cpp +110 -0
  49. data/src/win32/gamepad.h +20 -0
  50. data/src/win32/window.cpp +2 -1
  51. metadata +28 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d6d1b028ab65bd561deb01b032b0fc7ddb1d633f493fecf9c9407bc8321f568
4
- data.tar.gz: 32f3da5338572a0ce044d64e7c8474f73dbb3d99d0813f86aa1ca0194a18e4c3
3
+ metadata.gz: 6208109e523193e989fd8aab8deb156b0cedac3f2d686104e44dec97c4cc9a5e
4
+ data.tar.gz: 8b9060b45cd8f0a2603411895d7739f7ba4df40e21d03ab9f78d4e3fbb09133f
5
5
  SHA512:
6
- metadata.gz: 6f44899a6ae5eaadd962a62c18c1d1dc1d70c5bdf5f09a71fa68ac829c318853a492e390188e7100391255a53b9f84276028d7038b31a5cd5b4b7b57a38bb715
7
- data.tar.gz: 3dec2aa1ec50884e538b19b46066737cf6cdd3943fba0c4918e388d7be64d75dd4bab0dbd4c7a27989c197428ebcc0e6c093f76697dc1d83ef8ff4385c9b9d9d
6
+ metadata.gz: e90800b628b22f0b174ba433acfddc5232687408e6845880eed7e898f03e417906f381b7d58c7c01e19dbe7965738f1ee43bf9594a2329c83a97c84ad5f843ec
7
+ data.tar.gz: fbc4b887c236dce6096fb8ab1ded816da3a4c08a2c5873f2826fc044d02dae123004e9c7d8da3b5999410b906cbaafbd742c07198bae71027ddd80259d25e212
@@ -81,6 +81,20 @@ VALUE on_quit(VALUE self, VALUE event)
81
81
  CALL(on_quit(to<Reflex::Event*>(event)));
82
82
  }
83
83
 
84
+ static
85
+ VALUE on_device_connect(VALUE self, VALUE event)
86
+ {
87
+ CHECK;
88
+ CALL(on_device_connect(to<Reflex::DeviceEvent*>(event)));
89
+ }
90
+
91
+ static
92
+ VALUE on_device_disconnect(VALUE self, VALUE event)
93
+ {
94
+ CHECK;
95
+ CALL(on_device_disconnect(to<Reflex::DeviceEvent*>(event)));
96
+ }
97
+
84
98
  static
85
99
  VALUE on_motion(VALUE self, VALUE event)
86
100
  {
@@ -125,6 +139,8 @@ Init_reflex_application ()
125
139
  rb_define_method(cApplication, "each_window", RUBY_METHOD_FUNC(each_window), 0);
126
140
  rb_define_method(cApplication, "on_start", RUBY_METHOD_FUNC(on_start), 1);
127
141
  rb_define_method(cApplication, "on_quit", RUBY_METHOD_FUNC(on_quit), 1);
142
+ rb_define_method(cApplication, "on_device_connect", RUBY_METHOD_FUNC(on_device_connect), 1);
143
+ rb_define_method(cApplication, "on_device_disconnect", RUBY_METHOD_FUNC(on_device_disconnect), 1);
128
144
  rb_define_method(cApplication, "on_motion", RUBY_METHOD_FUNC(on_motion), 1);
129
145
  rb_define_method(cApplication, "on_preference", RUBY_METHOD_FUNC(on_preference), 1);
130
146
  rb_define_method(cApplication, "on_about", RUBY_METHOD_FUNC(on_about), 1);
@@ -1,19 +1,62 @@
1
- #include "reflex/device.h"
1
+ #include "reflex/ruby/device.h"
2
+
3
+
2
4
  #include "defs.h"
3
5
 
4
6
 
7
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Device)
8
+
9
+ #define THIS to<Reflex::Device*>(self)
10
+
11
+ #define CHECK RUCY_CHECK_OBJECT(Reflex::Device, self)
12
+
13
+
14
+ static
15
+ VALUE alloc(VALUE klass)
16
+ {
17
+ Reflex::reflex_error(__FILE__, __LINE__, "can not instantiate Device class.");
18
+ }
19
+
20
+ static
21
+ VALUE name(VALUE self)
22
+ {
23
+ CHECK;
24
+ return value(THIS->name());
25
+ }
26
+
27
+
5
28
  static
6
- VALUE vibrate(VALUE self)
29
+ VALUE s_vibrate(VALUE self)
7
30
  {
8
31
  Reflex::vibrate();
9
32
  return self;
10
33
  }
11
34
 
12
35
 
36
+ static Class cDevice;
37
+
13
38
  void
14
39
  Init_reflex_device ()
15
40
  {
16
41
  Module mReflex = rb_define_module("Reflex");
17
42
 
18
- rb_define_singleton_method(mReflex, "vibrate", RUBY_METHOD_FUNC(vibrate), 0);
43
+ cDevice = mReflex.define_class("Device", Reflex::device_class());
44
+ rb_define_alloc_func(cDevice, alloc);
45
+ rb_define_method(cDevice, "name", RUBY_METHOD_FUNC(name), 0);
46
+
47
+ rb_define_singleton_method(mReflex, "vibrate", RUBY_METHOD_FUNC(s_vibrate), 0);
19
48
  }
49
+
50
+
51
+ namespace Reflex
52
+ {
53
+
54
+
55
+ Class
56
+ device_class ()
57
+ {
58
+ return cDevice;
59
+ }
60
+
61
+
62
+ }// Reflex
@@ -0,0 +1,62 @@
1
+ #include "reflex/ruby/event.h"
2
+
3
+
4
+ #include "reflex/ruby/device.h"
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::DeviceEvent)
9
+
10
+ #define THIS to<Reflex::DeviceEvent*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Reflex::DeviceEvent, self)
13
+
14
+
15
+ static
16
+ VALUE alloc(VALUE klass)
17
+ {
18
+ return new_type<Reflex::DeviceEvent>(klass);
19
+ }
20
+
21
+ static
22
+ VALUE initialize_copy(VALUE self, VALUE obj)
23
+ {
24
+ CHECK;
25
+ *THIS = to<Reflex::DeviceEvent&>(obj).dup();
26
+ return self;
27
+ }
28
+
29
+ static
30
+ VALUE get_device(VALUE self)
31
+ {
32
+ CHECK;
33
+ return value(THIS->device());
34
+ }
35
+
36
+
37
+ static Class cDeviceEvent;
38
+
39
+ void
40
+ Init_reflex_device_event ()
41
+ {
42
+ Module mReflex = rb_define_module("Reflex");
43
+
44
+ cDeviceEvent = mReflex.define_class("DeviceEvent", Reflex::event_class());
45
+ rb_define_alloc_func(cDeviceEvent, alloc);
46
+ rb_define_private_method(cDeviceEvent, "initialize_copy", RUBY_METHOD_FUNC(initialize_copy), 1);
47
+ rb_define_method(cDeviceEvent, "device", RUBY_METHOD_FUNC(get_device), 0);
48
+ }
49
+
50
+
51
+ namespace Reflex
52
+ {
53
+
54
+
55
+ Class
56
+ device_event_class ()
57
+ {
58
+ return cDeviceEvent;
59
+ }
60
+
61
+
62
+ }// Reflex
@@ -256,25 +256,55 @@ VALUE get_key(VALUE self)
256
256
  CASE(LAUNCH_APP1): SYMBOL1(launch_app1);
257
257
  CASE(LAUNCH_APP2): SYMBOL1(launch_app2);
258
258
 
259
- CASE(GAMEPAD_LEFT): SYMBOL1(gamepad_left);
260
- CASE(GAMEPAD_RIGHT): SYMBOL1(gamepad_right);
261
- CASE(GAMEPAD_UP): SYMBOL1(gamepad_up);
262
- CASE(GAMEPAD_DOWN): SYMBOL1(gamepad_down);
263
- CASE(GAMEPAD_A): SYMBOL1(gamepad_a);
264
- CASE(GAMEPAD_B): SYMBOL1(gamepad_b);
265
- CASE(GAMEPAD_X): SYMBOL1(gamepad_x);
266
- CASE(GAMEPAD_Y): SYMBOL1(gamepad_y);
267
- CASE(GAMEPAD_TRIGGER_LEFT): SYMBOL1(gamepad_trigger_left);
268
- CASE(GAMEPAD_TRIGGER_RIGHT): SYMBOL1(gamepad_trigger_right);
269
- CASE(GAMEPAD_SHOULDER_LEFT): SYMBOL1(gamepad_shoulder_left);
270
- CASE(GAMEPAD_SHOULDER_RIGHT): SYMBOL1(gamepad_shoulder_right);
271
- CASE(GAMEPAD_THUMB_LEFT): SYMBOL1(gamepad_thumb_left);
272
- CASE(GAMEPAD_THUMB_RIGHT): SYMBOL1(gamepad_thumb_right);
273
- CASE(GAMEPAD_HOME): SYMBOL1(gamepad_home);
274
- CASE(GAMEPAD_MENU): SYMBOL1(gamepad_menu);
275
- CASE(GAMEPAD_OPTION): SYMBOL1(gamepad_option);
276
- CASE(GAMEPAD_START): SYMBOL1(gamepad_start);
277
- CASE(GAMEPAD_SELECT): SYMBOL1(gamepad_select);
259
+ CASE(GAMEPAD_LEFT): SYMBOL1(gamepad_left);
260
+ CASE(GAMEPAD_RIGHT): SYMBOL1(gamepad_right);
261
+ CASE(GAMEPAD_UP): SYMBOL1(gamepad_up);
262
+ CASE(GAMEPAD_DOWN): SYMBOL1(gamepad_down);
263
+ CASE(GAMEPAD_LSTICK_LEFT): SYMBOL1(gamepad_lstick_left);
264
+ CASE(GAMEPAD_LSTICK_RIGHT): SYMBOL1(gamepad_lstick_right);
265
+ CASE(GAMEPAD_LSTICK_UP): SYMBOL1(gamepad_lstick_up);
266
+ CASE(GAMEPAD_LSTICK_DOWN): SYMBOL1(gamepad_lstick_down);
267
+ CASE(GAMEPAD_RSTICK_LEFT): SYMBOL1(gamepad_rstick_left);
268
+ CASE(GAMEPAD_RSTICK_RIGHT): SYMBOL1(gamepad_rstick_right);
269
+ CASE(GAMEPAD_RSTICK_UP): SYMBOL1(gamepad_rstick_up);
270
+ CASE(GAMEPAD_RSTICK_DOWN): SYMBOL1(gamepad_rstick_down);
271
+ CASE(GAMEPAD_A): SYMBOL1(gamepad_a);
272
+ CASE(GAMEPAD_B): SYMBOL1(gamepad_b);
273
+ CASE(GAMEPAD_X): SYMBOL1(gamepad_x);
274
+ CASE(GAMEPAD_Y): SYMBOL1(gamepad_y);
275
+ CASE(GAMEPAD_LTRIGGER): SYMBOL1(gamepad_ltrigger);
276
+ CASE(GAMEPAD_RTRIGGER): SYMBOL1(gamepad_rtrigger);
277
+ CASE(GAMEPAD_LSHOULDER): SYMBOL1(gamepad_lshoulder);
278
+ CASE(GAMEPAD_RSHOULDER): SYMBOL1(gamepad_rshoulder);
279
+ CASE(GAMEPAD_LTHUMB): SYMBOL1(gamepad_lthumb);
280
+ CASE(GAMEPAD_RTHUMB): SYMBOL1(gamepad_rthumb);
281
+ CASE(GAMEPAD_LPADDLE_0): SYMBOL1(gamepad_lpaddle_0);
282
+ CASE(GAMEPAD_LPADDLE_1): SYMBOL1(gamepad_lpaddle_1);
283
+ CASE(GAMEPAD_RPADDLE_0): SYMBOL1(gamepad_rpaddle_0);
284
+ CASE(GAMEPAD_RPADDLE_1): SYMBOL1(gamepad_rpaddle_1);
285
+ CASE(GAMEPAD_HOME): SYMBOL1(gamepad_home);
286
+ CASE(GAMEPAD_MENU): SYMBOL1(gamepad_menu);
287
+ CASE(GAMEPAD_OPTION): SYMBOL1(gamepad_option);
288
+ CASE(GAMEPAD_SHARE): SYMBOL1(gamepad_share);
289
+ CASE(GAMEPAD_START): SYMBOL1(gamepad_start);
290
+ CASE(GAMEPAD_SELECT): SYMBOL1(gamepad_select);
291
+ CASE(GAMEPAD_BUTTON_TOUCH): SYMBOL1(gamepad_button_touch);
292
+ CASE(GAMEPAD_BUTTON_0): SYMBOL1(gamepad_button_0);
293
+ CASE(GAMEPAD_BUTTON_1): SYMBOL1(gamepad_button_1);
294
+ CASE(GAMEPAD_BUTTON_2): SYMBOL1(gamepad_button_2);
295
+ CASE(GAMEPAD_BUTTON_3): SYMBOL1(gamepad_button_3);
296
+ CASE(GAMEPAD_BUTTON_4): SYMBOL1(gamepad_button_4);
297
+ CASE(GAMEPAD_BUTTON_5): SYMBOL1(gamepad_button_5);
298
+ CASE(GAMEPAD_BUTTON_6): SYMBOL1(gamepad_button_6);
299
+ CASE(GAMEPAD_BUTTON_7): SYMBOL1(gamepad_button_7);
300
+ CASE(GAMEPAD_BUTTON_8): SYMBOL1(gamepad_button_8);
301
+ CASE(GAMEPAD_BUTTON_9): SYMBOL1(gamepad_button_9);
302
+ CASE(GAMEPAD_BUTTON_10): SYMBOL1(gamepad_button_10);
303
+ CASE(GAMEPAD_BUTTON_11): SYMBOL1(gamepad_button_11);
304
+ CASE(GAMEPAD_BUTTON_12): SYMBOL1(gamepad_button_12);
305
+ CASE(GAMEPAD_BUTTON_13): SYMBOL1(gamepad_button_13);
306
+ CASE(GAMEPAD_BUTTON_14): SYMBOL1(gamepad_button_14);
307
+ CASE(GAMEPAD_BUTTON_15): SYMBOL1(gamepad_button_15);
278
308
 
279
309
  #undef CASE
280
310
  #undef SYMBOL1
@@ -4,6 +4,7 @@
4
4
  void Init_reflex ();
5
5
  void Init_reflex_exception ();
6
6
 
7
+ void Init_reflex_pointer ();
7
8
  void Init_reflex_selector ();
8
9
  void Init_reflex_style ();
9
10
  void Init_reflex_style_length ();
@@ -11,19 +12,19 @@ void Init_reflex_timer ();
11
12
  void Init_reflex_filter ();
12
13
 
13
14
  void Init_reflex_event ();
14
- void Init_reflex_motion_event ();
15
+ void Init_reflex_device_event ();
15
16
  void Init_reflex_update_event ();
16
17
  void Init_reflex_draw_event ();
17
18
  void Init_reflex_frame_event ();
18
19
  void Init_reflex_scroll_event ();
19
20
  void Init_reflex_focus_event ();
20
21
  void Init_reflex_key_event ();
21
- void Init_reflex_pointer ();
22
22
  void Init_reflex_pointer_event ();
23
23
  void Init_reflex_wheel_event ();
24
24
  void Init_reflex_capture_event ();
25
25
  void Init_reflex_timer_event ();
26
26
  void Init_reflex_contact_event ();
27
+ void Init_reflex_motion_event ();
27
28
 
28
29
  void Init_reflex_shape ();
29
30
  void Init_reflex_polygon_shape ();
@@ -55,6 +56,7 @@ extern "C" void
55
56
  Init_reflex();
56
57
  Init_reflex_exception();
57
58
 
59
+ Init_reflex_pointer();
58
60
  Init_reflex_selector();
59
61
  Init_reflex_style();
60
62
  Init_reflex_style_length();
@@ -62,19 +64,19 @@ extern "C" void
62
64
  Init_reflex_filter();
63
65
 
64
66
  Init_reflex_event();
65
- Init_reflex_motion_event();
67
+ Init_reflex_device_event();
66
68
  Init_reflex_update_event();
67
69
  Init_reflex_draw_event();
68
70
  Init_reflex_frame_event();
69
71
  Init_reflex_scroll_event();
70
72
  Init_reflex_focus_event();
71
73
  Init_reflex_key_event();
72
- Init_reflex_pointer();
73
74
  Init_reflex_pointer_event();
74
75
  Init_reflex_wheel_event();
75
76
  Init_reflex_capture_event();
76
77
  Init_reflex_timer_event();
77
78
  Init_reflex_contact_event();
79
+ Init_reflex_motion_event();
78
80
 
79
81
  Init_reflex_shape();
80
82
  Init_reflex_polygon_shape();
@@ -259,16 +259,17 @@ Init_reflex ()
259
259
  DEFINE_CONST(KEY_GAMEPAD_X);
260
260
  DEFINE_CONST(KEY_GAMEPAD_Y);
261
261
 
262
- DEFINE_CONST(KEY_GAMEPAD_SHOULDER_LEFT);
263
- DEFINE_CONST(KEY_GAMEPAD_SHOULDER_RIGHT);
264
- DEFINE_CONST(KEY_GAMEPAD_TRIGGER_LEFT);
265
- DEFINE_CONST(KEY_GAMEPAD_TRIGGER_RIGHT);
266
- DEFINE_CONST(KEY_GAMEPAD_THUMB_LEFT);
267
- DEFINE_CONST(KEY_GAMEPAD_THUMB_RIGHT);
262
+ DEFINE_CONST(KEY_GAMEPAD_LSHOULDER);
263
+ DEFINE_CONST(KEY_GAMEPAD_RSHOULDER);
264
+ DEFINE_CONST(KEY_GAMEPAD_LTRIGGER);
265
+ DEFINE_CONST(KEY_GAMEPAD_RTRIGGER);
266
+ DEFINE_CONST(KEY_GAMEPAD_LTHUMB);
267
+ DEFINE_CONST(KEY_GAMEPAD_RTHUMB);
268
268
 
269
269
  DEFINE_CONST(KEY_GAMEPAD_HOME);
270
270
  DEFINE_CONST(KEY_GAMEPAD_MENU);
271
271
  DEFINE_CONST(KEY_GAMEPAD_OPTION);
272
+ DEFINE_CONST(KEY_GAMEPAD_SHARE);
272
273
  DEFINE_CONST(KEY_GAMEPAD_START);
273
274
  DEFINE_CONST(KEY_GAMEPAD_SELECT);
274
275
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # reflex ChangeLog
2
2
 
3
3
 
4
+ ## [v0.3.6] - 2025-04-08
5
+
6
+ - Add Gamepad class
7
+ - Add Device and DeviceEvent classes
8
+ - Add Application#on_device_connect/disconnect
9
+ - Add Application_call_start() and Application_call_quit()
10
+
11
+
4
12
  ## [v0.3.5] - 2025-03-24
5
13
 
6
14
  - Add PULL_REQUEST_TEMPLATE.md
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.3.6
@@ -89,6 +89,22 @@ RUCY_DEF1(on_quit, event)
89
89
  }
90
90
  RUCY_END
91
91
 
92
+ static
93
+ RUCY_DEF1(on_device_connect, event)
94
+ {
95
+ CHECK;
96
+ CALL(on_device_connect(to<Reflex::DeviceEvent*>(event)));
97
+ }
98
+ RUCY_END
99
+
100
+ static
101
+ RUCY_DEF1(on_device_disconnect, event)
102
+ {
103
+ CHECK;
104
+ CALL(on_device_disconnect(to<Reflex::DeviceEvent*>(event)));
105
+ }
106
+ RUCY_END
107
+
92
108
  static
93
109
  RUCY_DEF1(on_motion, event)
94
110
  {
@@ -137,6 +153,8 @@ Init_reflex_application ()
137
153
  cApplication.define_method("each_window", each_window);
138
154
  cApplication.define_method("on_start", on_start);
139
155
  cApplication.define_method("on_quit", on_quit);
156
+ cApplication.define_method("on_device_connect", on_device_connect);
157
+ cApplication.define_method("on_device_disconnect", on_device_disconnect);
140
158
  cApplication.define_method("on_motion", on_motion);
141
159
  cApplication.define_method("on_preference", on_preference);
142
160
  cApplication.define_method("on_about", on_about);
@@ -1,9 +1,34 @@
1
- #include "reflex/device.h"
1
+ #include "reflex/ruby/device.h"
2
+
3
+
2
4
  #include "defs.h"
3
5
 
4
6
 
7
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::Device)
8
+
9
+ #define THIS to<Reflex::Device*>(self)
10
+
11
+ #define CHECK RUCY_CHECK_OBJECT(Reflex::Device, self)
12
+
13
+
14
+ static
15
+ RUCY_DEF_ALLOC(alloc, klass)
16
+ {
17
+ Reflex::reflex_error(__FILE__, __LINE__, "can not instantiate Device class.");
18
+ }
19
+ RUCY_END
20
+
21
+ static
22
+ RUCY_DEF0(name)
23
+ {
24
+ CHECK;
25
+ return value(THIS->name());
26
+ }
27
+ RUCY_END
28
+
29
+
5
30
  static
6
- RUCY_DEF0(vibrate)
31
+ RUCY_DEF0(s_vibrate)
7
32
  {
8
33
  Reflex::vibrate();
9
34
  return self;
@@ -11,10 +36,30 @@ RUCY_DEF0(vibrate)
11
36
  RUCY_END
12
37
 
13
38
 
39
+ static Class cDevice;
40
+
14
41
  void
15
42
  Init_reflex_device ()
16
43
  {
17
44
  Module mReflex = define_module("Reflex");
18
45
 
19
- mReflex.define_singleton_method("vibrate", vibrate);
46
+ cDevice = mReflex.define_class("Device", Reflex::device_class());
47
+ cDevice.define_alloc_func(alloc);
48
+ cDevice.define_method("name", name);
49
+
50
+ mReflex.define_singleton_method("vibrate", s_vibrate);
20
51
  }
52
+
53
+
54
+ namespace Reflex
55
+ {
56
+
57
+
58
+ Class
59
+ device_class ()
60
+ {
61
+ return cDevice;
62
+ }
63
+
64
+
65
+ }// Reflex
@@ -0,0 +1,65 @@
1
+ #include "reflex/ruby/event.h"
2
+
3
+
4
+ #include "reflex/ruby/device.h"
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_VALUE_FROM_TO(REFLEX_EXPORT, Reflex::DeviceEvent)
9
+
10
+ #define THIS to<Reflex::DeviceEvent*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Reflex::DeviceEvent, self)
13
+
14
+
15
+ static
16
+ RUCY_DEF_ALLOC(alloc, klass)
17
+ {
18
+ return new_type<Reflex::DeviceEvent>(klass);
19
+ }
20
+ RUCY_END
21
+
22
+ static
23
+ RUCY_DEF1(initialize_copy, obj)
24
+ {
25
+ CHECK;
26
+ *THIS = to<Reflex::DeviceEvent&>(obj).dup();
27
+ return self;
28
+ }
29
+ RUCY_END
30
+
31
+ static
32
+ RUCY_DEF0(get_device)
33
+ {
34
+ CHECK;
35
+ return value(THIS->device());
36
+ }
37
+ RUCY_END
38
+
39
+
40
+ static Class cDeviceEvent;
41
+
42
+ void
43
+ Init_reflex_device_event ()
44
+ {
45
+ Module mReflex = define_module("Reflex");
46
+
47
+ cDeviceEvent = mReflex.define_class("DeviceEvent", Reflex::event_class());
48
+ cDeviceEvent.define_alloc_func(alloc);
49
+ cDeviceEvent.define_private_method("initialize_copy", initialize_copy);
50
+ cDeviceEvent.define_method("device", get_device);
51
+ }
52
+
53
+
54
+ namespace Reflex
55
+ {
56
+
57
+
58
+ Class
59
+ device_event_class ()
60
+ {
61
+ return cDeviceEvent;
62
+ }
63
+
64
+
65
+ }// Reflex
@@ -260,25 +260,55 @@ RUCY_DEF0(get_key)
260
260
  CASE(LAUNCH_APP1): SYMBOL1(launch_app1);
261
261
  CASE(LAUNCH_APP2): SYMBOL1(launch_app2);
262
262
 
263
- CASE(GAMEPAD_LEFT): SYMBOL1(gamepad_left);
264
- CASE(GAMEPAD_RIGHT): SYMBOL1(gamepad_right);
265
- CASE(GAMEPAD_UP): SYMBOL1(gamepad_up);
266
- CASE(GAMEPAD_DOWN): SYMBOL1(gamepad_down);
267
- CASE(GAMEPAD_A): SYMBOL1(gamepad_a);
268
- CASE(GAMEPAD_B): SYMBOL1(gamepad_b);
269
- CASE(GAMEPAD_X): SYMBOL1(gamepad_x);
270
- CASE(GAMEPAD_Y): SYMBOL1(gamepad_y);
271
- CASE(GAMEPAD_TRIGGER_LEFT): SYMBOL1(gamepad_trigger_left);
272
- CASE(GAMEPAD_TRIGGER_RIGHT): SYMBOL1(gamepad_trigger_right);
273
- CASE(GAMEPAD_SHOULDER_LEFT): SYMBOL1(gamepad_shoulder_left);
274
- CASE(GAMEPAD_SHOULDER_RIGHT): SYMBOL1(gamepad_shoulder_right);
275
- CASE(GAMEPAD_THUMB_LEFT): SYMBOL1(gamepad_thumb_left);
276
- CASE(GAMEPAD_THUMB_RIGHT): SYMBOL1(gamepad_thumb_right);
277
- CASE(GAMEPAD_HOME): SYMBOL1(gamepad_home);
278
- CASE(GAMEPAD_MENU): SYMBOL1(gamepad_menu);
279
- CASE(GAMEPAD_OPTION): SYMBOL1(gamepad_option);
280
- CASE(GAMEPAD_START): SYMBOL1(gamepad_start);
281
- CASE(GAMEPAD_SELECT): SYMBOL1(gamepad_select);
263
+ CASE(GAMEPAD_LEFT): SYMBOL1(gamepad_left);
264
+ CASE(GAMEPAD_RIGHT): SYMBOL1(gamepad_right);
265
+ CASE(GAMEPAD_UP): SYMBOL1(gamepad_up);
266
+ CASE(GAMEPAD_DOWN): SYMBOL1(gamepad_down);
267
+ CASE(GAMEPAD_LSTICK_LEFT): SYMBOL1(gamepad_lstick_left);
268
+ CASE(GAMEPAD_LSTICK_RIGHT): SYMBOL1(gamepad_lstick_right);
269
+ CASE(GAMEPAD_LSTICK_UP): SYMBOL1(gamepad_lstick_up);
270
+ CASE(GAMEPAD_LSTICK_DOWN): SYMBOL1(gamepad_lstick_down);
271
+ CASE(GAMEPAD_RSTICK_LEFT): SYMBOL1(gamepad_rstick_left);
272
+ CASE(GAMEPAD_RSTICK_RIGHT): SYMBOL1(gamepad_rstick_right);
273
+ CASE(GAMEPAD_RSTICK_UP): SYMBOL1(gamepad_rstick_up);
274
+ CASE(GAMEPAD_RSTICK_DOWN): SYMBOL1(gamepad_rstick_down);
275
+ CASE(GAMEPAD_A): SYMBOL1(gamepad_a);
276
+ CASE(GAMEPAD_B): SYMBOL1(gamepad_b);
277
+ CASE(GAMEPAD_X): SYMBOL1(gamepad_x);
278
+ CASE(GAMEPAD_Y): SYMBOL1(gamepad_y);
279
+ CASE(GAMEPAD_LTRIGGER): SYMBOL1(gamepad_ltrigger);
280
+ CASE(GAMEPAD_RTRIGGER): SYMBOL1(gamepad_rtrigger);
281
+ CASE(GAMEPAD_LSHOULDER): SYMBOL1(gamepad_lshoulder);
282
+ CASE(GAMEPAD_RSHOULDER): SYMBOL1(gamepad_rshoulder);
283
+ CASE(GAMEPAD_LTHUMB): SYMBOL1(gamepad_lthumb);
284
+ CASE(GAMEPAD_RTHUMB): SYMBOL1(gamepad_rthumb);
285
+ CASE(GAMEPAD_LPADDLE_0): SYMBOL1(gamepad_lpaddle_0);
286
+ CASE(GAMEPAD_LPADDLE_1): SYMBOL1(gamepad_lpaddle_1);
287
+ CASE(GAMEPAD_RPADDLE_0): SYMBOL1(gamepad_rpaddle_0);
288
+ CASE(GAMEPAD_RPADDLE_1): SYMBOL1(gamepad_rpaddle_1);
289
+ CASE(GAMEPAD_HOME): SYMBOL1(gamepad_home);
290
+ CASE(GAMEPAD_MENU): SYMBOL1(gamepad_menu);
291
+ CASE(GAMEPAD_OPTION): SYMBOL1(gamepad_option);
292
+ CASE(GAMEPAD_SHARE): SYMBOL1(gamepad_share);
293
+ CASE(GAMEPAD_START): SYMBOL1(gamepad_start);
294
+ CASE(GAMEPAD_SELECT): SYMBOL1(gamepad_select);
295
+ CASE(GAMEPAD_BUTTON_TOUCH): SYMBOL1(gamepad_button_touch);
296
+ CASE(GAMEPAD_BUTTON_0): SYMBOL1(gamepad_button_0);
297
+ CASE(GAMEPAD_BUTTON_1): SYMBOL1(gamepad_button_1);
298
+ CASE(GAMEPAD_BUTTON_2): SYMBOL1(gamepad_button_2);
299
+ CASE(GAMEPAD_BUTTON_3): SYMBOL1(gamepad_button_3);
300
+ CASE(GAMEPAD_BUTTON_4): SYMBOL1(gamepad_button_4);
301
+ CASE(GAMEPAD_BUTTON_5): SYMBOL1(gamepad_button_5);
302
+ CASE(GAMEPAD_BUTTON_6): SYMBOL1(gamepad_button_6);
303
+ CASE(GAMEPAD_BUTTON_7): SYMBOL1(gamepad_button_7);
304
+ CASE(GAMEPAD_BUTTON_8): SYMBOL1(gamepad_button_8);
305
+ CASE(GAMEPAD_BUTTON_9): SYMBOL1(gamepad_button_9);
306
+ CASE(GAMEPAD_BUTTON_10): SYMBOL1(gamepad_button_10);
307
+ CASE(GAMEPAD_BUTTON_11): SYMBOL1(gamepad_button_11);
308
+ CASE(GAMEPAD_BUTTON_12): SYMBOL1(gamepad_button_12);
309
+ CASE(GAMEPAD_BUTTON_13): SYMBOL1(gamepad_button_13);
310
+ CASE(GAMEPAD_BUTTON_14): SYMBOL1(gamepad_button_14);
311
+ CASE(GAMEPAD_BUTTON_15): SYMBOL1(gamepad_button_15);
282
312
 
283
313
  #undef CASE
284
314
  #undef SYMBOL1
@@ -4,6 +4,7 @@
4
4
  void Init_reflex ();
5
5
  void Init_reflex_exception ();
6
6
 
7
+ void Init_reflex_pointer ();
7
8
  void Init_reflex_selector ();
8
9
  void Init_reflex_style ();
9
10
  void Init_reflex_style_length ();
@@ -11,19 +12,19 @@ void Init_reflex_timer ();
11
12
  void Init_reflex_filter ();
12
13
 
13
14
  void Init_reflex_event ();
14
- void Init_reflex_motion_event ();
15
+ void Init_reflex_device_event ();
15
16
  void Init_reflex_update_event ();
16
17
  void Init_reflex_draw_event ();
17
18
  void Init_reflex_frame_event ();
18
19
  void Init_reflex_scroll_event ();
19
20
  void Init_reflex_focus_event ();
20
21
  void Init_reflex_key_event ();
21
- void Init_reflex_pointer ();
22
22
  void Init_reflex_pointer_event ();
23
23
  void Init_reflex_wheel_event ();
24
24
  void Init_reflex_capture_event ();
25
25
  void Init_reflex_timer_event ();
26
26
  void Init_reflex_contact_event ();
27
+ void Init_reflex_motion_event ();
27
28
 
28
29
  void Init_reflex_shape ();
29
30
  void Init_reflex_polygon_shape ();
@@ -55,6 +56,7 @@ extern "C" void
55
56
  Init_reflex();
56
57
  Init_reflex_exception();
57
58
 
59
+ Init_reflex_pointer();
58
60
  Init_reflex_selector();
59
61
  Init_reflex_style();
60
62
  Init_reflex_style_length();
@@ -62,19 +64,19 @@ extern "C" void
62
64
  Init_reflex_filter();
63
65
 
64
66
  Init_reflex_event();
65
- Init_reflex_motion_event();
67
+ Init_reflex_device_event();
66
68
  Init_reflex_update_event();
67
69
  Init_reflex_draw_event();
68
70
  Init_reflex_frame_event();
69
71
  Init_reflex_scroll_event();
70
72
  Init_reflex_focus_event();
71
73
  Init_reflex_key_event();
72
- Init_reflex_pointer();
73
74
  Init_reflex_pointer_event();
74
75
  Init_reflex_wheel_event();
75
76
  Init_reflex_capture_event();
76
77
  Init_reflex_timer_event();
77
78
  Init_reflex_contact_event();
79
+ Init_reflex_motion_event();
78
80
 
79
81
  Init_reflex_shape();
80
82
  Init_reflex_polygon_shape();
@@ -261,16 +261,17 @@ Init_reflex ()
261
261
  DEFINE_CONST(KEY_GAMEPAD_X);
262
262
  DEFINE_CONST(KEY_GAMEPAD_Y);
263
263
 
264
- DEFINE_CONST(KEY_GAMEPAD_SHOULDER_LEFT);
265
- DEFINE_CONST(KEY_GAMEPAD_SHOULDER_RIGHT);
266
- DEFINE_CONST(KEY_GAMEPAD_TRIGGER_LEFT);
267
- DEFINE_CONST(KEY_GAMEPAD_TRIGGER_RIGHT);
268
- DEFINE_CONST(KEY_GAMEPAD_THUMB_LEFT);
269
- DEFINE_CONST(KEY_GAMEPAD_THUMB_RIGHT);
264
+ DEFINE_CONST(KEY_GAMEPAD_LSHOULDER);
265
+ DEFINE_CONST(KEY_GAMEPAD_RSHOULDER);
266
+ DEFINE_CONST(KEY_GAMEPAD_LTRIGGER);
267
+ DEFINE_CONST(KEY_GAMEPAD_RTRIGGER);
268
+ DEFINE_CONST(KEY_GAMEPAD_LTHUMB);
269
+ DEFINE_CONST(KEY_GAMEPAD_RTHUMB);
270
270
 
271
271
  DEFINE_CONST(KEY_GAMEPAD_HOME);
272
272
  DEFINE_CONST(KEY_GAMEPAD_MENU);
273
273
  DEFINE_CONST(KEY_GAMEPAD_OPTION);
274
+ DEFINE_CONST(KEY_GAMEPAD_SHARE);
274
275
  DEFINE_CONST(KEY_GAMEPAD_START);
275
276
  DEFINE_CONST(KEY_GAMEPAD_SELECT);
276
277