MINT-core 1.0.1 → 2.0.0

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 (214) hide show
  1. data/Gemfile +22 -3
  2. data/Gemfile.lock +98 -22
  3. data/History.txt +262 -0
  4. data/LICENSE +30 -0
  5. data/MINT-core.gemspec +25 -80
  6. data/Manifest.txt +145 -30
  7. data/README.rdoc +6 -163
  8. data/Rakefile +16 -17
  9. data/bin/mint-aui +3 -3
  10. data/bin/mint-cui-gfx +3 -2
  11. data/bin/mint-juggernaut.sh +0 -0
  12. data/bin/mint-tuplespace +0 -0
  13. data/lib/MINT-core.rb +53 -15
  14. data/lib/MINT-core/agent/agent.rb +1 -1
  15. data/lib/MINT-core/agent/aui.rb +0 -14
  16. data/lib/MINT-core/agent/auicontrol.rb +91 -38
  17. data/lib/MINT-core/agent/cui-gfx.rb +3 -3
  18. data/lib/MINT-core/agent/cuicontrol.rb +94 -24
  19. data/lib/MINT-core/connector/redis_connector.rb +16 -0
  20. data/lib/MINT-core/manager/mapping_manager.rb +101 -0
  21. data/lib/MINT-core/manager/mapping_parser.rb +89 -0
  22. data/lib/MINT-core/manager/mapping_server.rb +99 -0
  23. data/lib/MINT-core/manager/position_updater.rb +33 -0
  24. data/lib/MINT-core/manager/scxml_client.rb +118 -0
  25. data/lib/MINT-core/manager/scxml_server.rb +86 -0
  26. data/lib/MINT-core/mapping/action/action.rb +32 -0
  27. data/lib/MINT-core/mapping/action/backend_action.rb +32 -0
  28. data/lib/MINT-core/mapping/action/bind_action.rb +88 -0
  29. data/lib/MINT-core/mapping/action/event_action.rb +40 -0
  30. data/lib/MINT-core/mapping/complementary_mapping.rb +31 -0
  31. data/lib/MINT-core/mapping/mapping.rb +170 -34
  32. data/lib/MINT-core/mapping/observation/negation_observation.rb +64 -0
  33. data/lib/MINT-core/mapping/observation/observation.rb +219 -0
  34. data/lib/MINT-core/mapping/sequential.rb +1 -2
  35. data/lib/MINT-core/mapping/sequential_mapping.rb +60 -0
  36. data/lib/MINT-core/model/aui/AIChoiceElement.rb +17 -0
  37. data/lib/MINT-core/model/aui/AICommand.rb +7 -0
  38. data/lib/MINT-core/model/aui/AIContainer.rb +73 -0
  39. data/lib/MINT-core/model/aui/AIContext.rb +12 -0
  40. data/lib/MINT-core/model/aui/AIIN.rb +8 -0
  41. data/lib/MINT-core/model/aui/AIINContinuous.rb +56 -0
  42. data/lib/MINT-core/model/aui/AIINDiscrete.rb +8 -0
  43. data/lib/MINT-core/model/aui/AIMultiChoice.rb +1 -2
  44. data/lib/MINT-core/model/aui/AIMultiChoiceElement.rb +4 -51
  45. data/lib/MINT-core/model/aui/AIO.rb +76 -123
  46. data/lib/MINT-core/model/aui/AIOUT.rb +8 -0
  47. data/lib/MINT-core/model/aui/AIOUTContinuous.rb +61 -0
  48. data/lib/MINT-core/model/aui/AIReference.rb +16 -0
  49. data/lib/MINT-core/model/aui/AISingleChoice.rb +18 -1
  50. data/lib/MINT-core/model/aui/AISingleChoiceElement.rb +10 -56
  51. data/lib/MINT-core/model/aui/AISinglePresence.rb +39 -71
  52. data/lib/MINT-core/model/aui/aicommand.scxml +47 -0
  53. data/lib/MINT-core/model/aui/aicontainer.scxml +41 -0
  54. data/lib/MINT-core/model/aui/aicontext.scxml +34 -0
  55. data/lib/MINT-core/model/aui/aiincontinuous.scxml +59 -0
  56. data/lib/MINT-core/model/aui/aiinrange.scxml +86 -0
  57. data/lib/MINT-core/model/aui/aimultichoice.scxml +67 -0
  58. data/lib/MINT-core/model/aui/aimultichoiceelement.scxml +51 -0
  59. data/lib/MINT-core/model/aui/aio.scxml +18 -27
  60. data/lib/MINT-core/model/aui/aioutcontinuous.scxml +66 -0
  61. data/lib/MINT-core/model/aui/aireference.scxml +28 -0
  62. data/lib/MINT-core/model/aui/aisinglechoice.scxml +60 -0
  63. data/lib/MINT-core/model/aui/aisinglechoiceelement.scxml +45 -60
  64. data/lib/MINT-core/model/aui/aisinglepresence.scxml +15 -24
  65. data/lib/MINT-core/model/aui/model.rb +15 -38
  66. data/lib/MINT-core/model/cui/gfx/CIC.rb +34 -10
  67. data/lib/MINT-core/model/cui/gfx/CIO.rb +66 -115
  68. data/lib/MINT-core/model/cui/gfx/CarouFredSel.scxml +58 -0
  69. data/lib/MINT-core/model/cui/gfx/MarkableRadioButton.rb +8 -0
  70. data/lib/MINT-core/model/cui/gfx/RadioButton.rb +8 -0
  71. data/lib/MINT-core/model/cui/gfx/RadioButtonGroup.rb +6 -0
  72. data/lib/MINT-core/model/cui/gfx/button.rb +16 -0
  73. data/lib/MINT-core/model/cui/gfx/button.scxml +58 -0
  74. data/lib/MINT-core/model/cui/gfx/caroufredsel.rb +48 -0
  75. data/lib/MINT-core/model/cui/gfx/cic.scxml +57 -0
  76. data/lib/MINT-core/model/cui/gfx/cio.scxml +54 -0
  77. data/lib/MINT-core/model/cui/gfx/markableradiobutton.scxml +67 -0
  78. data/lib/MINT-core/model/cui/gfx/model.rb +39 -176
  79. data/lib/MINT-core/model/cui/gfx/radiobutton.scxml +59 -0
  80. data/lib/MINT-core/model/interactor.rb +167 -46
  81. data/lib/MINT-core/model/interactor.scxml +3 -0
  82. data/lib/MINT-core/model/interactor_helpers.rb +25 -0
  83. data/lib/MINT-core/model/ir/body/OneHandPoseNavigation.rb +15 -0
  84. data/lib/MINT-core/model/ir/body/body.rb +5 -0
  85. data/lib/MINT-core/model/ir/body/fingertip.rb +114 -0
  86. data/lib/MINT-core/model/ir/body/fingertip.scxml +43 -0
  87. data/lib/MINT-core/model/{body → ir/body}/gesture_button.rb +0 -0
  88. data/lib/MINT-core/model/ir/body/hand.rb +5 -0
  89. data/lib/MINT-core/model/ir/body/head.rb +102 -0
  90. data/lib/MINT-core/model/ir/body/head.scxml +92 -0
  91. data/lib/MINT-core/model/ir/body/onehandposenavigation.scxml +53 -0
  92. data/lib/MINT-core/model/ir/body/pose.rb +99 -0
  93. data/lib/MINT-core/model/ir/browserscreen.rb +27 -0
  94. data/lib/MINT-core/model/ir/browserscreen.scxml +14 -0
  95. data/lib/MINT-core/model/{device → ir}/button.rb +1 -1
  96. data/lib/MINT-core/model/ir/ir.rb +5 -0
  97. data/lib/MINT-core/model/ir/irmedia.rb +5 -0
  98. data/lib/MINT-core/model/ir/irmode.rb +5 -0
  99. data/lib/MINT-core/model/{device → ir}/joypad.rb +1 -1
  100. data/lib/MINT-core/model/ir/mouse.rb +44 -0
  101. data/lib/MINT-core/model/ir/mouse.scxml +35 -0
  102. data/lib/MINT-core/model/{device/mouse.rb → ir/mouse_old.rb} +2 -2
  103. data/lib/MINT-core/model/{device → ir}/pointer.rb +20 -22
  104. data/lib/MINT-core/model/ir/pointer.scxml +19 -0
  105. data/lib/MINT-core/model/ir/screen.rb +5 -0
  106. data/lib/MINT-core/model/{device → ir}/wheel.rb +1 -1
  107. data/lib/MINT-core/model/mim/aicommand_activate_to_button_press.xml +13 -0
  108. data/lib/MINT-core/model/mim/aicommand_deactivate_to_button_release.xml +13 -0
  109. data/lib/MINT-core/model/mim/aio_defocus_to_cio_unhighlight.xml +13 -0
  110. data/lib/MINT-core/model/mim/aio_focus_to_cio_highlight.xml +14 -0
  111. data/lib/MINT-core/model/mim/aio_present_to_cio_display.xml +14 -0
  112. data/lib/MINT-core/model/mim/aio_suspend_to_cio_hide.xml +13 -0
  113. data/lib/MINT-core/model/mim/aisinglechoice_present_to_child_present.xml +14 -0
  114. data/lib/MINT-core/model/mim/aisinglechoiceelement_chosen_to_radiobutton_select.xml +13 -0
  115. data/lib/MINT-core/model/mim/aisinglechoiceelement_unchosen_to_radiobutton_unselect.xml +13 -0
  116. data/lib/MINT-core/model/mim/aisinglepresence_children_finished_to_caroufredsel_init_js.xml +14 -0
  117. data/lib/MINT-core/model/mim/aisinglepresence_present_to_child_present.xml +15 -0
  118. data/lib/MINT-core/model/mim/browserscreen_reload_to_cuicontrol_refresh_all.xml +12 -0
  119. data/lib/MINT-core/model/mim/button_press_to_aicommand_activate.xml +12 -0
  120. data/lib/MINT-core/model/mim/button_release_to_aicommand_deactivate.xml +12 -0
  121. data/lib/MINT-core/model/mim/caroufredsel_refreshing_to_caroufredsel_init_js.xml +14 -0
  122. data/lib/MINT-core/model/mim/cio_display_to_aio_defocus.xml +13 -0
  123. data/lib/MINT-core/model/mim/cio_display_to_aio_present.xml +12 -0
  124. data/lib/MINT-core/model/mim/cio_display_to_cio_display_cache_add.xml +11 -0
  125. data/lib/MINT-core/model/mim/cio_hide_to_aio_suspend.xml +12 -0
  126. data/lib/MINT-core/model/mim/cio_hide_to_cio_display_cache_remove.xml +12 -0
  127. data/lib/MINT-core/model/mim/cio_highlight_to_aio_focus.xml +13 -0
  128. data/lib/MINT-core/model/mim/head_looking_left_to_aisinglepresence_prev.xml +14 -0
  129. data/lib/MINT-core/model/mim/head_looking_right_to_aisinglepresence_next.xml +15 -0
  130. data/lib/MINT-core/model/mim/head_nodding_to_aisinglepresence_next.xml +15 -0
  131. data/lib/MINT-core/model/mim/head_tilting_left_to_aisinglepresence_prev.xml +14 -0
  132. data/lib/MINT-core/model/mim/head_tilting_right_to_aisinglepresence_next.xml +15 -0
  133. data/lib/MINT-core/model/mim/left_button_aisinglepresence_enter.xml +15 -0
  134. data/lib/MINT-core/model/mim/left_button_aisinglepresence_next.xml +15 -0
  135. data/lib/MINT-core/model/mim/mim_default.xml +52 -0
  136. data/lib/MINT-core/model/mim/mint-mappings.xsd +127 -0
  137. data/lib/MINT-core/model/mim/mouse_press_to_aicommand_activate.xml +17 -0
  138. data/lib/MINT-core/model/mim/mouse_press_to_aisinglechoiceelement_choose.xml +17 -0
  139. data/lib/MINT-core/model/mim/mouse_press_to_aisinglechoiceelement_unchoose.xml +17 -0
  140. data/lib/MINT-core/model/mim/mouse_release_to_aicommand_deactivate.xml +16 -0
  141. data/lib/MINT-core/model/mim/mouse_stop_to_cio_highlight.xml +13 -0
  142. data/lib/MINT-core/model/mim/onehandposnav_confirm_to_aichoiceelement_choose.xml +14 -0
  143. data/lib/MINT-core/model/mim/onehandposnav_next_to_aio_next.xml +14 -0
  144. data/lib/MINT-core/model/mim/onehandposnav_previous_to_aio_prev.xml +14 -0
  145. data/lib/MINT-core/model/mim/radiobutton_selected_to_aisinglechoiceelement_choose.xml +13 -0
  146. data/lib/MINT-core/model/mim/radiobutton_unselected_to_aisinglechoiceelement_unchoose.xml +13 -0
  147. data/lib/MINT-core/model/mim/right_button_aisinglepresence_prev.xml +15 -0
  148. data/lib/MINT-core/model/task.rb +6 -6
  149. data/script/console +0 -0
  150. data/script/destroy +0 -0
  151. data/script/generate +0 -0
  152. data/spec/AICommand_spec.rb +20 -0
  153. data/spec/AIContainer_spec.rb +161 -0
  154. data/spec/AIINContinuous_spec.rb +92 -0
  155. data/spec/AIOUTContinuous_spec.rb +93 -0
  156. data/spec/AIO_spec.rb +73 -0
  157. data/spec/AIReference_spec.rb +105 -0
  158. data/spec/AISinglePresence_spec.rb +204 -60
  159. data/spec/Button_spec.rb +114 -0
  160. data/spec/CIO_spec.rb +145 -0
  161. data/spec/Interactor_spec.rb +95 -0
  162. data/spec/MappingManager_spec.rb +126 -0
  163. data/spec/Spontaneous_spec.rb +53 -0
  164. data/spec/aio_agent_spec.rb +215 -186
  165. data/spec/aisinglechoice_spec.rb +147 -88
  166. data/spec/aisinglechoiceelement_spec.rb +154 -70
  167. data/spec/complementary_mapping_spec.rb +158 -0
  168. data/spec/core_spec.rb +27 -15
  169. data/spec/cui_helper.rb +100 -0
  170. data/spec/examples/browserscreen_reload_to_cuicontrol_refresh_all.xml +12 -0
  171. data/spec/examples/mim_streaming_example.xml +9 -0
  172. data/spec/examples/mouse_highlight.xml +22 -0
  173. data/spec/examples/performance_mapping.xml +15 -0
  174. data/spec/examples/reset_click.xml +24 -0
  175. data/spec/interactor_test.scxml +32 -0
  176. data/spec/interactor_test_2.scxml +16 -0
  177. data/spec/mapping_performance_spec.rb +118 -0
  178. data/spec/mapping_server_spec.rb +161 -0
  179. data/spec/mapping_spec.rb +307 -0
  180. data/spec/music_spec.rb +301 -135
  181. data/spec/performance_counter.scxml +9 -0
  182. data/spec/sequential_mappings_spec.rb +69 -0
  183. data/spec/shared/aio_shared.rb +144 -0
  184. data/spec/spec_helper.rb +22 -3
  185. data/spec/spontaneous.scxml +11 -0
  186. data/spec/support/connection_helper.rb +19 -0
  187. data/spec/support/redis_connector_monkey_patch.rb +1 -0
  188. data/spec/support/statemachine_helper.rb +84 -0
  189. data/spec/sync_mappings_spec.rb +96 -0
  190. metadata +219 -354
  191. data/lib/MINT-core/mapping/complementary.rb +0 -100
  192. data/lib/MINT-core/mapping/on_state_change.rb +0 -65
  193. data/lib/MINT-core/model/aui/AIC.rb +0 -86
  194. data/lib/MINT-core/model/aui/AIChoice.rb +0 -65
  195. data/lib/MINT-core/model/aui/AIINChoose.rb +0 -54
  196. data/lib/MINT-core/model/aui/AIOUTDiscrete.rb +0 -43
  197. data/lib/MINT-core/model/aui/aic.png +0 -0
  198. data/lib/MINT-core/model/aui/aic.scxml +0 -50
  199. data/lib/MINT-core/model/aui/aichoice.png +0 -0
  200. data/lib/MINT-core/model/aui/aichoice.scxml +0 -60
  201. data/lib/MINT-core/model/aui/aio.png +0 -0
  202. data/lib/MINT-core/model/aui/aisinglechoiceelement.png +0 -0
  203. data/lib/MINT-core/model/aui/aisinglepresence.png +0 -0
  204. data/lib/MINT-core/model/body/handgesture.rb +0 -279
  205. data/lib/MINT-core/model/body/head.png +0 -0
  206. data/lib/MINT-core/model/body/head.rb +0 -51
  207. data/lib/MINT-core/model/body/head.scxml +0 -28
  208. data/lib/MINT-core/model/cui/gfx/screen.rb +0 -18
  209. data/lib/MINT-core/overrides/rinda.rb +0 -34
  210. data/spec/AIC_spec.rb +0 -69
  211. data/spec/MINT-core_spec.rb +0 -11
  212. data/spec/aio_spec.rb +0 -144
  213. data/spec/cio_spec.rb +0 -369
  214. data/tasks/rspec.rake +0 -21
@@ -0,0 +1,5 @@
1
+ module MINT
2
+ class IR <Interactor
3
+
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module MINT
2
+ class IRMedia < IR
3
+
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module MINT
2
+ class IRMode < IR
3
+
4
+ end
5
+ end
@@ -1,6 +1,6 @@
1
1
  module MINT
2
2
 
3
- class Joypad < Element
3
+ class Joypad < Interactor
4
4
  def initialize_statemachine
5
5
  if @statemachine.blank?
6
6
  @statemachine = Statemachine.build do
@@ -0,0 +1,44 @@
1
+
2
+ module MINT
3
+ class Mouse < Pointer
4
+
5
+ def getSCXML
6
+ "#{File.dirname(__FILE__)}/mouse.scxml"
7
+ end
8
+
9
+ def consume(id)
10
+ subscription = "data:"+self.class.create_channel_name+"."+id.to_s+":*"
11
+
12
+ redis = RedisConnector.redis
13
+
14
+ redis.pubsub.psubscribe(subscription) { |key,message|
15
+
16
+ # if (key.eql? subscription)
17
+ data = MultiJson.decode message
18
+
19
+ if data["cmd"].eql? "pointer"
20
+ x,y = data["data"]
21
+ cache_coordinates x,y
22
+ process_event("move") if not is_in? :moving
23
+ restart_timeout
24
+ else #button
25
+ case data["data"]
26
+
27
+ when "LEFT_PRESSED"
28
+ process_event :press_left
29
+ when "LEFT_RELEASED"
30
+ process_event :release_left
31
+ when "RIGHT_PRESSED"
32
+ process_event :press_right
33
+ when "RIGHT_RELEASED"
34
+ process_event :release_right
35
+
36
+ end
37
+
38
+ end
39
+ # end
40
+ }
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,35 @@
1
+ <scxml initial="disconnected" name="Mouse" version="0.9" xmlns="http://www.w3.org/2005/07/scxml"><!-- node-size-and-position x=0.0 y=0.0 w=870.0 h=660.0 -->
2
+ <state id="disconnected"><!-- node-size-and-position x=280.0 y=60.0 w=100.0 h=50.0 -->
3
+ <onentry>
4
+ <log expr="consume(name)"></log>
5
+ </onentry>
6
+ <transition event="connect" target="connected"></transition>
7
+ </state>
8
+ <parallel id="connected"><!-- node-size-and-position x=70.0 y=190.0 w=760.0 h=300.0 -->
9
+ <transition event="disconnect" target="disconnected"><!-- edge-path [disconnected] x=400.0 y=160.0 --></transition>
10
+ <state id="leftbutton" initial="left_released"><!-- node-size-and-position x=40.0 y=50.0 w=220.0 h=240.0 -->
11
+ <state id="left_released"><!-- node-size-and-position x=40.0 y=50.0 w=140.0 h=40.0 -->
12
+ <transition event="press_left" target="left_pressed"><!-- edge-path [left_pressed] x=100.0 y=110.0 pointx=0.0 pointy=-40.0 offsetx=0.0 offsety=-5.0 --></transition>
13
+ </state>
14
+ <state id="left_pressed"><!-- node-size-and-position x=50.0 y=140.0 w=120.0 h=40.0 -->
15
+ <transition event="release_left" target="left_released"><!-- edge-path [left_released] x=180.0 y=120.0 --></transition>
16
+ </state>
17
+ </state>
18
+ <state id="pointer" initial="stopped"><!-- node-size-and-position x=270.0 y=50.0 w=210.0 h=210.0 -->
19
+ <state id="stopped"><!-- node-size-and-position x=50.0 y=60.0 w=100.0 h=40.0 -->
20
+ <transition event="move" target="moving"><!-- edge-path [moving] x=140.0 y=120.0 --></transition>
21
+ </state>
22
+ <state id="moving"><!-- node-size-and-position x=30.0 y=150.0 w=100.0 h=40.0 -->
23
+ <transition event="stop" target="stopped"><!-- edge-path [stopped] x=50.0 y=130.0 pointx=0.0 pointy=2.0 offsetx=-15.0 offsety=-2.0 --></transition>
24
+ </state>
25
+ </state>
26
+ <state id="rightbutton" initial="right_released"><!-- node-size-and-position x=520.0 y=50.0 w=210.0 h=210.0 -->
27
+ <state id="right_released"><!-- node-size-and-position x=20.0 y=50.0 w=140.0 h=40.0 -->
28
+ <transition event="press_right" target="right_pressed"><!-- edge-path [right_pressed] x=80.0 y=110.0 pointx=0.0 pointy=-40.0 offsetx=0.0 offsety=-5.0 --></transition>
29
+ </state>
30
+ <state id="right_pressed"><!-- node-size-and-position x=30.0 y=140.0 w=120.0 h=40.0 -->
31
+ <transition event="release_right" target="right_released"><!-- edge-path [right_released] x=160.0 y=120.0 --></transition>
32
+ </state>
33
+ </state>
34
+ </parallel>
35
+ </scxml>
@@ -1,7 +1,7 @@
1
1
  require "eventmachine"
2
- module MINT
2
+ module MINTo
3
3
 
4
- class MouseMode < Element
4
+ class MouseMode < Interactor
5
5
  def initialize_statemachine
6
6
  if @statemachine.blank?
7
7
  @statemachine = Statemachine.build do
@@ -1,42 +1,39 @@
1
1
  module MINT
2
- class Pointer < Element
2
+ class Pointer < IRMode
3
3
  property :x, Integer, :default => -1
4
4
  property :y, Integer, :default => -1
5
5
 
6
- def initialize_statemachine
7
- if @statemachine.blank?
8
- @statemachine = Statemachine.build do
6
+ PUBLISH_ATTRIBUTES += [:x,:y]
9
7
 
10
- trans :disconnected,:connect, :connected
11
- trans :connected, :disconnect, :disconnected
12
-
13
- superstate :connected do
14
- trans :stopped, :move, :moving
15
- trans :moving,:move, :moving
16
- trans :moving,:stop,:stopped
8
+ def getSCXML
9
+ "#{File.dirname(__FILE__)}/pointer.scxml"
10
+ end
17
11
 
18
- state :moving do
19
- on_entry :start_timeout
20
- on_exit :stop_timeout
21
- end
22
- end
12
+ def consume(id)
13
+ subscription = self.class.create_channel_name+"."+id.to_s+":*"
14
+ RedisConnector.sub.psubscribe(subscription) # TODO all users
15
+ RedisConnector.sub.on(:pmessage) { |key, channel, message|
16
+ if (key.eql? subscription)
17
+ x,y = MultiJson.decode message
18
+ cache_coordinates x,y
19
+ process_event("move") if not is_in? :moving
20
+ restart_timeout
23
21
  end
24
- end
22
+ }
25
23
  end
26
24
 
27
- def cache_coordinates(x,y)
25
+
26
+ def cache_coordinates(x,y)
28
27
  @cached_x = x
29
28
  @cached_y = y
30
- end
29
+ end
31
30
 
32
31
  def start_timeout
33
32
  if not @timer
34
33
  @timer = EventMachine::Timer.new(0.1) do
35
34
  attribute_set(:x, @cached_x)
36
35
  attribute_set(:y, @cached_y)
37
-
38
36
  process_event("stop")
39
-
40
37
  end
41
38
  else
42
39
  puts "timer already started!!!"
@@ -44,6 +41,7 @@ module MINT
44
41
  end
45
42
  def stop_timeout
46
43
  if @timer
44
+ # p "stopped timer"
47
45
  @timer.cancel
48
46
  @timer = nil
49
47
  end
@@ -66,7 +64,7 @@ module MINT
66
64
 
67
65
 
68
66
 
69
- def start_timeout
67
+ def start_timeout
70
68
  if not @timer
71
69
  @timer = EventMachine::Timer.new(0.1) do
72
70
  attribute_set(:x, @cached_x)
@@ -0,0 +1,19 @@
1
+ <scxml initial="disconnected" name="Pointer" version="0.9" xmlns="http://www.w3.org/2005/07/scxml"><!-- node-size-and-position x=0.0 y=0.0 w=662.0 h=581.0 -->
2
+ <state id="disconnected"><!-- node-size-and-position x=280.0 y=60.0 w=100.0 h=50.0 -->
3
+ <transition event="connect" target="connected"></transition>
4
+ </state>
5
+ <state id="connected" initial="stopped"><!-- node-size-and-position x=160.0 y=190.0 w=190.0 h=220.0 -->
6
+ <onentry>
7
+ <log expr="consume(name)"></log>
8
+ </onentry>
9
+ <transition target="disconnected"></transition>
10
+ <transition target="disconnected"></transition>
11
+ <transition event="disconnect" target="disconnected"><!-- edge-path [disconnected] x=400.0 y=160.0 --></transition>
12
+ <state id="stopped"><!-- node-size-and-position x=40.0 y=50.0 w=100.0 h=40.0 -->
13
+ <transition event="move" target="moving"><!-- edge-path [moving] x=130.0 y=110.0 --></transition>
14
+ </state>
15
+ <state id="moving"><!-- node-size-and-position x=20.0 y=140.0 w=100.0 h=40.0 -->
16
+ <transition event="stop" target="stopped"><!-- edge-path [stopped] x=40.0 y=120.0 pointx=0.0 pointy=2.0 offsetx=-15.0 offsety=-2.0 --></transition>
17
+ </state>
18
+ </state>
19
+ </scxml>
@@ -0,0 +1,5 @@
1
+ module MINT
2
+ class Screen < IRMedia
3
+
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module MINT
2
- class Wheel < Element
2
+ class Wheel < Interactor
3
3
 
4
4
  def initialize_statemachine
5
5
  if @statemachine.blank?
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AICommand activate to Button press" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AICommand" states="activated" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO.Button" name="aio.name" states="pressed" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="press" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AICommand deactivate to Button release" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AICommand" states="deactivated" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO.Button" name="aio.name" states="released" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="release" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AIO defocus to CIO unhighlight" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO" states="defocused" result="aio" process="onchange"/>
6
+ <observation id="3" interactor="Interactor.CIO" name="aio.name" states="highlighted" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="unhighlight" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,14 @@
1
+ <mapping name="Sync AIO focus to CIO highlight" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO" states="focused" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO" name="aio.name" states="highlighted" result="cio" process="instant"/>
7
+ <observation id="5" interactor="Interactor.AIO" states="focused" name="aio.name" process="instant"/>
8
+ </observations>
9
+ <actions>
10
+ <event id="4" type="highlight" target="cio"/>
11
+ </actions>
12
+ </operator>
13
+ </mapping>
14
+
@@ -0,0 +1,14 @@
1
+ <mapping name="Sync AIO present to CIO display" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO" states="presenting" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO" name="aio.name" states="displaying" result="cio" process="instant"/>
7
+ <observation id="5" interactor="Interactor.AIO" states="presenting" name="aio.name" process="instant"/>
8
+ </observations>
9
+ <actions>
10
+ <event id="4" type="display" target="cio"/>
11
+ </actions>
12
+ </operator>
13
+ </mapping>
14
+
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AIO suspend to CIO hide" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO" states="suspended" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO" name="aio.name" states="hidden" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="hide" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,14 @@
1
+ <mapping name="AISingleChoice present to present active child" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIOUT.AIContainer.AISingleChoice" states="presenting" result="aisc" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.AIO" name="aisc.children.first.name" states="presenting" result="active_child" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <backend id="5" call="present_children" class="AUIControl" parameter="aisc"/>
10
+ <event id="6" type="children_finished" target="aisc"/>
11
+ </actions>
12
+ </operator>
13
+ </mapping>
14
+
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AISingeChoiceElement chosen to RadioButton select" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AIChoiceElement.AISingleChoiceElement" states="chosen" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO.RadioButton" name="aio.name" states="selected" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="select" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,13 @@
1
+ <mapping name="Sync AISingeChoiceElement unchosen to RadioButton unselect" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AIChoiceElement.AISingleChoiceElement" states="unchosen" result="aio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.CIO.RadioButton" name="aio.name" states="unselected" result="cio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="unselect" target="cio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
13
+
@@ -0,0 +1,14 @@
1
+ <mapping name="AISinglePresence children finished to initjs CarouFredSel" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIOUT.AIContainer.AISinglePresence" states="children_finished" result="ais" process="onchange"/>
6
+ <observation id="3" interactor="Interactor.CIO.CIC.CarouFredSel" name="ais.name" states="wait_for_children" result="cio" process="instant"/>
7
+ <observation id="4" interactor="Interactor.CIO.Image.CarouFredSelImage" name="ais.active_child.name" states="displaying" result="page" process="continuous"/>
8
+ </observations>
9
+ <actions>
10
+ <event id="5" type="init_js" target="cio"/>
11
+ </actions>
12
+ </operator>
13
+ </mapping>
14
+
@@ -0,0 +1,15 @@
1
+ <mapping name="AISinglePresence present to present active child" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.AIO.AIOUT.AIContainer.AISinglePresence" states="presenting" result="ais" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.AIO" name="ais.active_child.name" result="active_child" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="present" target="active_child"/>
10
+ <backend id="5" call="suspend_others" class="AUIControl" parameter="ais"/>
11
+ <event id="6" type="children_finished" target="ais"/>
12
+ </actions>
13
+ </operator>
14
+ </mapping>
15
+
@@ -0,0 +1,12 @@
1
+ <mapping name="BrowserScreen reload to CUIControl refresh all" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.IR.IRMedia.Screen.BrowserScreen" states="reloaded" process="onchange"/>
6
+ </observations>
7
+ <actions>
8
+ <backend id="2222" call="refresh_all" class="CUIControl" />
9
+ </actions>
10
+ </operator>
11
+ </mapping>
12
+
@@ -0,0 +1,12 @@
1
+ <mapping name="Sync Button press to AICommand activate" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.CIO.Button" states="pressed" result="cio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AICommand" name="cio.name" states="activated" result="aio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="activate" target="aio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
@@ -0,0 +1,12 @@
1
+ <mapping name="Sync Button release to AICommand deactivate" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="2" interactor="Interactor.CIO.Button" states="released" result="cio" process="onchange"/>
6
+ <observation id="3" type="negation" interactor="Interactor.AIO.AIIN.AIINDiscrete.AIReference.AICommand" name="cio.name" states="deactivated" result="aio" process="instant"/>
7
+ </observations>
8
+ <actions>
9
+ <event id="4" type="deactivate" target="aio"/>
10
+ </actions>
11
+ </operator>
12
+ </mapping>
@@ -0,0 +1,14 @@
1
+ <mapping name="CarouFredSel refreshing to initjs CarouFredSel" xmlns="http://www.multi-access.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
+ xsi:schemaLocation="http://www.multi-access.de mint-mappings.xsd">
3
+ <operator type="sequential" id="1">
4
+ <observations>
5
+ <observation id="3" interactor="Interactor.CIO.CIC.CarouFredSel" states="refreshing" result="cio" process="onchange"/>
6
+ <observation id="2" interactor="Interactor.AIO.AIOUT.AIContainer.AISinglePresence" name="cio.name" result="ais" process="instant"/>
7
+ <observation id="4" interactor="Interactor.CIO.Image.CarouFredSelImage" name="ais.active_child.name" states="displaying" result="page" process="continuous"/>
8
+ </observations>
9
+ <actions>
10
+ <event id="5" type="init_js" target="cio"/>
11
+ </actions>
12
+ </operator>
13
+ </mapping>
14
+