rho-tau-extensions 5.5.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2 -0
  3. data/LICENSE +21 -0
  4. data/README.md +6 -0
  5. data/Rakefile +90 -0
  6. data/libs/crosswalk.rb +2 -0
  7. data/libs/crosswalk/crosswalk.rb +2 -0
  8. data/libs/crosswalk/ext.yml +21 -0
  9. data/libs/crosswalk/ext/Crosswalk.xml +27 -0
  10. data/libs/crosswalk/ext/build +19 -0
  11. data/libs/crosswalk/ext/build.bat +29 -0
  12. data/libs/crosswalk/ext/platform/android/AndroidManifest.xml +9 -0
  13. data/libs/crosswalk/ext/platform/android/Rakefile +141 -0
  14. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkcore.so +0 -0
  15. data/libs/crosswalk/ext/platform/android/adds/lib/armeabi/libxwalkdummy.so +0 -0
  16. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkcore.so +0 -0
  17. data/libs/crosswalk/ext/platform/android/adds/lib/x86/libxwalkdummy.so +0 -0
  18. data/libs/crosswalk/ext/platform/android/adds/lib/xwalk_core_library_java.jar +0 -0
  19. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble.9.png +0 -0
  20. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/bubble_arrow_up.png +0 -0
  21. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/color_picker_advanced_select_handle.png +0 -0
  22. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/crosswalk.png +0 -0
  23. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_down.9.png +0 -0
  24. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/dropdown_popup_background_up.9.png +0 -0
  25. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_menu_share_holo_light.png +0 -0
  26. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_search.png +0 -0
  27. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ic_warning.png +0 -0
  28. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/ondemand_overlay.9.png +0 -0
  29. data/libs/crosswalk/ext/platform/android/adds/res/drawable-hdpi/verify_checkmark.png +0 -0
  30. data/libs/crosswalk/ext/platform/android/adds/res/drawable-ldpi/crosswalk.png +0 -0
  31. data/libs/crosswalk/ext/platform/android/adds/res/drawable-mdpi/crosswalk.png +0 -0
  32. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_borderless_compat.xml +10 -0
  33. data/libs/crosswalk/ext/platform/android/adds/res/drawable-v21/button_compat.xml +9 -0
  34. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble.9.png +0 -0
  35. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/bubble_arrow_up.png +0 -0
  36. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/color_picker_advanced_select_handle.png +0 -0
  37. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/crosswalk.png +0 -0
  38. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_down.9.png +0 -0
  39. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/dropdown_popup_background_up.9.png +0 -0
  40. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_menu_share_holo_light.png +0 -0
  41. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_search.png +0 -0
  42. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ic_warning.png +0 -0
  43. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/ondemand_overlay.9.png +0 -0
  44. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xhdpi/verify_checkmark.png +0 -0
  45. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_menu_share_holo_light.png +0 -0
  46. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_search.png +0 -0
  47. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/ic_warning.png +0 -0
  48. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxhdpi/verify_checkmark.png +0 -0
  49. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_menu_share_holo_light.png +0 -0
  50. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_search.png +0 -0
  51. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/ic_warning.png +0 -0
  52. data/libs/crosswalk/ext/platform/android/adds/res/drawable-xxxhdpi/verify_checkmark.png +0 -0
  53. data/libs/crosswalk/ext/platform/android/adds/res/drawable/autofill_chip_inset.xml +15 -0
  54. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble.9.png +0 -0
  55. data/libs/crosswalk/ext/platform/android/adds/res/drawable/bubble_arrow_up.png +0 -0
  56. data/libs/crosswalk/ext/platform/android/adds/res/drawable/button_compat_shape.xml +9 -0
  57. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_button_background.xml +36 -0
  58. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_advanced_select_handle.png +0 -0
  59. data/libs/crosswalk/ext/platform/android/adds/res/drawable/color_picker_border.xml +12 -0
  60. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_label_color.xml +11 -0
  61. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background.xml +13 -0
  62. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_down.9.png +0 -0
  63. data/libs/crosswalk/ext/platform/android/adds/res/drawable/dropdown_popup_background_up.9.png +0 -0
  64. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_menu_share_holo_light.png +0 -0
  65. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_search.png +0 -0
  66. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ic_warning.png +0 -0
  67. data/libs/crosswalk/ext/platform/android/adds/res/drawable/launchscreen_bg.xml +19 -0
  68. data/libs/crosswalk/ext/platform/android/adds/res/drawable/ondemand_overlay.9.png +0 -0
  69. data/libs/crosswalk/ext/platform/android/adds/res/drawable/verify_checkmark.png +0 -0
  70. data/libs/crosswalk/ext/platform/android/adds/res/layout-land/date_time_picker_dialog.xml +42 -0
  71. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_keyboard_accessory_item.xml +40 -0
  72. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/autofill_suggestion_item.xml +18 -0
  73. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_advanced_component.xml +46 -0
  74. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_content.xml +51 -0
  75. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/color_picker_dialog_title.xml +41 -0
  76. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/date_time_suggestion.xml +35 -0
  77. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/dropdown_item.xml +58 -0
  78. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/multi_field_time_picker_dialog.xml +122 -0
  79. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/two_field_date_picker.xml +38 -0
  80. data/libs/crosswalk/ext/platform/android/adds/res/layout-v17/validation_message_bubble.xml +72 -0
  81. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_icon.xml +13 -0
  82. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_keyboard_accessory_item.xml +17 -0
  83. data/libs/crosswalk/ext/platform/android/adds/res/layout/autofill_suggestion_item.xml +7 -0
  84. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_advanced_component.xml +30 -0
  85. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_content.xml +36 -0
  86. data/libs/crosswalk/ext/platform/android/adds/res/layout/color_picker_dialog_title.xml +25 -0
  87. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_picker_dialog.xml +42 -0
  88. data/libs/crosswalk/ext/platform/android/adds/res/layout/date_time_suggestion.xml +16 -0
  89. data/libs/crosswalk/ext/platform/android/adds/res/layout/dropdown_item.xml +34 -0
  90. data/libs/crosswalk/ext/platform/android/adds/res/layout/multi_field_time_picker_dialog.xml +50 -0
  91. data/libs/crosswalk/ext/platform/android/adds/res/layout/two_field_date_picker.xml +26 -0
  92. data/libs/crosswalk/ext/platform/android/adds/res/layout/validation_message_bubble.xml +47 -0
  93. data/libs/crosswalk/ext/platform/android/adds/res/menu/select_action_menu.xml +54 -0
  94. data/libs/crosswalk/ext/platform/android/adds/res/raw/contacts_api.js +206 -0
  95. data/libs/crosswalk/ext/platform/android/adds/res/raw/device_capabilities_api.js +231 -0
  96. data/libs/crosswalk/ext/platform/android/adds/res/raw/empty.wav +0 -0
  97. data/libs/crosswalk/ext/platform/android/adds/res/raw/icudtl.dat +0 -0
  98. data/libs/crosswalk/ext/platform/android/adds/res/raw/launch_screen_api.js +9 -0
  99. data/libs/crosswalk/ext/platform/android/adds/res/raw/messaging_api.js +359 -0
  100. data/libs/crosswalk/ext/platform/android/adds/res/raw/presentation_api.js +144 -0
  101. data/libs/crosswalk/ext/platform/android/adds/res/raw/wifidirect_api.js +227 -0
  102. data/libs/crosswalk/ext/platform/android/adds/res/raw/xwalk.pak +0 -0
  103. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_content_strings.xml +15 -0
  104. data/libs/crosswalk/ext/platform/android/adds/res/values-am/android_ui_strings.xml +47 -0
  105. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_content_strings.xml +15 -0
  106. data/libs/crosswalk/ext/platform/android/adds/res/values-ar/android_ui_strings.xml +47 -0
  107. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_content_strings.xml +15 -0
  108. data/libs/crosswalk/ext/platform/android/adds/res/values-bg/android_ui_strings.xml +47 -0
  109. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_content_strings.xml +15 -0
  110. data/libs/crosswalk/ext/platform/android/adds/res/values-ca/android_ui_strings.xml +47 -0
  111. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_content_strings.xml +15 -0
  112. data/libs/crosswalk/ext/platform/android/adds/res/values-cs/android_ui_strings.xml +47 -0
  113. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_content_strings.xml +15 -0
  114. data/libs/crosswalk/ext/platform/android/adds/res/values-da/android_ui_strings.xml +47 -0
  115. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_content_strings.xml +15 -0
  116. data/libs/crosswalk/ext/platform/android/adds/res/values-de/android_ui_strings.xml +47 -0
  117. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_content_strings.xml +15 -0
  118. data/libs/crosswalk/ext/platform/android/adds/res/values-el/android_ui_strings.xml +47 -0
  119. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_content_strings.xml +15 -0
  120. data/libs/crosswalk/ext/platform/android/adds/res/values-en-rGB/android_ui_strings.xml +47 -0
  121. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_content_strings.xml +15 -0
  122. data/libs/crosswalk/ext/platform/android/adds/res/values-es-rUS/android_ui_strings.xml +47 -0
  123. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_content_strings.xml +15 -0
  124. data/libs/crosswalk/ext/platform/android/adds/res/values-es/android_ui_strings.xml +47 -0
  125. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_content_strings.xml +15 -0
  126. data/libs/crosswalk/ext/platform/android/adds/res/values-fa/android_ui_strings.xml +47 -0
  127. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_content_strings.xml +15 -0
  128. data/libs/crosswalk/ext/platform/android/adds/res/values-fi/android_ui_strings.xml +47 -0
  129. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_content_strings.xml +15 -0
  130. data/libs/crosswalk/ext/platform/android/adds/res/values-fr/android_ui_strings.xml +47 -0
  131. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_content_strings.xml +15 -0
  132. data/libs/crosswalk/ext/platform/android/adds/res/values-hi/android_ui_strings.xml +47 -0
  133. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_content_strings.xml +15 -0
  134. data/libs/crosswalk/ext/platform/android/adds/res/values-hr/android_ui_strings.xml +47 -0
  135. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_content_strings.xml +15 -0
  136. data/libs/crosswalk/ext/platform/android/adds/res/values-hu/android_ui_strings.xml +47 -0
  137. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_content_strings.xml +15 -0
  138. data/libs/crosswalk/ext/platform/android/adds/res/values-in/android_ui_strings.xml +47 -0
  139. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_content_strings.xml +15 -0
  140. data/libs/crosswalk/ext/platform/android/adds/res/values-it/android_ui_strings.xml +47 -0
  141. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_content_strings.xml +15 -0
  142. data/libs/crosswalk/ext/platform/android/adds/res/values-iw/android_ui_strings.xml +47 -0
  143. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_content_strings.xml +15 -0
  144. data/libs/crosswalk/ext/platform/android/adds/res/values-ja/android_ui_strings.xml +47 -0
  145. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_content_strings.xml +15 -0
  146. data/libs/crosswalk/ext/platform/android/adds/res/values-ko/android_ui_strings.xml +47 -0
  147. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_content_strings.xml +15 -0
  148. data/libs/crosswalk/ext/platform/android/adds/res/values-lt/android_ui_strings.xml +47 -0
  149. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_content_strings.xml +15 -0
  150. data/libs/crosswalk/ext/platform/android/adds/res/values-lv/android_ui_strings.xml +47 -0
  151. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_content_strings.xml +15 -0
  152. data/libs/crosswalk/ext/platform/android/adds/res/values-nb/android_ui_strings.xml +47 -0
  153. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_content_strings.xml +15 -0
  154. data/libs/crosswalk/ext/platform/android/adds/res/values-nl/android_ui_strings.xml +47 -0
  155. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_content_strings.xml +15 -0
  156. data/libs/crosswalk/ext/platform/android/adds/res/values-pl/android_ui_strings.xml +47 -0
  157. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_content_strings.xml +15 -0
  158. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rBR/android_ui_strings.xml +47 -0
  159. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_content_strings.xml +15 -0
  160. data/libs/crosswalk/ext/platform/android/adds/res/values-pt-rPT/android_ui_strings.xml +47 -0
  161. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_content_strings.xml +15 -0
  162. data/libs/crosswalk/ext/platform/android/adds/res/values-ro/android_ui_strings.xml +47 -0
  163. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_content_strings.xml +15 -0
  164. data/libs/crosswalk/ext/platform/android/adds/res/values-ru/android_ui_strings.xml +47 -0
  165. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_content_strings.xml +15 -0
  166. data/libs/crosswalk/ext/platform/android/adds/res/values-sk/android_ui_strings.xml +47 -0
  167. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_content_strings.xml +15 -0
  168. data/libs/crosswalk/ext/platform/android/adds/res/values-sl/android_ui_strings.xml +47 -0
  169. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_content_strings.xml +15 -0
  170. data/libs/crosswalk/ext/platform/android/adds/res/values-sr/android_ui_strings.xml +47 -0
  171. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_content_strings.xml +15 -0
  172. data/libs/crosswalk/ext/platform/android/adds/res/values-sv/android_ui_strings.xml +47 -0
  173. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_content_strings.xml +15 -0
  174. data/libs/crosswalk/ext/platform/android/adds/res/values-sw/android_ui_strings.xml +47 -0
  175. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_content_strings.xml +15 -0
  176. data/libs/crosswalk/ext/platform/android/adds/res/values-th/android_ui_strings.xml +47 -0
  177. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_content_strings.xml +15 -0
  178. data/libs/crosswalk/ext/platform/android/adds/res/values-tl/android_ui_strings.xml +47 -0
  179. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_content_strings.xml +15 -0
  180. data/libs/crosswalk/ext/platform/android/adds/res/values-tr/android_ui_strings.xml +47 -0
  181. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_content_strings.xml +15 -0
  182. data/libs/crosswalk/ext/platform/android/adds/res/values-uk/android_ui_strings.xml +47 -0
  183. data/libs/crosswalk/ext/platform/android/adds/res/values-v14/theme.xml +16 -0
  184. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/styles.xml +19 -0
  185. data/libs/crosswalk/ext/platform/android/adds/res/values-v17/ui_java_styles.xml +41 -0
  186. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/styles.xml +14 -0
  187. data/libs/crosswalk/ext/platform/android/adds/res/values-v21/ui_java_styles.xml +14 -0
  188. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_content_strings.xml +15 -0
  189. data/libs/crosswalk/ext/platform/android/adds/res/values-vi/android_ui_strings.xml +47 -0
  190. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_content_strings.xml +15 -0
  191. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rCN/android_ui_strings.xml +47 -0
  192. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_content_strings.xml +15 -0
  193. data/libs/crosswalk/ext/platform/android/adds/res/values-zh-rTW/android_ui_strings.xml +47 -0
  194. data/libs/crosswalk/ext/platform/android/adds/res/values/android_content_strings.xml +15 -0
  195. data/libs/crosswalk/ext/platform/android/adds/res/values/android_ui_strings.xml +47 -0
  196. data/libs/crosswalk/ext/platform/android/adds/res/values/android_xwalk_strings.xml +17 -0
  197. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_attrs.xml +9 -0
  198. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_dimens.xml +31 -0
  199. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_strings.xml +16 -0
  200. data/libs/crosswalk/ext/platform/android/adds/res/values/ui_java_styles.xml +101 -0
  201. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_app_strings.xml +28 -0
  202. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_attrs.xml +11 -0
  203. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_colors.xml +13 -0
  204. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_internal_java_strings.xml +16 -0
  205. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_core_java_strings.xml +16 -0
  206. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_dimens.xml +11 -0
  207. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_resources_list.xml +7 -0
  208. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_styles.xml +40 -0
  209. data/libs/crosswalk/ext/platform/android/adds/res/values/xwalk_values.xml +10 -0
  210. data/libs/crosswalk/ext/platform/android/ext_java.files +14 -0
  211. data/libs/crosswalk/ext/platform/android/ext_native.files +7 -0
  212. data/libs/crosswalk/ext/platform/android/jni/Crosswalk_impl.cpp +61 -0
  213. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/Crosswalk.java +14 -0
  214. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkFactory.java +18 -0
  215. data/libs/crosswalk/ext/platform/android/src/com/rho/crosswalk/CrosswalkSingleton.java +24 -0
  216. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/CrosswalkExtension.java +16 -0
  217. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/RhodesListener.java +18 -0
  218. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWResourceClient.java +182 -0
  219. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWUIClient.java +125 -0
  220. data/libs/crosswalk/ext/platform/android/src/com/tautechnologies/tau/crosswalk/TauXWalkWebView.java +368 -0
  221. data/libs/crosswalk/ext/platform/iphone/Crosswalk.xcodeproj/project.pbxproj +368 -0
  222. data/libs/crosswalk/ext/platform/iphone/Crosswalk_Prefix.pch +7 -0
  223. data/libs/crosswalk/ext/platform/iphone/Rakefile +73 -0
  224. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.h +14 -0
  225. data/libs/crosswalk/ext/platform/iphone/impl/Crosswalk.m +24 -0
  226. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkFactorySingleton.m +16 -0
  227. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSetup.m +9 -0
  228. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.h +17 -0
  229. data/libs/crosswalk/ext/platform/iphone/impl/CrosswalkSingleton.m +23 -0
  230. data/libs/crosswalk/ext/platform/iphone/impl/readme.txt +7 -0
  231. data/libs/crosswalk/ext/platform/qt/Crosswalk.pro +66 -0
  232. data/libs/crosswalk/ext/platform/qt/Rakefile +35 -0
  233. data/libs/crosswalk/ext/platform/qt/src/Crosswalk_impl.cpp +77 -0
  234. data/libs/crosswalk/ext/platform/wm/Crosswalk.sln +52 -0
  235. data/libs/crosswalk/ext/platform/wm/Crosswalk.vcproj +714 -0
  236. data/libs/crosswalk/ext/platform/wm/Crosswalk.vsprops +15 -0
  237. data/libs/crosswalk/ext/platform/wm/src/Crosswalk_impl.cpp +77 -0
  238. data/libs/crosswalk/ext/platform/wp8/Crosswalk.props +18 -0
  239. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj +170 -0
  240. data/libs/crosswalk/ext/platform/wp8/Crosswalk.vcxproj.filters +50 -0
  241. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.csproj +119 -0
  242. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.props +8 -0
  243. data/libs/crosswalk/ext/platform/wp8/CrosswalkImpl.targets +7 -0
  244. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.props +18 -0
  245. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj +185 -0
  246. data/libs/crosswalk/ext/platform/wp8/CrosswalkLib.vcxproj.filters +58 -0
  247. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cpp +76 -0
  248. data/libs/crosswalk/ext/platform/wp8/src/Crosswalk_impl.cs +69 -0
  249. data/libs/crosswalk/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  250. data/libs/enterprise-barcode/ext.yml +13 -0
  251. data/libs/enterprise-barcode/ext/barcode.xml +2144 -0
  252. data/libs/enterprise-barcode/ext/build +17 -0
  253. data/libs/enterprise-barcode/ext/build.bat +29 -0
  254. data/libs/enterprise-barcode/ext/platform/android/AndroidManifest.xml +31 -0
  255. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/AUTHORS +58 -0
  256. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/CHANGES +266 -0
  257. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/COPYING +201 -0
  258. data/libs/enterprise-barcode/ext/platform/android/ZXing_Info/README +11 -0
  259. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/cancel_icon.png +0 -0
  260. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/ok_icon.png +0 -0
  261. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable-hdpi/retake_icon.png +0 -0
  262. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/cancel_icon.png +0 -0
  263. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/ok_icon.png +0 -0
  264. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/drawable/retake_icon.png +0 -0
  265. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/layout/capture.xml +122 -0
  266. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/raw/beep.ogg +0 -0
  267. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/attrs.xml +20 -0
  268. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/colors.xml +42 -0
  269. data/libs/enterprise-barcode/ext/platform/android/additional_files/res/values/ids.xml +31 -0
  270. data/libs/enterprise-barcode/ext/platform/android/adds/lib/armeabi/liballbarcode.a +0 -0
  271. data/libs/enterprise-barcode/ext/platform/android/adds/lib/x86/liballbarcode.a +0 -0
  272. data/libs/enterprise-barcode/ext/platform/android/allbarcode.jar +0 -0
  273. data/libs/enterprise-barcode/ext/platform/iphone/Barcode.xcodeproj/project.pbxproj +524 -0
  274. data/libs/enterprise-barcode/ext/platform/iphone/Barcode_Prefix.pch +7 -0
  275. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.h +27 -0
  276. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeCallbackHelper.mm +231 -0
  277. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.h +95 -0
  278. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewController.m +1017 -0
  279. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.h +7 -0
  280. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactory.mm +58 -0
  281. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewFactoryRegister.mm +18 -0
  282. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.h +16 -0
  283. data/libs/enterprise-barcode/ext/platform/iphone/Classes/BarcodeViewManager.mm +32 -0
  284. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.cpp +25 -0
  285. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.h +15 -0
  286. data/libs/enterprise-barcode/ext/platform/iphone/Classes/ImageProvider.mm +159 -0
  287. data/libs/enterprise-barcode/ext/platform/iphone/Classes/barcode.m +123 -0
  288. data/libs/enterprise-barcode/ext/platform/iphone/Rakefile +69 -0
  289. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/COPYING +27 -0
  290. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h +45 -0
  291. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +111 -0
  292. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h +60 -0
  293. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImage.h +69 -0
  294. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h +51 -0
  295. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h +142 -0
  296. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +135 -0
  297. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +130 -0
  298. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +34 -0
  299. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h +71 -0
  300. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +1497 -0
  301. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +202 -0
  302. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Exception.h +187 -0
  303. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Image.h +321 -0
  304. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h +130 -0
  305. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Processor.h +223 -0
  306. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h +162 -0
  307. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +528 -0
  308. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Video.h +170 -0
  309. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Window.h +136 -0
  310. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/LICENSE +504 -0
  311. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/README +59 -0
  312. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-back.png +0 -0
  313. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-help.html +88 -0
  314. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-helpicons.png +0 -0
  315. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/Resources/zbar-samples.png +0 -0
  316. data/libs/enterprise-barcode/ext/platform/iphone/ZBarSDK/libzbar.a +0 -0
  317. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.h +21 -0
  318. data/libs/enterprise-barcode/ext/platform/iphone/impl/Barcode.m +132 -0
  319. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.h +10 -0
  320. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactory.m +16 -0
  321. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeFactorySingleton.m +16 -0
  322. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSetup.m +8 -0
  323. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.h +17 -0
  324. data/libs/enterprise-barcode/ext/platform/iphone/impl/BarcodeSingleton.m +22 -0
  325. data/libs/enterprise-barcode/ext/platform/iphone/impl/readme.txt +7 -0
  326. data/libs/enterprise-barcode/ext/platform/wm/Barcode.sln +44 -0
  327. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vcproj +836 -0
  328. data/libs/enterprise-barcode/ext/platform/wm/Barcode.vsprops +15 -0
  329. data/libs/enterprise-barcode/ext/platform/wm/readme.txt +0 -0
  330. data/libs/enterprise-barcode/ext/platform/wm/src/Barcode_impl.cpp +376 -0
  331. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.cpp +173 -0
  332. data/libs/enterprise-barcode/ext/platform/wm/src/DecodeNotifier.h +149 -0
  333. data/libs/enterprise-barcode/ext/platform/wm/src/EMDKInterfaceAbstraction.cpp +476 -0
  334. data/libs/enterprise-barcode/ext/platform/wm/src/GetDecoderProperties.cpp +1195 -0
  335. data/libs/enterprise-barcode/ext/platform/wm/src/GetScannerProperties.cpp +553 -0
  336. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.cpp +177 -0
  337. data/libs/enterprise-barcode/ext/platform/wm/src/KeyInjector.h +40 -0
  338. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.cpp +76 -0
  339. data/libs/enterprise-barcode/ext/platform/wm/src/NotificationLoader.h +44 -0
  340. data/libs/enterprise-barcode/ext/platform/wm/src/RSM.cpp +1211 -0
  341. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.cpp +2609 -0
  342. data/libs/enterprise-barcode/ext/platform/wm/src/Scanner.h +1099 -0
  343. data/libs/enterprise-barcode/ext/platform/wm/src/ScannerDefines.h +322 -0
  344. data/libs/enterprise-barcode/ext/platform/wm/src/SetDecoderProperties.cpp +2106 -0
  345. data/libs/enterprise-barcode/ext/platform/wm/src/SetScannerProperties.cpp +1060 -0
  346. data/libs/enterprise-barcode/ext/platform/wm/src/Utilities.cpp +184 -0
  347. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.csproj +119 -0
  348. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.props +8 -0
  349. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeImpl.targets +35 -0
  350. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.props +18 -0
  351. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj +185 -0
  352. data/libs/enterprise-barcode/ext/platform/wp8/BarcodeLib.vcxproj.filters +58 -0
  353. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.dll +0 -0
  354. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.winmd +0 -0
  355. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.Graphics.Imaging.xml +4813 -0
  356. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  357. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  358. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  359. data/libs/enterprise-barcode/ext/platform/wp8/lib/ARM/OpticalReaderLib.dll +0 -0
  360. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.XML +68 -0
  361. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib.dll +0 -0
  362. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.csproj +120 -0
  363. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/BarcodeReaderLib.sln +34 -0
  364. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml +32 -0
  365. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/CameraNavigatePage.xaml.cs +235 -0
  366. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/OpticalReaderTask.cs +182 -0
  367. data/libs/enterprise-barcode/ext/platform/wp8/lib/BarcodeReaderLib/Properties/AssemblyInfo.cs +37 -0
  368. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.dll +0 -0
  369. data/libs/enterprise-barcode/ext/platform/wp8/lib/Nokia.Graphics.Imaging.Managed.xml +341 -0
  370. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.dll +0 -0
  371. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.winmd +0 -0
  372. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.Graphics.Imaging.xml +4813 -0
  373. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.dll +0 -0
  374. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.winmd +0 -0
  375. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/Nokia.InteropServices.WindowsRuntime.xml +41 -0
  376. data/libs/enterprise-barcode/ext/platform/wp8/lib/x86/OpticalReaderLib.dll +0 -0
  377. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.XML +10324 -0
  378. data/libs/enterprise-barcode/ext/platform/wp8/lib/zxing.wp8.0.dll +0 -0
  379. data/libs/enterprise-barcode/ext/platform/wp8/src/Barcode_impl.cs +630 -0
  380. data/libs/enterprise-barcode/ext/platform/wp8/src/Properties/AssemblyInfo.cs +37 -0
  381. data/libs/enterprise-barcode/public/api/generated/Rho.Barcode.js +772 -0
  382. data/libs/ie/rhobrowser.dll +0 -0
  383. data/libs/nodejs.rb +2 -0
  384. data/libs/nodejs/ext.yml +25 -0
  385. data/libs/nodejs/ext/Nodejs.xml +37 -0
  386. data/libs/nodejs/ext/build +19 -0
  387. data/libs/nodejs/ext/build.bat +29 -0
  388. data/libs/nodejs/ext/platform/android/Rakefile +161 -0
  389. data/libs/nodejs/ext/platform/android/ext_native.files +8 -0
  390. data/libs/nodejs/ext/platform/android/jxCore/jx.h +134 -0
  391. data/libs/nodejs/ext/platform/android/jxCore/jx_result.h +221 -0
  392. data/libs/nodejs/ext/platform/android/jxCore/libcares_arm.a +0 -0
  393. data/libs/nodejs/ext/platform/android/jxCore/libcares_ia32.a +0 -0
  394. data/libs/nodejs/ext/platform/android/jxCore/libcares_x64.a +0 -0
  395. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_arm.a +0 -0
  396. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_ia32.a +0 -0
  397. data/libs/nodejs/ext/platform/android/jxCore/libchrome_zlib_x64.a +0 -0
  398. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_arm.a +0 -0
  399. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_ia32.a +0 -0
  400. data/libs/nodejs/ext/platform/android/jxCore/libhttp_parser_x64.a +0 -0
  401. data/libs/nodejs/ext/platform/android/jxCore/libjx_arm.a +0 -0
  402. data/libs/nodejs/ext/platform/android/jxCore/libjx_ia32.a +0 -0
  403. data/libs/nodejs/ext/platform/android/jxCore/libjx_x64.a +0 -0
  404. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_arm.a +0 -0
  405. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_ia32.a +0 -0
  406. data/libs/nodejs/ext/platform/android/jxCore/libopenssl_x64.a +0 -0
  407. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_arm.a +0 -0
  408. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_ia32.a +0 -0
  409. data/libs/nodejs/ext/platform/android/jxCore/libsqlite3_x64.a +0 -0
  410. data/libs/nodejs/ext/platform/android/jxCore/libuv_arm.a +0 -0
  411. data/libs/nodejs/ext/platform/android/jxCore/libuv_ia32.a +0 -0
  412. data/libs/nodejs/ext/platform/android/jxCore/libuv_x64.a +0 -0
  413. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_arm.a +0 -0
  414. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_ia32.a +0 -0
  415. data/libs/nodejs/ext/platform/android/jxCore/libv8_base_x64.a +0 -0
  416. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_arm.a +0 -0
  417. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_ia32.a +0 -0
  418. data/libs/nodejs/ext/platform/android/jxCore/libv8_nosnapshot_x64.a +0 -0
  419. data/libs/nodejs/ext/platform/iphone/Nodejs.xcodeproj/project.pbxproj +350 -0
  420. data/libs/nodejs/ext/platform/iphone/Nodejs_Prefix.pch +7 -0
  421. data/libs/nodejs/ext/platform/iphone/Rakefile +73 -0
  422. data/libs/nodejs/ext/platform/iphone/jxCore/jx.h +134 -0
  423. data/libs/nodejs/ext/platform/iphone/jxCore/jx_result.h +221 -0
  424. data/libs/nodejs/ext/platform/iphone/jxCore/libcares.a +0 -0
  425. data/libs/nodejs/ext/platform/iphone/jxCore/libchrome_zlib.a +0 -0
  426. data/libs/nodejs/ext/platform/iphone/jxCore/libhttp_parser.a +0 -0
  427. data/libs/nodejs/ext/platform/iphone/jxCore/libjx.a +0 -0
  428. data/libs/nodejs/ext/platform/iphone/jxCore/libmozjs.a +0 -0
  429. data/libs/nodejs/ext/platform/iphone/jxCore/libopenssl.a +0 -0
  430. data/libs/nodejs/ext/platform/iphone/jxCore/libsqlite3.a +0 -0
  431. data/libs/nodejs/ext/platform/iphone/jxCore/libuv.a +0 -0
  432. data/libs/nodejs/ext/shared/jxcore/jx.h +134 -0
  433. data/libs/nodejs/ext/shared/jxcore/jx_result.h +221 -0
  434. data/libs/nodejs/ext/shared/jxcoretau.cpp +454 -0
  435. data/libs/nodejs/ext/shared/jxcoretau.h +20 -0
  436. data/libs/nodejs/ext/shared/nodejs_impl.cpp +106 -0
  437. data/libs/nodejs/nodejs.rb +2 -0
  438. data/libs/openssl-edge.rb +2 -0
  439. data/libs/openssl-edge/ext.yml +4 -0
  440. data/libs/openssl-edge/ext/Rakefile +145 -0
  441. data/libs/openssl-edge/ext/android/Rakefile +107 -0
  442. data/libs/openssl-edge/ext/android/ext_native.files +32 -0
  443. data/libs/openssl-edge/ext/android/extconf.h +91 -0
  444. data/libs/openssl-edge/ext/build +12 -0
  445. data/libs/openssl-edge/ext/build.bat +5 -0
  446. data/libs/openssl-edge/ext/extconf.rb +141 -0
  447. data/libs/openssl-edge/ext/openssl.pro +109 -0
  448. data/libs/openssl-edge/ext/openssl.sln +52 -0
  449. data/libs/openssl-edge/ext/openssl.vcproj +1010 -0
  450. data/libs/openssl-edge/ext/openssl_missing.c +1163 -0
  451. data/libs/openssl-edge/ext/openssl_missing.h +537 -0
  452. data/libs/openssl-edge/ext/ossl.c +1203 -0
  453. data/libs/openssl-edge/ext/ossl.h +242 -0
  454. data/libs/openssl-edge/ext/ossl_asn1.c +2008 -0
  455. data/libs/openssl-edge/ext/ossl_asn1.h +66 -0
  456. data/libs/openssl-edge/ext/ossl_bio.c +118 -0
  457. data/libs/openssl-edge/ext/ossl_bio.h +19 -0
  458. data/libs/openssl-edge/ext/ossl_bn.c +1153 -0
  459. data/libs/openssl-edge/ext/ossl_bn.h +23 -0
  460. data/libs/openssl-edge/ext/ossl_cipher.c +1085 -0
  461. data/libs/openssl-edge/ext/ossl_cipher.h +20 -0
  462. data/libs/openssl-edge/ext/ossl_config.c +89 -0
  463. data/libs/openssl-edge/ext/ossl_config.h +19 -0
  464. data/libs/openssl-edge/ext/ossl_digest.c +453 -0
  465. data/libs/openssl-edge/ext/ossl_digest.h +20 -0
  466. data/libs/openssl-edge/ext/ossl_engine.c +580 -0
  467. data/libs/openssl-edge/ext/ossl_engine.h +19 -0
  468. data/libs/openssl-edge/ext/ossl_hmac.c +398 -0
  469. data/libs/openssl-edge/ext/ossl_hmac.h +18 -0
  470. data/libs/openssl-edge/ext/ossl_ns_spki.c +406 -0
  471. data/libs/openssl-edge/ext/ossl_ns_spki.h +19 -0
  472. data/libs/openssl-edge/ext/ossl_ocsp.c +2013 -0
  473. data/libs/openssl-edge/ext/ossl_ocsp.h +23 -0
  474. data/libs/openssl-edge/ext/ossl_pkcs12.c +261 -0
  475. data/libs/openssl-edge/ext/ossl_pkcs12.h +13 -0
  476. data/libs/openssl-edge/ext/ossl_pkcs5.c +180 -0
  477. data/libs/openssl-edge/ext/ossl_pkcs5.h +6 -0
  478. data/libs/openssl-edge/ext/ossl_pkcs7.c +1157 -0
  479. data/libs/openssl-edge/ext/ossl_pkcs7.h +20 -0
  480. data/libs/openssl-edge/ext/ossl_pkey.c +469 -0
  481. data/libs/openssl-edge/ext/ossl_pkey.h +245 -0
  482. data/libs/openssl-edge/ext/ossl_pkey_dh.c +650 -0
  483. data/libs/openssl-edge/ext/ossl_pkey_dsa.c +672 -0
  484. data/libs/openssl-edge/ext/ossl_pkey_ec.c +1806 -0
  485. data/libs/openssl-edge/ext/ossl_pkey_rsa.c +768 -0
  486. data/libs/openssl-edge/ext/ossl_rand.c +238 -0
  487. data/libs/openssl-edge/ext/ossl_rand.h +18 -0
  488. data/libs/openssl-edge/ext/ossl_ssl.c +2724 -0
  489. data/libs/openssl-edge/ext/ossl_ssl.h +41 -0
  490. data/libs/openssl-edge/ext/ossl_ssl_session.c +352 -0
  491. data/libs/openssl-edge/ext/ossl_version.h +15 -0
  492. data/libs/openssl-edge/ext/ossl_x509.c +186 -0
  493. data/libs/openssl-edge/ext/ossl_x509.h +119 -0
  494. data/libs/openssl-edge/ext/ossl_x509attr.c +328 -0
  495. data/libs/openssl-edge/ext/ossl_x509cert.c +863 -0
  496. data/libs/openssl-edge/ext/ossl_x509crl.c +565 -0
  497. data/libs/openssl-edge/ext/ossl_x509ext.c +480 -0
  498. data/libs/openssl-edge/ext/ossl_x509name.c +547 -0
  499. data/libs/openssl-edge/ext/ossl_x509req.c +492 -0
  500. data/libs/openssl-edge/ext/ossl_x509revoked.c +279 -0
  501. data/libs/openssl-edge/ext/ossl_x509store.c +846 -0
  502. data/libs/openssl-edge/ext/ruby_missing.h +32 -0
  503. data/libs/openssl-edge/openssl-edge.rb +2 -0
  504. data/libs/openssl-edge/openssl.rb +24 -0
  505. data/libs/openssl-edge/openssl/bn.rb +35 -0
  506. data/libs/openssl-edge/openssl/buffering.rb +341 -0
  507. data/libs/openssl-edge/openssl/cipher.rb +65 -0
  508. data/libs/openssl-edge/openssl/digest.rb +61 -0
  509. data/libs/openssl-edge/openssl/ssl-internal.rb +180 -0
  510. data/libs/openssl-edge/openssl/ssl.rb +1 -0
  511. data/libs/openssl-edge/openssl/x509-internal.rb +153 -0
  512. data/libs/openssl-edge/openssl/x509.rb +1 -0
  513. data/libs/openssl.so-edge.rb +2 -0
  514. data/libs/openssl.so-edge/ext.yml +8 -0
  515. data/libs/openssl.so-edge/ext/Rakefile +140 -0
  516. data/libs/openssl.so-edge/ext/android/armeabi/libcrypto.a +0 -0
  517. data/libs/openssl.so-edge/ext/android/armeabi/libssl.a +0 -0
  518. data/libs/openssl.so-edge/ext/android/x86/libcrypto.a +0 -0
  519. data/libs/openssl.so-edge/ext/android/x86/libssl.a +0 -0
  520. data/libs/openssl.so-edge/ext/build +12 -0
  521. data/libs/openssl.so-edge/ext/build.bat +1 -0
  522. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dh/dh_locl.h +56 -0
  523. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/dsa/dsa_locl.h +76 -0
  524. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/evp/evp_locl.h +66 -0
  525. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/hmac/hmac_lcl.h +33 -0
  526. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/asn1_int.h +94 -0
  527. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/async.h +14 -0
  528. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_conf.h +28 -0
  529. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_dh.h +17 -0
  530. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_int.h +82 -0
  531. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/bn_srp.h +32 -0
  532. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/chacha.h +49 -0
  533. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib.h +81 -0
  534. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/cryptlib_int.h +31 -0
  535. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/dso_conf.h +16 -0
  536. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/engine.h +20 -0
  537. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/err_int.h +17 -0
  538. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/evp_int.h +382 -0
  539. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/md32_common.h +383 -0
  540. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/objects.h +12 -0
  541. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/poly1305.h +19 -0
  542. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/rand.h +20 -0
  543. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/include/internal/x509_int.h +267 -0
  544. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/ocsp/ocsp_lcl.h +216 -0
  545. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/rsa/rsa_locl.h +96 -0
  546. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/crypto/x509/x509_lcl.h +142 -0
  547. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/e_os.h +520 -0
  548. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/bio.h +26 -0
  549. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/comp.h +12 -0
  550. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/conf.h +32 -0
  551. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/constant_time_locl.h +185 -0
  552. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dane.h +103 -0
  553. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/dso.h +216 -0
  554. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/err.h +15 -0
  555. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/numbers.h +68 -0
  556. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_dir.h +63 -0
  557. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/o_str.h +17 -0
  558. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/internal/thread_once.h +42 -0
  559. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_EPILOGUE.H +16 -0
  560. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/__DECC_INCLUDE_PROLOGUE.H +20 -0
  561. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/aes.h +92 -0
  562. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1.h +1096 -0
  563. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1_mac.h +10 -0
  564. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/asn1t.h +924 -0
  565. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/async.h +98 -0
  566. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bio.h +854 -0
  567. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/blowfish.h +61 -0
  568. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/bn.h +575 -0
  569. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/buffer.h +76 -0
  570. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/camellia.h +83 -0
  571. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cast.h +53 -0
  572. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cmac.h +41 -0
  573. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/cms.h +512 -0
  574. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/comp.h +72 -0
  575. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf.h +216 -0
  576. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/conf_api.h +40 -0
  577. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/crypto.h +463 -0
  578. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ct.h +518 -0
  579. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/des.h +174 -0
  580. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dh.h +343 -0
  581. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dsa.h +282 -0
  582. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/dtls1.h +56 -0
  583. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/e_os2.h +311 -0
  584. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ebcdic.h +33 -0
  585. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ec.h +1581 -0
  586. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdh.h +10 -0
  587. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ecdsa.h +10 -0
  588. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/engine.h +842 -0
  589. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/err.h +259 -0
  590. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/evp.h +1586 -0
  591. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/hmac.h +49 -0
  592. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/idea.h +64 -0
  593. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/kdf.h +75 -0
  594. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/lhash.h +204 -0
  595. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md2.h +44 -0
  596. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md4.h +51 -0
  597. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/md5.h +50 -0
  598. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/mdc2.h +42 -0
  599. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/modes.h +203 -0
  600. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/obj_mac.h +4577 -0
  601. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/objects.h +1097 -0
  602. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ocsp.h +409 -0
  603. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h +169 -0
  604. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslconf.h.in +141 -0
  605. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/opensslv.h +105 -0
  606. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ossl_typ.h +190 -0
  607. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem.h +501 -0
  608. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pem2.h +20 -0
  609. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs12.h +282 -0
  610. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/pkcs7.h +404 -0
  611. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rand.h +89 -0
  612. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc2.h +51 -0
  613. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc4.h +36 -0
  614. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rc5.h +63 -0
  615. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ripemd.h +47 -0
  616. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/rsa.h +588 -0
  617. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/safestack.h +164 -0
  618. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/seed.h +98 -0
  619. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/sha.h +119 -0
  620. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srp.h +131 -0
  621. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/srtp.h +50 -0
  622. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl.h +2527 -0
  623. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl2.h +24 -0
  624. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ssl3.h +307 -0
  625. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/stack.h +78 -0
  626. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/symhacks.h +52 -0
  627. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/tls1.h +972 -0
  628. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ts.h +643 -0
  629. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/txt_db.h +57 -0
  630. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/ui.h +368 -0
  631. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/whrlpool.h +48 -0
  632. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509.h +1123 -0
  633. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509_vfy.h +539 -0
  634. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/openssl/x509v3.h +1005 -0
  635. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/packet_locl.h +555 -0
  636. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record.h +240 -0
  637. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/record/record_locl.h +114 -0
  638. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/ssl_locl.h +2127 -0
  639. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem.h +123 -0
  640. data/libs/openssl.so-edge/ext/openssl-1-1-0-stable/include/ssl/statem/statem_locl.h +124 -0
  641. data/libs/openssl.so-edge/openssl.so.rb +2 -0
  642. data/libs/webkit.rb +2 -0
  643. data/libs/webkit/ext.yml +4 -0
  644. data/libs/webkit/ext/build +12 -0
  645. data/libs/webkit/ext/build.bat +7 -0
  646. data/libs/webkit/ext/wm/Rakefile +61 -0
  647. data/libs/webkit/ext/wm/RhoMsgs.cpp +17 -0
  648. data/libs/webkit/ext/wm/RhoMsgs.h +14 -0
  649. data/libs/webkit/ext/wm/RhoWKBrowserEngine.cpp +736 -0
  650. data/libs/webkit/ext/wm/RhoWKBrowserEngine.h +105 -0
  651. data/libs/webkit/ext/wm/lib/npapi/rhobridge.dll +0 -0
  652. data/libs/webkit/ext/wm/lib/rhoengine_defs.h +80 -0
  653. data/libs/webkit/ext/wm/lib/rhowebkit.dll +0 -0
  654. data/libs/webkit/ext/wm/webkit.sln +36 -0
  655. data/libs/webkit/ext/wm/webkit.suo +0 -0
  656. data/libs/webkit/ext/wm/webkit.vcproj +800 -0
  657. data/libs/webkit/ext/wm/webkit.vsprops +20 -0
  658. data/libs/webkit/webkit.rb +2 -0
  659. data/rho-tau-extensions.gemspec +23 -0
  660. data/version +1 -0
  661. metadata +705 -0
@@ -0,0 +1,177 @@
1
+ #pragma once
2
+ #include "KeyInjector.h"
3
+ #include "sipapi.h"
4
+ #include "keybd.h"
5
+
6
+ CKeyInjector::CKeyInjector()
7
+ {}
8
+
9
+ CKeyInjector::~CKeyInjector()
10
+ {}
11
+
12
+
13
+ // Original Author: Dave Sheppard
14
+ // Original Date: 2/3/2005
15
+ void CKeyInjector::SendKey(TCHAR cKey)
16
+ {
17
+ BOOL bEscape = FALSE;
18
+ int nHex = 0;
19
+ BYTE bHex = 0;
20
+ BOOL bVirtual = FALSE;
21
+ const BYTE CharToVk[256] =
22
+ {
23
+ // 0 1 2 3 4 5 6 7 8 9 A B C D E F
24
+ /*0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x0D,0x00,0x00,
25
+ /*1*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x00,0x00,0x00,0x00,
26
+ /*2*/ 0x20,0x31,0xDE,0x33,0x34,0x35,0x37,0xDE,0x39,0x30,0x38,0xBB,0xBC,0xBD,0xBE,0xBF,
27
+ /*3*/ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xBA,0xBA,0xBC,0xBB,0xBE,0xBF,
28
+ /*4*/ 0x32,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
29
+ /*5*/ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xDB,0x5C,0xDD,0x36,0xBD,
30
+ /*6*/ 0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
31
+ /*7*/ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0xDB,0x5C,0xDD,0x60,0x60,
32
+ /*8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33
+ /*9*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34
+ /*A*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
35
+ /*B*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36
+ /*C*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37
+ /*D*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
38
+ /*E*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
39
+ /*F*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40
+ };
41
+
42
+ // Legacy
43
+ bool l_bEscape = FALSE;
44
+ if ( l_bEscape )
45
+ {
46
+ if ( cKey == ESCAPE_CHAR )
47
+ {
48
+ bEscape = !bEscape;
49
+
50
+ if ( bEscape )
51
+ {
52
+ return;
53
+ }
54
+ }
55
+ }
56
+
57
+ if ( bEscape )
58
+ {
59
+ bEscape = FALSE;
60
+ switch(cKey)
61
+ {
62
+ case TEXT('b'):
63
+ cKey = TEXT('\b');
64
+ break;
65
+ case TEXT('f'):
66
+ cKey = TEXT('\f');
67
+ break;
68
+ case TEXT('n'):
69
+ cKey = TEXT('\n');;
70
+ break;
71
+ case TEXT('r'):
72
+ cKey = TEXT('\r');;
73
+ break;
74
+ case TEXT('t'):
75
+ cKey = TEXT('\t');
76
+ break;
77
+ case TEXT('x'):
78
+ bVirtual = FALSE;
79
+ nHex = 1;
80
+ bHex = 0;
81
+ return;
82
+ case TEXT('v'):
83
+ bVirtual = TRUE;
84
+ nHex = 1;
85
+ bHex = 0;
86
+ return;
87
+ }
88
+ }
89
+
90
+ switch(nHex)
91
+ {
92
+ case 1:
93
+ case 2:
94
+ if ( iswxdigit(cKey) )
95
+ {
96
+ bHex *= 16;
97
+ if ( iswdigit(cKey) )
98
+ {
99
+ bHex += (BYTE) ( cKey & 0xF );
100
+ }
101
+ else
102
+ {
103
+ bHex += (BYTE)( ( cKey &0xF ) + 9 );
104
+ }
105
+
106
+ if ( nHex == 1 )
107
+ {
108
+ nHex++;
109
+ return;
110
+ }
111
+ else
112
+ {
113
+ nHex = 0;
114
+ cKey = (TCHAR)bHex;
115
+ break;
116
+ }
117
+ }
118
+
119
+ nHex = 0;
120
+ bVirtual = FALSE;
121
+ return;
122
+ default:
123
+ break;
124
+ }
125
+
126
+ if ( bVirtual )
127
+ {
128
+ UINT State1[1] = {KeyStateDownFlag|KeyShiftNoCharacterFlag};
129
+ UINT State2[1] = {KeyStateToggledFlag|KeyShiftNoCharacterFlag};
130
+ UINT Shift1[1] = {KeyStateDownFlag|KeyShiftNoCharacterFlag};
131
+ UINT Shift2[1] = {KeyShiftNoCharacterFlag};
132
+ UINT Key1[1] = {0};
133
+ UINT Key2[1] = {0};
134
+ BYTE bVK;
135
+ bVK = (BYTE)cKey;
136
+
137
+ PostKeybdMessage((HWND) -1, bVK, State1[0], 0, Shift1, Key1);
138
+ PostKeybdMessage((HWND) -1, bVK, State2[0], 0, Shift2, Key2);
139
+ }
140
+ else
141
+ {
142
+ UINT State1[1] = {KeyStateDownFlag};
143
+ UINT State2[1] = {KeyStateToggledFlag|KeyShiftNoCharacterFlag};
144
+ UINT Shift1[1] = {KeyStateDownFlag};
145
+ UINT Shift2[1] = {KeyShiftNoCharacterFlag};
146
+ UINT Key1[1] = {cKey};
147
+ UINT Key2[1] = {0};
148
+ BYTE bVK;
149
+
150
+ bVK = CharToVk[(BYTE)cKey];
151
+
152
+ PostKeybdMessage((HWND) -1, bVK, State1[0], 1, Shift1, Key1);
153
+ PostKeybdMessage((HWND) -1, bVK, State2[0], 1, Shift2, Key2);
154
+ }
155
+
156
+ bVirtual = FALSE;
157
+ }
158
+
159
+ // Original Author: Dave Sheppard
160
+ // Original Date: 2/3/2005
161
+ void CKeyInjector::SendString(LPCTSTR lpszString)
162
+ {
163
+ DWORD i;
164
+
165
+ HWND hWndFocus = GetForegroundWindow();
166
+
167
+ if ( lpszString == NULL )
168
+ {
169
+ return;
170
+ }
171
+
172
+ for(i=0;i<wcslen(lpszString);i++)
173
+ {
174
+ SendKey(lpszString[i]);
175
+ }
176
+ }
177
+
@@ -0,0 +1,40 @@
1
+ /**
2
+ * \file KeyInjector.h
3
+ * \brief Interface for the CKeyInjector class.
4
+ * This class provides gives the ability to inject keys into the operating system
5
+ * to allow 'Wedge' type behaviour.
6
+ * \author Darryn Campbell (DCC)
7
+ * \date January 2012 (DCC, Initial Port from RhoElements 1 Code)
8
+ */
9
+ #pragma once
10
+ #include <windows.h>
11
+ #define ESCAPE_CHAR L'\\' ///< Definition of the escape character
12
+
13
+
14
+ /**
15
+ * Class to inject keys into the operating system to allow 'Wedge' type behaviour.
16
+ * This class is a cut down version of the RhoElements 1.x CSIP.
17
+ * \author Darryn Campbell (DCC, JRQ768)
18
+ * \date January 2012, Initial Creation, DCC
19
+ */
20
+ class CKeyInjector
21
+ {
22
+ public:
23
+ CKeyInjector(); ///< Constructor, no implementation.
24
+ ~CKeyInjector(); ///< Destructor, no implementation.
25
+
26
+ /**
27
+ * Repeatedly calls the SendKey to send an entire data
28
+ * string to the keyboard buffer.
29
+ * \param lpszString String to send
30
+ */
31
+ void SendString(LPCTSTR lpszString);
32
+
33
+ /**
34
+ * Sends the Keystroke to the keyboard buffer. Used by the
35
+ * scanner to 'fake' keystrokes from the input device.
36
+ * \param cKey Key to send (character)
37
+ */
38
+ void SendKey(TCHAR cKey);
39
+
40
+ };
@@ -0,0 +1,76 @@
1
+ #include "NotificationLoader.h"
2
+
3
+ CBarcodeBeeper::CBarcodeBeeper()
4
+ {
5
+ m_hNotificationDLL = NULL;
6
+ lpfn_Notify_FindClose = NULL;
7
+ lpfn_Notify_FindFirst = NULL;
8
+ lpfn_Notify_FindNext = NULL;
9
+ lpfn_Notify_SetCycleInfo = NULL;
10
+ lpfn_Notify_GetCycleInfo = NULL;
11
+ lpfn_Notify_SetState = NULL;
12
+ lpfn_Notify_GetState = NULL;
13
+ }
14
+
15
+ CBarcodeBeeper::~CBarcodeBeeper()
16
+ {
17
+ UnloadNotificationDLL();
18
+ }
19
+
20
+ // Loading Notification DLL dynamically
21
+ BOOL CBarcodeBeeper::LoadNotificationDLL()
22
+ {
23
+ m_hNotificationDLL = LoadLibrary(NOTIFY_DLL);
24
+ if (!m_hNotificationDLL)
25
+ {
26
+ // Log(SCANNER_LOG_WARNING, L"Unable to load EMDK Notification driver, scanner will not support 'beeping'",
27
+ // _T(__FUNCTION__), __LINE__);
28
+ return FALSE;
29
+ }
30
+ // Map the function pointers to functions exported from the DLL
31
+ lpfn_Notify_FindClose = (LPFN_NOTIFY_FINDCLOSE_T)GetProcAddress
32
+ (m_hNotificationDLL, L"NOTIFY_FindClose");
33
+ lpfn_Notify_FindNext = (LPFN_NOTIFY_FINDNEXT_T)GetProcAddress
34
+ (m_hNotificationDLL, L"NOTIFY_FindNext");
35
+ lpfn_Notify_FindFirst = (LPFN_NOTIFY_FINDFIRST_T)GetProcAddress
36
+ (m_hNotificationDLL, L"NOTIFY_FindFirst");
37
+ lpfn_Notify_SetCycleInfo = (LPFN_NOTIFY_SETCYCLEINFO_T)GetProcAddress
38
+ (m_hNotificationDLL, L"NOTIFY_SetCycleInfo");
39
+ lpfn_Notify_GetCycleInfo = (LPFN_NOTIFY_GETCYCLEINFO_T)GetProcAddress
40
+ (m_hNotificationDLL, L"NOTIFY_GetCycleInfo");
41
+ lpfn_Notify_SetState = (LPFN_NOTIFY_SETSTATE_T)GetProcAddress
42
+ (m_hNotificationDLL, L"NOTIFY_SetState");
43
+ lpfn_Notify_GetState = (LPFN_NOTIFY_GETSTATE_T)GetProcAddress
44
+ (m_hNotificationDLL, L"NOTIFY_GetState");
45
+
46
+ if (lpfn_Notify_FindClose == NULL ||
47
+ lpfn_Notify_FindNext == NULL ||
48
+ lpfn_Notify_FindFirst == NULL ||
49
+ lpfn_Notify_SetCycleInfo== NULL ||
50
+ lpfn_Notify_GetCycleInfo== NULL ||
51
+ lpfn_Notify_SetState == NULL ||
52
+ lpfn_Notify_GetState == NULL)
53
+ {
54
+ m_hNotificationDLL = NULL;
55
+ return FALSE;
56
+ }
57
+ else
58
+ return TRUE;
59
+ }
60
+
61
+ BOOL CBarcodeBeeper::UnloadNotificationDLL()
62
+ {
63
+ if (m_hNotificationDLL)
64
+ {
65
+ FreeLibrary(m_hNotificationDLL);
66
+ m_hNotificationDLL = NULL;
67
+ lpfn_Notify_FindClose = NULL;
68
+ lpfn_Notify_FindNext = NULL;
69
+ lpfn_Notify_FindFirst = NULL;
70
+ lpfn_Notify_SetCycleInfo= NULL;
71
+ lpfn_Notify_GetCycleInfo= NULL;
72
+ lpfn_Notify_SetState = NULL;
73
+ lpfn_Notify_GetState = NULL;
74
+ }
75
+ return TRUE;
76
+ }
@@ -0,0 +1,44 @@
1
+ #pragma once
2
+ #include <windows.h>
3
+ #include "ntfycapi.h"
4
+
5
+ // Dynamically Loading the Notification DLL (This code is shared by the Scanner and
6
+ // Device / Application DLLs
7
+ // Definitions of Methods exported from the EMDK Notifications
8
+ #define NOTIFY_DLL L"NtfyAPI32.dll" ///< Name of the EMDK Notification Library
9
+ typedef DWORD (WINAPI* LPFN_NOTIFY_FINDCLOSE_T) (HANDLE);
10
+ typedef DWORD (WINAPI* LPFN_NOTIFY_FINDNEXT_T) (LPNOTIFY_FINDINFO lpNotifyFindInfo, HANDLE hFindHandle);
11
+ typedef DWORD (WINAPI* LPFN_NOTIFY_FINDFIRST_T) (LPNOTIFY_FINDINFO lpNotifyFindInfo, LPHANDLE lphFindHandle);
12
+ typedef DWORD (WINAPI* LPFN_NOTIFY_SETCYCLEINFO_T) (DWORD dwIndex, LPCYCLE_INFO lpCycleInfo);
13
+ typedef DWORD (WINAPI* LPFN_NOTIFY_GETCYCLEINFO_T) (DWORD dwIndex, LPCYCLE_INFO lpCycleInfo);
14
+ typedef DWORD (WINAPI* LPFN_NOTIFY_SETSTATE_T) (DWORD dwIndex, DWORD dwState);
15
+ typedef DWORD (WINAPI* LPFN_NOTIFY_GETSTATE_T) (DWORD dwIndex, LPDWORD lpdwState);
16
+
17
+ class CBarcodeBeeper
18
+ {
19
+ public:
20
+
21
+ HMODULE m_hNotificationDLL; ///< HMODULE of the loaded EMDK Notification DLL
22
+ LPFN_NOTIFY_FINDCLOSE_T lpfn_Notify_FindClose; ///< function pointer to EMDK Notify API
23
+ LPFN_NOTIFY_FINDFIRST_T lpfn_Notify_FindFirst; ///< function pointer to EMDK Notify API
24
+ LPFN_NOTIFY_FINDNEXT_T lpfn_Notify_FindNext; ///< function pointer to EMDK Notify API
25
+ LPFN_NOTIFY_SETCYCLEINFO_T lpfn_Notify_SetCycleInfo; ///< function pointer to EMDK Notify API
26
+ LPFN_NOTIFY_GETCYCLEINFO_T lpfn_Notify_GetCycleInfo; ///< function pointer to EMDK Notify API
27
+ LPFN_NOTIFY_SETSTATE_T lpfn_Notify_SetState; ///< function pointer to EMDK Notify API
28
+ LPFN_NOTIFY_GETSTATE_T lpfn_Notify_GetState; ///< function pointer to EMDK Notify API
29
+
30
+ CBarcodeBeeper();
31
+ ~CBarcodeBeeper();
32
+
33
+ /**
34
+ * The Scanner is dependant on the EMDK Notification API for generating
35
+ * good and bad decode 'beeps'. Load the Notification DLL dynamically
36
+ * to avoid catastrophic failure if we try and launch the scanner on
37
+ * a non-Symbol device (remember this DLL is loaded by the license
38
+ * screen and also in the default config's preloads)
39
+ * \return Whether or not the Notification DLL could be loaded
40
+ */
41
+ BOOL LoadNotificationDLL();
42
+ BOOL UnloadNotificationDLL();
43
+
44
+ };
@@ -0,0 +1,1211 @@
1
+ #pragma once
2
+
3
+ #include "Scanner.h"
4
+
5
+ #pragma region RSM_EMML_Parser
6
+
7
+ // Meta tag handler for RSM tags
8
+ BOOL CScanner::rsm_MetaProc(LPCTSTR szPropertyName, LPCTSTR szPropertyValue)
9
+ {
10
+ BOOL bRetVal;
11
+ // Consider the 'Set' methods
12
+ if (cmp(szPropertyName, L"rsmBluetoothAuthentication") &&
13
+ szPropertyValue && wcslen(szPropertyValue) > 0)
14
+ {
15
+ bRetVal = SetRSMValue(ATTR_BT_AUTHENTICATION, szPropertyValue);
16
+ }
17
+ else if (cmp(szPropertyName, L"rsmBluetoothEncryption") &&
18
+ szPropertyValue && wcslen(szPropertyValue) > 0)
19
+ {
20
+ bRetVal = SetRSMValue(ATTR_BT_ENCRYPTION, szPropertyValue);
21
+ }
22
+ else if (cmp(szPropertyName, L"rsmBluetoothPinCode") &&
23
+ szPropertyValue && wcslen(szPropertyValue) > 0)
24
+ {
25
+ bRetVal = SetRSMValue(ATTR_BT_PINCODE, szPropertyValue);
26
+ }
27
+ else if (cmp(szPropertyName, L"rsmBluetoothPinCodeType") &&
28
+ szPropertyValue && wcslen(szPropertyValue) > 0)
29
+ {
30
+ bRetVal = SetRSMValue(ATTR_PIN_CODE_TYPE, szPropertyValue);
31
+ }
32
+ else if (cmp(szPropertyName, L"rsmBluetoothReconnectionAttempts") &&
33
+ szPropertyValue && wcslen(szPropertyValue) > 0)
34
+ {
35
+ bRetVal = SetRSMValue(ATTR_RECONNECT_ATTEMPTS, szPropertyValue);
36
+ }
37
+ else if (cmp(szPropertyName, L"rsmBluetoothBeepOnReconnectAttempt") &&
38
+ szPropertyValue && wcslen(szPropertyValue) > 0)
39
+ {
40
+ bRetVal = SetRSMValue(ATTR_BEEP_ON_RECON_ATTEMPT, szPropertyValue);
41
+ }
42
+ else if (cmp(szPropertyName, L"rsmBluetoothHIDAutoReconnect") &&
43
+ szPropertyValue && wcslen(szPropertyValue) > 0)
44
+ {
45
+ bRetVal = SetRSMValue(ATTR_HID_AUTO_RECON, szPropertyValue);
46
+ }
47
+ else if (cmp(szPropertyName, L"rsmBluetoothFriendlyName") &&
48
+ szPropertyValue && wcslen(szPropertyValue) > 0)
49
+ {
50
+ bRetVal = SetRSMValue(ATTR_BT_FRIENDLY_NAME, szPropertyValue);
51
+ }
52
+ else if (cmp(szPropertyName, L"rsmBluetoothInquiryMode") &&
53
+ szPropertyValue && wcslen(szPropertyValue) > 0)
54
+ {
55
+ bRetVal = SetRSMValue(ATTR_BT_INQUIRY_MODE, szPropertyValue);
56
+ }
57
+ else if (cmp(szPropertyName, L"rsmBluetoothAutoReconnect") &&
58
+ szPropertyValue && wcslen(szPropertyValue) > 0)
59
+ {
60
+ bRetVal = SetRSMValue(ATTR_BLUETOOTH_AUTO_RECON, szPropertyValue);
61
+ }
62
+ else if (cmp(szPropertyName, L"rsmForceSavePairingBarcode") &&
63
+ szPropertyValue && wcslen(szPropertyValue) > 0)
64
+ {
65
+ bRetVal = SetRSMValue(ATTR_FORCE_PAIRING_SAVE, szPropertyValue);
66
+ }
67
+ else if (cmp(szPropertyName, L"rsmLowBatteryIndication") &&
68
+ szPropertyValue && wcslen(szPropertyValue) > 0)
69
+ {
70
+ bRetVal = SetRSMValue(ATTR_LOW_BATTERY_IND_EN, szPropertyValue);
71
+ }
72
+ else if (cmp(szPropertyName, L"rsmLowBatteryIndicationCycle") &&
73
+ szPropertyValue && wcslen(szPropertyValue) > 0)
74
+ {
75
+ bRetVal = SetRSMValue(ATTR_LOW_BATTERY_IND_CYCLE, szPropertyValue);
76
+ }
77
+ else if (cmp(szPropertyName, L"rsmScanLineWidth") &&
78
+ szPropertyValue && wcslen(szPropertyValue) > 0)
79
+ {
80
+ bRetVal = SetRSMValue(ATTR_SCANLINE_WIDTH, szPropertyValue);
81
+ }
82
+ else if (cmp(szPropertyName, L"rsmGoodScansDelay") &&
83
+ szPropertyValue && wcslen(szPropertyValue) > 0)
84
+ {
85
+ bRetVal = SetRSMValue(ATTR_GOOD_SCANS_DELAY, szPropertyValue);
86
+ }
87
+ else if (cmp(szPropertyName, L"rsmDecodeFeedback") &&
88
+ szPropertyValue && wcslen(szPropertyValue) > 0)
89
+ {
90
+ bRetVal = SetRSMValue(ATTR_DISABLE_GOOD_DECODE_LED_BEEP, szPropertyValue);
91
+ }
92
+ else if (cmp(szPropertyName, L"rsmIgnoreCode128USPS") &&
93
+ szPropertyValue && wcslen(szPropertyValue) > 0)
94
+ {
95
+ bRetVal = SetRSMValue(ATTR_EXCLUSIVE_CODE128_EN, szPropertyValue);
96
+ }
97
+ else if (cmp(szPropertyName, L"rsmScanTriggerWakeup") &&
98
+ szPropertyValue && wcslen(szPropertyValue) > 0)
99
+ {
100
+ bRetVal = SetRSMValue(ATTR_SCAN_TRIG_WAKEUP_EN, szPropertyValue);
101
+ }
102
+ else if (cmp(szPropertyName, L"rsmMems") &&
103
+ szPropertyValue && wcslen(szPropertyValue) > 0)
104
+ {
105
+ bRetVal = SetRSMValue(ATTR_MEMS_ENABLE, szPropertyValue);
106
+ }
107
+ else if (cmp(szPropertyName, L"rsmProximityEnable") &&
108
+ szPropertyValue && wcslen(szPropertyValue) > 0)
109
+ {
110
+ bRetVal = SetRSMValue(ATTR_PROXIMITY_ENABLE, szPropertyValue);
111
+ }
112
+ else if (cmp(szPropertyName, L"rsmProximityContinuous") &&
113
+ szPropertyValue && wcslen(szPropertyValue) > 0)
114
+ {
115
+ bRetVal = SetRSMValue(ATTR_PROXIMITY_CONTINUOUS_EN, szPropertyValue);
116
+ }
117
+ else if (cmp(szPropertyName, L"rsmProximityDistance") &&
118
+ szPropertyValue && wcslen(szPropertyValue) > 0)
119
+ {
120
+ bRetVal = SetRSMValue(ATTR_PROXIMITY_DISTANCE, szPropertyValue);
121
+ }
122
+ else if (cmp(szPropertyName, L"rsmPagingEnable") &&
123
+ szPropertyValue && wcslen(szPropertyValue) > 0)
124
+ {
125
+ bRetVal = SetRSMValue(ATTR_PAGING_ENABLE, szPropertyValue);
126
+ }
127
+ else if (cmp(szPropertyName, L"rsmPagingBeepSequence") &&
128
+ szPropertyValue && wcslen(szPropertyValue) > 0)
129
+ {
130
+ bRetVal = SetRSMValue(ATTR_PAGING_BEEP_SEQ, szPropertyValue);
131
+ }
132
+
133
+ if (!bRetVal)
134
+ {
135
+ // Failed to process RSM setting
136
+ WCHAR tcLog[MAXLOG];
137
+ if (szPropertyValue && wcslen(szPropertyValue) > 0)
138
+ {
139
+ wsprintf(tcLog, L"Unable to process RSM property with Parameter: %s and Value: %s",
140
+ szPropertyName, szPropertyValue);
141
+ }
142
+ else
143
+ {
144
+ wsprintf(tcLog, L"Unable to process RSM method with Parameter: %s",
145
+ szPropertyName);
146
+ }
147
+ LOG(WARNING) + tcLog;
148
+ }
149
+ return bRetVal;
150
+ }
151
+
152
+ BOOL CScanner::CommandRemoteScanner(const WCHAR* szCommand)
153
+ {
154
+ BOOL bRetVal = FALSE;
155
+ if (cmp(szCommand, L"StartPaging"))
156
+ {
157
+ bRetVal = SetRSMValue(ATTR_PAGING_ACTIVATE, L"Start");
158
+ }
159
+ else if (cmp(szCommand, L"StopPaging"))
160
+ {
161
+ bRetVal = SetRSMValue(ATTR_PAGING_ACTIVATE, L"Stop");
162
+ }
163
+ else if (cmp(szCommand, L"Disconnect"))
164
+ {
165
+ bRetVal = SetRSMValue(ATTR_BT_DISCONNECT, NULL);
166
+ }
167
+ else if (cmp(szCommand, L"Unpair"))
168
+ {
169
+ bRetVal = SetRSMValue(ATTR_BT_UNPAIR, NULL);
170
+ }
171
+
172
+ if (!bRetVal)
173
+ {
174
+ // Failed to process RSM setting
175
+ LOG(WARNING) + L"Unable to Command BT Scanner with instruction " + szCommand +
176
+ ", that command is unrecognised";
177
+ }
178
+ return bRetVal;
179
+ }
180
+
181
+ int CScanner::rsm_GetPropertyValue(LPCTSTR szPropertyName, WCHAR* szPropertyValue)
182
+ {
183
+ int iRetVal = -1;
184
+ RSM_ATTRIB rsmAttribute;
185
+ memset(&rsmAttribute, 0, sizeof(RSM_ATTRIB));
186
+ SI_INIT(&rsmAttribute);
187
+ if (cmp(szPropertyName, L"rsmModelNumber"))
188
+ {
189
+ rsmAttribute.eNumber = ATTR_MODEL_NUMBER;
190
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
191
+ }
192
+ else if (cmp(szPropertyName, L"rsmSerialNumber"))
193
+ {
194
+ rsmAttribute.eNumber = ATTR_SERIAL_NUMBER;
195
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
196
+ }
197
+ else if(cmp(szPropertyName, L"rsmDateOfManufacture"))
198
+ {
199
+ rsmAttribute.eNumber = ATTR_DATE_OF_MANUFACTURE;
200
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
201
+ }
202
+ else if (cmp(szPropertyName, L"rsmDateOfService"))
203
+ {
204
+ rsmAttribute.eNumber = ATTR_DATE_OF_SERVICE;
205
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
206
+ }
207
+ else if (cmp(szPropertyName, L"rsmBluetoothAddress"))
208
+ {
209
+ rsmAttribute.eNumber = ATTR_BT_ADDR;
210
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
211
+ }
212
+ else if (cmp(szPropertyName, L"rsmFirmwareVersion"))
213
+ {
214
+ rsmAttribute.eNumber = ATTR_FIRM_VERSION;
215
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
216
+ }
217
+ else if (cmp(szPropertyName, L"rsmDeviceClass"))
218
+ {
219
+ rsmAttribute.eNumber = ATTR_DEVICE_CLASS;
220
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
221
+ }
222
+ else if (cmp(szPropertyName, L"rsmBatteryStatus"))
223
+ {
224
+ rsmAttribute.eNumber = ATTR_BATTERY_STATUS;
225
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
226
+ }
227
+ else if (cmp(szPropertyName, L"rsmBatteryCapacity"))
228
+ {
229
+ rsmAttribute.eNumber = ATTR_BATTERY_CAPACITY;
230
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
231
+ }
232
+ else if (cmp(szPropertyName, L"rsmBatteryID"))
233
+ {
234
+ rsmAttribute.eNumber = ATTR_BATTERY_ID;
235
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
236
+ }
237
+ else if (cmp(szPropertyName, L"rsmBluetoothAuthentication"))
238
+ {
239
+ rsmAttribute.eNumber = ATTR_BT_AUTHENTICATION;
240
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
241
+ }
242
+ else if (cmp(szPropertyName, L"rsmBluetoothEncryption"))
243
+ {
244
+ rsmAttribute.eNumber = ATTR_BT_ENCRYPTION;
245
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
246
+ }
247
+ else if (cmp(szPropertyName, L"rsmBluetoothPINCode"))
248
+ {
249
+ rsmAttribute.eNumber = ATTR_BT_PINCODE;
250
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
251
+ }
252
+ else if (cmp(szPropertyName, L"rsmBluetoothPINCodeType"))
253
+ {
254
+ rsmAttribute.eNumber = ATTR_PIN_CODE_TYPE;
255
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
256
+ }
257
+ else if (cmp(szPropertyName, L"rsmBluetoothReconnectionAttempts"))
258
+ {
259
+ rsmAttribute.eNumber = ATTR_RECONNECT_ATTEMPTS;
260
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
261
+ }
262
+ else if (cmp(szPropertyName, L"rsmBluetoothBeepOnReconnectAttempt"))
263
+ {
264
+ rsmAttribute.eNumber = ATTR_BEEP_ON_RECON_ATTEMPT;
265
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
266
+ }
267
+ else if (cmp(szPropertyName, L"rsmBluetoothHIDAutoReconnect"))
268
+ {
269
+ rsmAttribute.eNumber = ATTR_HID_AUTO_RECON;
270
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
271
+ }
272
+ else if (cmp(szPropertyName, L"rsmBluetoothFriendlyName"))
273
+ {
274
+ rsmAttribute.eNumber = ATTR_BT_FRIENDLY_NAME;
275
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
276
+ }
277
+ else if (cmp(szPropertyName, L"rsmBluetoothInquiryMode"))
278
+ {
279
+ rsmAttribute.eNumber = ATTR_BT_INQUIRY_MODE;
280
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
281
+ }
282
+ else if (cmp(szPropertyName, L"rsmBluetoothAutoReconnect"))
283
+ {
284
+ rsmAttribute.eNumber = ATTR_BLUETOOTH_AUTO_RECON;
285
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
286
+ }
287
+ else if (cmp(szPropertyName, L"rsmForceSavePairingBarcode"))
288
+ {
289
+ rsmAttribute.eNumber = ATTR_FORCE_PAIRING_SAVE;
290
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
291
+ }
292
+ else if (cmp(szPropertyName, L"rsmLowBatteryIndication"))
293
+ {
294
+ rsmAttribute.eNumber = ATTR_LOW_BATTERY_IND_EN;
295
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
296
+ }
297
+ else if (cmp(szPropertyName, L"rsmLowBatteryIndicationCycle"))
298
+ {
299
+ rsmAttribute.eNumber = ATTR_LOW_BATTERY_IND_CYCLE;
300
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
301
+ }
302
+ else if (cmp(szPropertyName, L"rsmScanLineWidth"))
303
+ {
304
+ rsmAttribute.eNumber = ATTR_SCANLINE_WIDTH;
305
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
306
+ }
307
+ else if (cmp(szPropertyName, L"rsmGoodScansDelay"))
308
+ {
309
+ rsmAttribute.eNumber = ATTR_GOOD_SCANS_DELAY;
310
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
311
+ }
312
+ else if (cmp(szPropertyName, L"rsmDecodeFeedback"))
313
+ {
314
+ rsmAttribute.eNumber = ATTR_DISABLE_GOOD_DECODE_LED_BEEP;
315
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
316
+ }
317
+ else if (cmp(szPropertyName, L"rsmIgnoreCode128USPS"))
318
+ {
319
+ rsmAttribute.eNumber = ATTR_EXCLUSIVE_CODE128_EN;
320
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
321
+ }
322
+ else if (cmp(szPropertyName, L"rsmScanTriggerWakeup"))
323
+ {
324
+ rsmAttribute.eNumber = ATTR_SCAN_TRIG_WAKEUP_EN;
325
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
326
+ }
327
+ else if (cmp(szPropertyName, L"rsmMems"))
328
+ {
329
+ rsmAttribute.eNumber = ATTR_MEMS_ENABLE;
330
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
331
+ }
332
+ else if (cmp(szPropertyName, L"rsmProximityEnable"))
333
+ {
334
+ rsmAttribute.eNumber = ATTR_PROXIMITY_ENABLE;
335
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
336
+ }
337
+ else if (cmp(szPropertyName, L"rsmProximityContinuous"))
338
+ {
339
+ rsmAttribute.eNumber = ATTR_PROXIMITY_CONTINUOUS_EN;
340
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
341
+ }
342
+ else if (cmp(szPropertyName, L"rsmProximityDistance"))
343
+ {
344
+ rsmAttribute.eNumber = ATTR_PROXIMITY_DISTANCE;
345
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
346
+ }
347
+ else if (cmp(szPropertyName, L"rsmPagingEnable"))
348
+ {
349
+ rsmAttribute.eNumber = ATTR_PAGING_ENABLE;
350
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
351
+ }
352
+ else if (cmp(szPropertyName, L"rsmPagingBeepSequence"))
353
+ {
354
+ rsmAttribute.eNumber = ATTR_PAGING_BEEP_SEQ;
355
+ iRetVal = RetrieveRSMAttributeValue(&rsmAttribute, szPropertyValue);
356
+ }
357
+ return iRetVal;
358
+ }
359
+
360
+ #pragma endregion
361
+
362
+ #pragma region RSM_Functions
363
+
364
+ BOOL CScanner::RSMGetSupportedAttributes()
365
+ {
366
+ BOOL bReturnValue = FALSE;
367
+ // Check the Scanner supports RSM functionality
368
+ // Don't log if we don't supported it as we would have already logged that earlier
369
+ if(lpfn_SCAN_RSMGetSupportedAttributes && m_hScanner)
370
+ {
371
+ // Populate the member variable array rsmSupportedAttributes with
372
+ // the attributes supported by this device
373
+ delete[] m_rsmSupportedAttributes;
374
+ m_rsmSupportedAttributes = NULL;
375
+
376
+ // Find out how many attributes are supported by the connected RSM device
377
+ // This (calling getSupportedAttributes with NULL)
378
+ // doesn't seem to work on CE6 devices with the
379
+ // release build, though it does work with the debug build and on WM devices.
380
+ // Time is short therefore just defaulting to a maximum of 100 supported attributes.
381
+ // DWORD dwRSMAttributeCount = 0;
382
+ // DWORD dwResult = lpfn_SCAN_RSMGetSupportedAttributes(m_hScanner, NULL, &dwRSMAttributeCount);
383
+ // if (dwResult == E_SCN_SUCCESS)
384
+ // {
385
+ // m_iCountOfSupportedRSMAttributes = dwRSMAttributeCount;
386
+
387
+ // dwAttributeCount now contains the number of attributes available on
388
+ // the scanner
389
+ DWORD dwRSMAttributeCount2 = 100;
390
+ m_rsmSupportedAttributes = new ATTRIB_NUMBER[100];
391
+ DWORD dwResult = lpfn_SCAN_RSMGetSupportedAttributes(m_hScanner,
392
+ m_rsmSupportedAttributes,
393
+ &dwRSMAttributeCount2);
394
+ m_iCountOfSupportedRSMAttributes = dwRSMAttributeCount2;
395
+ //}
396
+ bReturnValue = (dwResult == E_SCN_SUCCESS);
397
+ if (!bReturnValue)
398
+ {
399
+ WCHAR szLogMessage[1024];
400
+ wsprintf(szLogMessage, L"Unable to retrieve supported RSM attributes, this scanner does not support RSM (%u)",
401
+ dwResult);
402
+ m_iCountOfSupportedRSMAttributes = 0;
403
+ // Removed this log as it was causing confusion with Customers, thinking something had gone wrong.
404
+ //Log(SCANNER_LOG_INFO, szLogMessage,
405
+ // _T(__FUNCTION__), __LINE__);
406
+ }
407
+ }
408
+ return bReturnValue;
409
+
410
+ }
411
+
412
+
413
+ /*
414
+ BOOL CScanner::MarkRSMForRetrieval(ATTRIB_NUMBER attribute)
415
+ {
416
+ // Check the Scanner supports RSM functionality
417
+ if(!lpfn_SCAN_RSMGetSupportedAttributes)
418
+ {
419
+ LOG(WARNING) + L"Attempted to mark an RSM Attribute for retrieval but Scanner does not support RSM";
420
+ return FALSE;
421
+ }
422
+ else
423
+ {
424
+ return WriteMsgQueue(m_hRSMMsgQWrite,
425
+ &attribute,
426
+ sizeof(attribute),
427
+ INFINITE, 0);
428
+ }
429
+ }
430
+ */
431
+
432
+ // Perform checks to ensure the attribute is appropriate to retrieve and populate the
433
+ // m_szRSMValuesToReturn array with 'unsupported' or 'failed to get' if it is not appropriate
434
+ // to retrieve the value. If the value is retrievable the function RetrieveRSMAttributeValueAsString
435
+ // is called.
436
+ int CScanner::RetrieveRSMAttributeValue(LPRSM_ATTRIB rsmAttribute, WCHAR* szValueBuffer)
437
+ {
438
+ int iRetVal = -1;
439
+ if (m_iCountOfMarkedRSMAttributes >= MAX_RSM_READABLE_ATTRIBUTES)
440
+ {
441
+ // We are being asked to retrieve more than the maximum number of RSM attributes
442
+ LOG(WARNING) + L"Unable to mark RSM Attribute for retrieval, please retrieve attributes";
443
+ return FALSE;
444
+ }
445
+
446
+ // Check the specified attribute is supported by the Scanner
447
+ if (!m_rsmSupportedAttributes == NULL)
448
+ {
449
+ BOOL bSupported = FALSE;
450
+ for(int attribute = 0; attribute < m_iCountOfSupportedRSMAttributes; attribute++)
451
+ {
452
+ if (m_rsmSupportedAttributes[attribute] == rsmAttribute->eNumber)
453
+ {
454
+ // We have found the attribute in the list of supported
455
+ // attributes
456
+ bSupported = TRUE;
457
+ break;
458
+ }
459
+ }
460
+
461
+ // Log if the attribute is not supported
462
+ if (!bSupported)
463
+ {
464
+ LOG(INFO) + L"Unable to get RSM attribute, not supported";
465
+ m_szRSMValuesToReturn[m_iCountOfMarkedRSMAttributes] =
466
+ new TCHAR[MAX_RSM_STRING_LENGTH];
467
+ wcscpy(m_szRSMValuesToReturn[m_iCountOfMarkedRSMAttributes++],
468
+ L"Unsupported Attribute");
469
+ }
470
+ else
471
+ {
472
+ // The attribute is supported by the Scanner,
473
+ // We only want to
474
+ // read the attribute if it is not an 'Action' attribute.
475
+ if (rsmAttribute->eType != ATTRIB_ACTION)
476
+ {
477
+ // set appropriate fields and zero the rest
478
+ SI_SET_FIELD(rsmAttribute, eType, ATTRIB_UNTYPED);
479
+ // Retrieve the current value from the Scanner
480
+ DWORD dwResult = lpfn_SCAN_RSMGetAttribute(m_hScanner,
481
+ VALUE_TYPE_CURRENT,
482
+ rsmAttribute);
483
+
484
+ // If the type of the attribute is a string or an array then
485
+ // E_SCN_BUFFERTOOSMALL is returned, this indicates that memory
486
+ // needs to be allocated for the string / array, the size specified
487
+ // as part of the instantiated attribute.
488
+ if (dwResult == E_SCN_BUFFERTOOSMALL)
489
+ {
490
+ WORD wSize;
491
+ // Allocate memory for string or array
492
+ if (rsmAttribute->eType == ATTRIB_STRING)
493
+ {
494
+ // Attribute is a String, it's size is stored in wStrLength
495
+ wSize = rsmAttribute->Value.StringVal.wStrLength;
496
+ rsmAttribute->Value.StringVal.pszVal = new WCHAR[wSize];
497
+ memset(rsmAttribute->Value.StringVal.pszVal, 0, wSize * sizeof(WCHAR));
498
+ SI_SET_FIELD(rsmAttribute, eType, ATTRIB_STRING);
499
+ // Retry retrieving the attribute
500
+ dwResult = lpfn_SCAN_RSMGetAttribute(m_hScanner,
501
+ VALUE_TYPE_CURRENT,
502
+ rsmAttribute);
503
+ }
504
+ else if (rsmAttribute->eType == ATTRIB_ARRAY)
505
+ {
506
+ // Attribute is an Array
507
+ wSize = rsmAttribute->Value.ArrayVal.wArrayLength;
508
+ rsmAttribute->Value.ArrayVal.pArrayVal = new BYTE[wSize];
509
+ SI_SET_FIELD(rsmAttribute, eType, ATTRIB_ARRAY);
510
+ // Retry retrieving the attribute
511
+ dwResult = lpfn_SCAN_RSMGetAttribute(m_hScanner,
512
+ VALUE_TYPE_CURRENT,
513
+ rsmAttribute);
514
+ }
515
+ else
516
+ {
517
+ // Unexpected : Attribute is not a string or an array
518
+ LOG(WARNING) + L"Unable to get RSM Attribute, Memory Error";
519
+ }
520
+ }
521
+
522
+ if (dwResult == E_SCN_SUCCESS)
523
+ {
524
+ // rsmAttribute now contains the retrieved value.
525
+ iRetVal = RetrieveRSMAttributeValueAsString(rsmAttribute, szValueBuffer);
526
+ }
527
+ else
528
+ {
529
+ m_szRSMValuesToReturn[m_iCountOfMarkedRSMAttributes] =
530
+ new TCHAR[MAX_RSM_STRING_LENGTH];
531
+ wcscpy(m_szRSMValuesToReturn[m_iCountOfMarkedRSMAttributes++],
532
+ L"Failed to get Attribute");
533
+ }
534
+
535
+ // Delete associated memory with Strings and Arrays
536
+ if (rsmAttribute->eType == ATTRIB_STRING)
537
+ delete[] rsmAttribute->Value.StringVal.pszVal;
538
+ else if (rsmAttribute->eType == ATTRIB_ARRAY)
539
+ delete[] rsmAttribute->Value.ArrayVal.pArrayVal;
540
+
541
+ // If the code reaches here either:
542
+ // * The attribute value has been
543
+ // successfully obtained and a navigation has been
544
+ // performed if appropriate.
545
+ // * We have failed to retrieve the attribute for the reason
546
+ // contained in dwResult
547
+
548
+ } // End If attribute is of type ATTRIB_ACTION
549
+ } // End If attribute not supported by the Scanner
550
+ }
551
+ return iRetVal;
552
+ }
553
+
554
+ // Add the specified attribute's value to m_szRSMValuesToReturn
555
+ int CScanner::RetrieveRSMAttributeValueAsString(LPRSM_ATTRIB rsmAttribute, WCHAR* szRSMValue)
556
+ {
557
+ int iRetVal = -1;
558
+ int iLength;
559
+ // Character array which will store the string to return to the user
560
+ TCHAR tcParameterValue[MAX_URL];
561
+ memset(tcParameterValue, 0, sizeof(tcParameterValue));
562
+
563
+ // Converting the attribute's value to a string depends on the type
564
+ // of the attribute:
565
+ switch (rsmAttribute->eType)
566
+ {
567
+ case ATTRIB_BYTE:
568
+ // A number of attributes are stored as bytes. Interpret these bytes
569
+ // to mean something useful to the application
570
+ switch (rsmAttribute->eNumber)
571
+ {
572
+ case ATTR_SCANLINE_WIDTH:
573
+ // 0 : Wide
574
+ // 1 : Narrow
575
+ if (rsmAttribute->Value.ByteVal == 0)
576
+ wsprintf(tcParameterValue, L"wide");
577
+ else if (rsmAttribute->Value.ByteVal == 2)
578
+ wsprintf(tcParameterValue, L"narrow");
579
+ break;
580
+ case ATTR_HID_AUTO_RECON:
581
+ // 0 : Never Reconnect
582
+ // 1 : Reconnect On Data
583
+ // 2 : Reconnect Immediately
584
+ if (rsmAttribute->Value.ByteVal == 0)
585
+ wsprintf(tcParameterValue, L"neverReconnect");
586
+ else if (rsmAttribute->Value.ByteVal == 1)
587
+ wsprintf(tcParameterValue, L"reconnectOnData");
588
+ else if (rsmAttribute->Value.ByteVal == 2)
589
+ wsprintf(tcParameterValue, L"reconnectImmediately");
590
+ break;
591
+ case ATTR_PROXIMITY_DISTANCE:
592
+ // 0 : Short
593
+ // 1 : Medium
594
+ // 2 : Long
595
+ if (rsmAttribute->Value.ByteVal == 0)
596
+ wsprintf(tcParameterValue, L"short");
597
+ else if (rsmAttribute->Value.ByteVal == 1)
598
+ wsprintf(tcParameterValue, L"medium");
599
+ else if (rsmAttribute->Value.ByteVal == 2)
600
+ wsprintf(tcParameterValue, L"long");
601
+ break;
602
+ case ATTR_PAGING_BEEP_SEQ:
603
+ // 0 to 15 : String representation of number
604
+ wsprintf(tcParameterValue, L"%u", rsmAttribute->Value.ByteVal);
605
+ break;
606
+ case ATTR_BLUETOOTH_AUTO_RECON:
607
+ // 0 : None
608
+ // 1 : On Power
609
+ // 2 : On Out Of Range
610
+ // 3 : On Power Out Of Range
611
+ if (rsmAttribute->Value.ByteVal == 0)
612
+ wsprintf(tcParameterValue, L"none");
613
+ else if (rsmAttribute->Value.ByteVal == 1)
614
+ wsprintf(tcParameterValue, L"onPower");
615
+ else if (rsmAttribute->Value.ByteVal == 2)
616
+ wsprintf(tcParameterValue, L"onOutOfRange");
617
+ else if (rsmAttribute->Value.ByteVal == 3)
618
+ wsprintf(tcParameterValue, L"onPowerOutOfRange");
619
+ break;
620
+ case ATTR_LOW_BATTERY_IND_CYCLE:
621
+ // 0 : 15 seconds
622
+ // 1 : 30 seconds
623
+ // 2 : 60 seconds
624
+ // 3 : 90 seconds
625
+ // 4 : 120 seconds
626
+ if (rsmAttribute->Value.ByteVal == 0)
627
+ wsprintf(tcParameterValue, L"15");
628
+ else if (rsmAttribute->Value.ByteVal == 1)
629
+ wsprintf(tcParameterValue, L"30");
630
+ else if (rsmAttribute->Value.ByteVal == 2)
631
+ wsprintf(tcParameterValue, L"60");
632
+ else if (rsmAttribute->Value.ByteVal == 3)
633
+ wsprintf(tcParameterValue, L"90");
634
+ else if (rsmAttribute->Value.ByteVal == 4)
635
+ wsprintf(tcParameterValue, L"120");
636
+ break;
637
+ case ATTR_GOOD_SCANS_DELAY:
638
+ // 0 to 150 : String representation of number, multiply by 100 to
639
+ // get the value in milliseconds.
640
+ wsprintf(tcParameterValue, L"%u", rsmAttribute->Value.ByteVal * 100);
641
+ break;
642
+ case ATTR_BATTERY_STATUS:
643
+ // 0 : Unknown
644
+ // 1 : Full
645
+ // 2 : Medium
646
+ // 3 : Empty
647
+ // 4 : Charging - Full Rate
648
+ // 5 : Charging - Half Rate
649
+ // 6 : Charging - Trickle
650
+ // 7 : Discharging
651
+ if (rsmAttribute->Value.ByteVal == 0)
652
+ wsprintf(tcParameterValue, L"unknown");
653
+ else if (rsmAttribute->Value.ByteVal == 1)
654
+ wsprintf(tcParameterValue, L"full");
655
+ else if (rsmAttribute->Value.ByteVal == 2)
656
+ wsprintf(tcParameterValue, L"medium");
657
+ else if (rsmAttribute->Value.ByteVal == 3)
658
+ wsprintf(tcParameterValue, L"empty");
659
+ else if (rsmAttribute->Value.ByteVal == 4)
660
+ wsprintf(tcParameterValue, L"chargingFullRate");
661
+ else if (rsmAttribute->Value.ByteVal == 5)
662
+ wsprintf(tcParameterValue, L"chargingHalfRate");
663
+ else if (rsmAttribute->Value.ByteVal == 6)
664
+ wsprintf(tcParameterValue, L"chargingTrickle");
665
+ else if (rsmAttribute->Value.ByteVal == 7)
666
+ wsprintf(tcParameterValue, L"discharging");
667
+ break;
668
+ case ATTR_BATTERY_ID:
669
+ // 0 : Simple
670
+ // 1 : Double
671
+ // 2 : Cabled
672
+ // 9999 : Unknown
673
+ if (rsmAttribute->Value.ByteVal == 0)
674
+ wsprintf(tcParameterValue, L"simple");
675
+ else if (rsmAttribute->Value.ByteVal == 1)
676
+ wsprintf(tcParameterValue, L"double");
677
+ else if (rsmAttribute->Value.ByteVal == 2)
678
+ wsprintf(tcParameterValue, L"cabled");
679
+ else
680
+ wsprintf(tcParameterValue, L"unknown");
681
+ break;
682
+ default:
683
+ // Unrecognised attribute with a value of type BYTE
684
+ LOG(WARNING) + L"Unrecognised attribute of type BYTE";
685
+ }
686
+ break;
687
+ case ATTRIB_FLAG:
688
+ // A number of attributes are stored as flags. Interpret these flags
689
+ // to mean something useful to the application
690
+ switch (rsmAttribute->eNumber)
691
+ {
692
+ case ATTR_BT_AUTHENTICATION:
693
+ case ATTR_BT_ENCRYPTION:
694
+ case ATTR_BEEP_ON_RECON_ATTEMPT:
695
+ case ATTR_MEMS_ENABLE:
696
+ case ATTR_PROXIMITY_ENABLE:
697
+ case ATTR_PAGING_ENABLE:
698
+ case ATTR_LOW_BATTERY_IND_EN:
699
+ case ATTR_SCAN_TRIG_WAKEUP_EN:
700
+ case ATTR_EXCLUSIVE_CODE128_EN:
701
+ case ATTR_PROXIMITY_CONTINUOUS_EN:
702
+ case ATTR_FORCE_PAIRING_SAVE:
703
+ // These attributes are either 'True' or 'False'
704
+ if (rsmAttribute->Value.FlagVal)
705
+ {
706
+ wsprintf(tcParameterValue, L"true");
707
+ }
708
+ else
709
+ {
710
+ wsprintf(tcParameterValue, L"false");
711
+ }
712
+ break;
713
+ case ATTR_PIN_CODE_TYPE:
714
+ // This attribute is either 'PromptUser' or 'UseStored'
715
+ if (rsmAttribute->Value.FlagVal)
716
+ {
717
+ wsprintf(tcParameterValue, L"useStored");
718
+ }
719
+ else
720
+ {
721
+ wsprintf(tcParameterValue, L"promptUser");
722
+ }
723
+ break;
724
+ case ATTR_BT_INQUIRY_MODE:
725
+ // This attribute is either 'General' or 'Limited'
726
+ if (rsmAttribute->Value.FlagVal)
727
+ {
728
+ wsprintf(tcParameterValue, L"limited");
729
+ }
730
+ else
731
+ {
732
+ wsprintf(tcParameterValue, L"general");
733
+ }
734
+ break;
735
+ case ATTR_DISABLE_GOOD_DECODE_LED_BEEP:
736
+ // These attributes are either 'Enabled' or 'Disabled'
737
+ if (!rsmAttribute->Value.FlagVal)
738
+ {
739
+ wsprintf(tcParameterValue, L"true");
740
+ }
741
+ else
742
+ {
743
+ wsprintf(tcParameterValue, L"false");
744
+ }
745
+ break;
746
+ default:
747
+ LOG(WARNING) + L"Unrecognised attribute of type FLAGS";
748
+ }
749
+ break;
750
+ case ATTRIB_USHORT:
751
+ // A number of attributes are stored as ushorts. Interpret these numbers
752
+ // to mean something useful to the application
753
+ if (rsmAttribute->eNumber == ATTR_RECONNECT_ATTEMPTS ||
754
+ rsmAttribute->eNumber == ATTR_BATTERY_CAPACITY)
755
+ {
756
+ if (rsmAttribute->eNumber == ATTR_BATTERY_CAPACITY)
757
+ {
758
+ if (rsmAttribute->Value.UShortVal <= 100)
759
+ {
760
+ // The attribute is battery capacity and between 0 and 100,
761
+ // copy the numeric value.
762
+ wsprintf(tcParameterValue, L"%u", rsmAttribute->Value.UShortVal);
763
+ }
764
+ else
765
+ {
766
+ // ATTR_BATTERY_CAPICITY not between 0 and 100.
767
+ wsprintf(tcParameterValue, L"unknown");
768
+ }
769
+ }
770
+ else
771
+ {
772
+ // Parameter is ATTR_RECONNECT_ATTEMPTS, return
773
+ // value is 5 x greater than value stored in UShortVal
774
+ wsprintf(tcParameterValue, L"%u", rsmAttribute->Value.UShortVal * 5);
775
+ }
776
+ }
777
+ else
778
+ {
779
+ // Unrecognised attribute with a value of type ushort
780
+ LOG(WARNING) + L"Unrecognised attribute of type USHORT";
781
+ }
782
+ break;
783
+ case ATTRIB_ARRAY:
784
+ // Only expect the Bluetooth address to be received in the form of
785
+ // an array
786
+ if (rsmAttribute->eNumber == ATTR_BT_ADDR &&
787
+ rsmAttribute->Value.ArrayVal.wArrayLength > 0)
788
+ {
789
+ // The Bluetooth Address array is of length 6 with each index
790
+ // providing 16 bits of address, these are formatted into a string
791
+ // in the form FF:FF:FF:FF:FF:FF. Though the code below will cope
792
+ // with arrays of any reasonable length.
793
+ TCHAR temp[MAXURL];
794
+ wsprintf(temp, L"%.2X", rsmAttribute->Value.ArrayVal.pArrayVal[0]);
795
+ wcscpy(tcParameterValue, temp);
796
+ int paramCopy;
797
+ for(paramCopy = 1; paramCopy < rsmAttribute->Value.ArrayVal.wArrayLength; paramCopy++)
798
+ {
799
+ wsprintf(temp, L":%.2X", rsmAttribute->Value.ArrayVal.pArrayVal[paramCopy]);
800
+ wcscat(tcParameterValue, temp);
801
+ }
802
+ }
803
+ else
804
+ {
805
+ LOG(WARNING) + L"Unrecognised Array attribute";
806
+ }
807
+ break;
808
+ case ATTRIB_STRING:
809
+ // Copy the string representing the value if it is not too large
810
+ // RS507 adds trailing spaces to the value we specified, remove
811
+ // these before returning to user
812
+ iLength = rsmAttribute->Value.StringVal.wStrLength - 1;
813
+ for (int i = rsmAttribute->Value.StringVal.wStrLength - 2; i>0; i--)
814
+ {
815
+ if (rsmAttribute->Value.StringVal.pszVal[i] != ' ')
816
+ break;
817
+ else
818
+ iLength--;
819
+ }
820
+ if (rsmAttribute->Value.StringVal.wStrLength < MAX_URL)
821
+ {
822
+ wcsncpy(tcParameterValue, rsmAttribute->Value.StringVal.pszVal, iLength);
823
+ tcParameterValue[iLength] = '\0';
824
+ }
825
+ break;
826
+ default:
827
+ // Do not expect any of the attributes to be of other types
828
+ // Log error
829
+ LOG(WARNING) + L"Unable to perform RSM navigate, Unrecognised attribuite format";
830
+ break;
831
+ }
832
+
833
+ // Check the value was copied OK
834
+ if (tcParameterValue[0] != NULL)
835
+ {
836
+ // Value was successfully copied, navigate.
837
+ iRetVal = wcslen(tcParameterValue) + 1;
838
+ if (szRSMValue)
839
+ if (wcscpy_s(szRSMValue, iRetVal, tcParameterValue) == EINVAL)
840
+ iRetVal = -1;
841
+ }
842
+ return iRetVal;
843
+ }
844
+
845
+ BOOL CScanner::SetRSMValue(ATTRIB_NUMBER rsmAttributeID, LPCTSTR szValue)
846
+ {
847
+ BOOL bReturnValue = TRUE;
848
+ RSM_ATTRIB rsmAttribute;
849
+ memset(&rsmAttribute, 0, sizeof(RSM_ATTRIB));
850
+ SI_INIT(&rsmAttribute);
851
+ BOOL bSupportedAttribute = FALSE;
852
+
853
+ // Prevent the crash if the m_rsmSupportedAttributes is null
854
+ // usually cleared as a part of close scanner, whne the app looses focus
855
+ // and subsequently when a property is attempted to be set
856
+ if (NULL == m_rsmSupportedAttributes)
857
+ {
858
+ LOG(ERROR) + L"RSM Attribute table is empty!!!. The scanner could have been closed";
859
+ }
860
+ else
861
+ {
862
+ // Check the Scanner supports the selected Attribute
863
+ for (int i = 0; i < m_iCountOfSupportedRSMAttributes; i++)
864
+ {
865
+ if (m_rsmSupportedAttributes[i] == rsmAttributeID)
866
+ {
867
+ bSupportedAttribute = TRUE;
868
+ break;
869
+ }
870
+ }
871
+ }
872
+
873
+ if (!bSupportedAttribute)
874
+ {
875
+ // The attribute is not supported
876
+ LOG(WARNING) + L"Unable to set RSM Attribute, it is not a supported attribute";
877
+ bReturnValue = FALSE;
878
+ }
879
+ else
880
+ {
881
+ // Get the current value of the Attribute, for Write Only attributes this is not
882
+ // possible to we populate those separately.
883
+ DWORD dwResult = E_SCN_SUCCESS;
884
+ if (rsmAttributeID == ATTR_PAGING_ACTIVATE ||
885
+ rsmAttributeID == ATTR_BT_DISCONNECT ||
886
+ rsmAttributeID == ATTR_BT_UNPAIR)
887
+ {
888
+ // WRITE ONLY attributes
889
+ rsmAttribute.eType = ATTRIB_ACTION;
890
+ rsmAttribute.eNumber = rsmAttributeID;
891
+ rsmAttribute.Property = ATTRIB_PROPERTY_WRITABLE;
892
+ }
893
+ else if (rsmAttributeID == ATTR_BT_PINCODE ||
894
+ rsmAttributeID == ATTR_BT_FRIENDLY_NAME)
895
+ {
896
+ // READ / WRITE String attributes. We don't retrieve these
897
+ // to avoid having to allocate a buffer to store the
898
+ // retrieved data
899
+ rsmAttribute.eType = ATTRIB_STRING;
900
+ rsmAttribute.eNumber = rsmAttributeID;
901
+ rsmAttribute.Property = ATTRIB_PROPERTY_WRITABLE & ATTRIB_PROPERTY_READABLE;
902
+ }
903
+ else
904
+ {
905
+ // Attribute is readable, retrieve the current value
906
+ // Note: If Read / Write Array attributes are ever introduced (currently
907
+ // only array attribute, is the BT Address and that's read only) an
908
+ // exception will have to be made similar to the exception made for
909
+ // strings above, because we don't allocate the buffer here.
910
+ SI_SET_FIELD(&rsmAttribute, eType, ATTRIB_UNTYPED);
911
+ SI_SET_FIELD(&rsmAttribute, eNumber, rsmAttributeID);
912
+ dwResult = lpfn_SCAN_RSMGetAttribute(m_hScanner,
913
+ VALUE_TYPE_CURRENT,
914
+ &rsmAttribute);
915
+ }
916
+ if (dwResult != E_SCN_SUCCESS)
917
+ {
918
+ // Unsuccessful at retrieving the current value
919
+ WCHAR szLogMessage[1024];
920
+ wsprintf(szLogMessage,
921
+ L"Unable to set RSM Attribute, error retrieving current value. Error Code: %i", dwResult);
922
+ LOG(WARNING) + szLogMessage;
923
+ bReturnValue = FALSE;
924
+ }
925
+ else
926
+ {
927
+ switch (rsmAttributeID)
928
+ {
929
+ // Byte Values
930
+ case ATTR_SCANLINE_WIDTH:
931
+ if (cmp(szValue, L"Wide"))
932
+ rsmAttribute.Value.ByteVal = 0;
933
+ else if (cmp(szValue, L"Narrow"))
934
+ rsmAttribute.Value.ByteVal = 2;
935
+ else
936
+ bReturnValue = FALSE;
937
+ break;
938
+ case ATTR_HID_AUTO_RECON:
939
+ if (cmp(szValue, L"NeverReconnect"))
940
+ rsmAttribute.Value.ByteVal = 0;
941
+ else if (cmp(szValue, L"ReconnectOnData"))
942
+ rsmAttribute.Value.ByteVal = 1;
943
+ else if (cmp(szValue, L"ReconnectImmediately"))
944
+ rsmAttribute.Value.ByteVal = 2;
945
+ else
946
+ bReturnValue = FALSE;
947
+ break;
948
+ case ATTR_PROXIMITY_DISTANCE:
949
+ if (cmp(szValue ,L"Short"))
950
+ rsmAttribute.Value.ByteVal = 0;
951
+ else if (cmp(szValue ,L"Medium"))
952
+ rsmAttribute.Value.ByteVal = 1;
953
+ else if (cmp(szValue , L"Long"))
954
+ rsmAttribute.Value.ByteVal = 2;
955
+ else
956
+ bReturnValue = FALSE;
957
+ break;
958
+ case ATTR_BLUETOOTH_AUTO_RECON:
959
+ if (cmp(szValue , L"OnPowerOutOfRange"))
960
+ rsmAttribute.Value.ByteVal = 3;
961
+ else if (cmp(szValue , L"None"))
962
+ rsmAttribute.Value.ByteVal = 0;
963
+ else if (cmp(szValue , L"OnPower"))
964
+ rsmAttribute.Value.ByteVal = 1;
965
+ else if (cmp(szValue , L"OnOutOfRange"))
966
+ rsmAttribute.Value.ByteVal = 2;
967
+ else
968
+ bReturnValue = FALSE;
969
+ break;
970
+ // Flag Values with parameters other than True / False
971
+ case ATTR_PIN_CODE_TYPE:
972
+ // Flag: Either 'PromptUser' (0) or 'UseStored' (1)
973
+ if (cmp(szValue ,L"PromptUser"))
974
+ rsmAttribute.Value.FlagVal = 0;
975
+ else if (cmp(szValue ,L"UseStored"))
976
+ rsmAttribute.Value.FlagVal = 1;
977
+ else
978
+ bReturnValue = FALSE;
979
+ break;
980
+ case ATTR_BT_INQUIRY_MODE:
981
+ if (cmp(szValue ,L"General"))
982
+ rsmAttribute.Value.FlagVal = 0;
983
+ else if (cmp(szValue ,L"Limited"))
984
+ rsmAttribute.Value.FlagVal = 1;
985
+ else
986
+ bReturnValue = FALSE;
987
+ break;
988
+ // Flag Values (Enabled / Disabled)
989
+ case ATTR_EXCLUSIVE_CODE128_EN:
990
+ case ATTR_MEMS_ENABLE:
991
+ case ATTR_PROXIMITY_ENABLE:
992
+ case ATTR_PAGING_ENABLE:
993
+ case ATTR_LOW_BATTERY_IND_EN:
994
+ case ATTR_SCAN_TRIG_WAKEUP_EN:
995
+ case ATTR_PROXIMITY_CONTINUOUS_EN:
996
+ case ATTR_FORCE_PAIRING_SAVE:
997
+ case ATTR_BT_AUTHENTICATION:
998
+ case ATTR_BT_ENCRYPTION:
999
+ case ATTR_BEEP_ON_RECON_ATTEMPT:
1000
+ if (EnabledValue(szValue))
1001
+ rsmAttribute.Value.FlagVal = 1;
1002
+ else if (DisabledValue(szValue))
1003
+ rsmAttribute.Value.FlagVal = 0;
1004
+ else
1005
+ bReturnValue = FALSE;
1006
+ break;
1007
+ // String Values
1008
+ case ATTR_BT_PINCODE:
1009
+ case ATTR_BT_FRIENDLY_NAME:
1010
+ {
1011
+ int iLen = wcslen(szValue) + 1;
1012
+ rsmAttribute.Value.StringVal.wStrLength = iLen;
1013
+ rsmAttribute.Value.StringVal.pszVal = new TCHAR[iLen];
1014
+ wcscpy(rsmAttribute.Value.StringVal.pszVal, szValue);
1015
+ }
1016
+ break;
1017
+ case ATTR_DISABLE_GOOD_DECODE_LED_BEEP:
1018
+ // ATTR_DISABLE_GOOD_DECODE_LED_BEEP
1019
+ // Flags : Enable / Disable (other way round to the other RSM flags, to make it easier
1020
+ // to understand on our interface)
1021
+ if (EnabledValue(szValue))
1022
+ rsmAttribute.Value.FlagVal = 0;
1023
+ else if (DisabledValue(szValue))
1024
+ rsmAttribute.Value.FlagVal = 1;
1025
+ else
1026
+ bReturnValue = FALSE;
1027
+ break;
1028
+ // Numberic Parameters
1029
+ case ATTR_RECONNECT_ATTEMPTS:
1030
+ {
1031
+ int iRequestedValue = _wtoi(szValue);
1032
+ // Value associated with ATTR_RECONNECT_ATTEMPTS must be
1033
+ // divisible by 5 as the value given to the EMDK API is in
1034
+ // multiples of 5 seconds
1035
+ if (iRequestedValue % 5 == 0 && iRequestedValue >= MINIMUM_RSM_BT_RECONNECT_ATTEMPTS
1036
+ && iRequestedValue <= MAXIMUM_RSM_BT_RECONNECT_ATTEMPTS)
1037
+ rsmAttribute.Value.ShortVal = iRequestedValue / 5;
1038
+ else
1039
+ bReturnValue = FALSE;
1040
+ }
1041
+ break;
1042
+ case ATTR_PAGING_BEEP_SEQ:
1043
+ {
1044
+ uint iValue = _wtoi(szValue);
1045
+ if (iValue <= MAXIMUM_RSM_PAGING_BEEP_SEQ)
1046
+ rsmAttribute.Value.ByteVal = (BYTE)iValue;
1047
+ else
1048
+ bReturnValue = FALSE;
1049
+ }
1050
+ break;
1051
+ case ATTR_LOW_BATTERY_IND_CYCLE:
1052
+ {
1053
+ // 0-10 secs, 2-20secs, 3-30, 4-40 secs, 5-50 secs
1054
+ uint iValue = _wtoi(szValue);
1055
+ // Check the user defined value is in range
1056
+ if (iValue == 15)
1057
+ rsmAttribute.Value.ByteVal = (BYTE)0;
1058
+ else if (iValue == 30)
1059
+ rsmAttribute.Value.ByteVal = (BYTE)1;
1060
+ else if (iValue == 60)
1061
+ rsmAttribute.Value.ByteVal = (BYTE)2;
1062
+ else if (iValue == 90)
1063
+ rsmAttribute.Value.ByteVal = (BYTE)3;
1064
+ else if (iValue == 120)
1065
+ rsmAttribute.Value.ByteVal = (BYTE)4;
1066
+ else
1067
+ bReturnValue = FALSE;
1068
+ }
1069
+ break;
1070
+ case ATTR_GOOD_SCANS_DELAY:
1071
+ {
1072
+ // Byte (Range 0 - 150)
1073
+ int iScanDelay = _wtoi(szValue);
1074
+ // Value associated with ATTR_GOOD_SCANS_DELAY must be
1075
+ // divisible by 100 as the value given to the EMDK API is in
1076
+ // multiples of 100 seconds
1077
+ if (iScanDelay % 100 == 0 &&
1078
+ iScanDelay >= MINIMUM_RSM_GOOD_SCANS_DELAY &&
1079
+ iScanDelay <= MAXIMUM_RSM_GOOD_SCANS_DELAY)
1080
+ rsmAttribute.Value.ByteVal = iScanDelay / 100;
1081
+ else
1082
+ bReturnValue = FALSE;
1083
+ }
1084
+ break;
1085
+ // Action Values
1086
+ case ATTR_PAGING_ACTIVATE:
1087
+ if (cmp(szValue, L"Stop"))
1088
+ rsmAttribute.Value.ActionVal = 0;
1089
+ else if (cmp(szValue, L"Start"))
1090
+ rsmAttribute.Value.ActionVal = 1;
1091
+ else
1092
+ bReturnValue = FALSE;
1093
+ break;
1094
+ case ATTR_BT_DISCONNECT:
1095
+ case ATTR_BT_UNPAIR:
1096
+ rsmAttribute.Value.ActionVal = 0;
1097
+ break;
1098
+ }
1099
+
1100
+ // If there have been no problems set the new attribute
1101
+ if (bReturnValue)
1102
+ {
1103
+ DWORD dwResult = lpfn_SCAN_RSMSetAttribute(m_hScanner, &rsmAttribute);
1104
+
1105
+ // Delete the memory allocated to the attribute string or array if
1106
+ // appropriate.
1107
+ if (rsmAttribute.eType == ATTRIB_STRING)
1108
+ delete[] rsmAttribute.Value.StringVal.pszVal;
1109
+ else if (rsmAttribute.eType == ATTRIB_ARRAY)
1110
+ delete[] rsmAttribute.Value.ArrayVal.pArrayVal;
1111
+
1112
+ if (dwResult != E_SCN_SUCCESS)
1113
+ {
1114
+ bReturnValue = FALSE;
1115
+ LOG(WARNING) + L"Unable to set RSM value, error occured whilst setting attribute";
1116
+ }
1117
+ }
1118
+ else
1119
+ {
1120
+ WCHAR szLogMsg[1024];
1121
+ wsprintf(szLogMsg, L"Unable to set RSM value, specified value (%s) is not appropriate to RSM parameter", szValue);
1122
+ LOG(WARNING) + szLogMsg;
1123
+ }
1124
+
1125
+ }
1126
+
1127
+ }
1128
+ return bReturnValue;
1129
+ }
1130
+
1131
+ #pragma endregion
1132
+
1133
+ /*
1134
+ DWORD CScanner::ProcessRSMGetQueue(LPVOID lParam)
1135
+ {
1136
+ CScanner* pScanner = (CScanner*)lParam;
1137
+ // Variable to hold the read attribute
1138
+ ATTRIB_NUMBER theAttribute;
1139
+ DWORD dwRead;
1140
+ DWORD dwFlags;
1141
+ BOOL bRet;
1142
+ WCHAR szAttributeValuesAsJSArray[MAX_URL];
1143
+
1144
+ // Process the queue until the m_hExitThreadEvent is set
1145
+ while (true)
1146
+ {
1147
+ bRet = ReadMsgQueue(pScanner->m_hRSMMsgQRead, &theAttribute,
1148
+ sizeof(ATTRIB_NUMBER), &dwRead, INFINITE, &dwFlags);
1149
+ if (!bRet || theAttribute == ATTR_END)
1150
+ break;
1151
+ else if (bRet)
1152
+ {
1153
+ // Successfully read an attribute from the queue, this attribute
1154
+ // will either indicate an attribute to be added to the array
1155
+ // of values to return, or indicate that a navigation should be
1156
+ // performed
1157
+ if (theAttribute == ATTR_MAX)
1158
+ {
1159
+ // User has indicated they wish to receive a navigation of
1160
+ // values retrieved by RSMGetParam
1161
+ // Calculate the String to Return, in the form newArray(att1, att2)
1162
+ memset(szAttributeValuesAsJSArray, 0, MAX_URL * sizeof(WCHAR));
1163
+ wcscpy(szAttributeValuesAsJSArray, L"new Array(");
1164
+ for(int i = 0; i < pScanner->m_iCountOfMarkedRSMAttributes; i++)
1165
+ {
1166
+ if (i > 0)
1167
+ wcscat(szAttributeValuesAsJSArray, L",");
1168
+ wcscat(szAttributeValuesAsJSArray, L"'");
1169
+ // The m_szRSMValuesToReturn array is populated with the values to return to the user.
1170
+ // Memory is deallocated here once read.
1171
+ if (pScanner->m_szRSMValuesToReturn[i])
1172
+ {
1173
+ wcscat(szAttributeValuesAsJSArray, pScanner->m_szRSMValuesToReturn[i]);
1174
+ delete[] pScanner->m_szRSMValuesToReturn[i];
1175
+ pScanner->m_szRSMValuesToReturn[i] = NULL;
1176
+ }
1177
+ wcscat(szAttributeValuesAsJSArray, L"'");
1178
+ }
1179
+ wcscat(szAttributeValuesAsJSArray, L")");
1180
+ pScanner->m_iCountOfMarkedRSMAttributes = 0;
1181
+
1182
+ if(pScanner->m_pRSMEvent)
1183
+ {
1184
+ // DCC TODO Logic of RSM Event here
1185
+ // pScanner->m_pModule->SendPBNavigate(szRSMGetEventNames,
1186
+ // pScanner->m_iInstanceID, pScanner->m_szEventRSMGetEvent,
1187
+ // szAttributeValuesAsJSArray, NULL);
1188
+ }
1189
+ }
1190
+ else
1191
+ {
1192
+ // Add the value to the list of values to return
1193
+ RSM_ATTRIB rsmAttribute;
1194
+ memset(&rsmAttribute, 0, sizeof(RSM_ATTRIB));
1195
+ SI_INIT(&rsmAttribute);
1196
+ LPRSM_ATTRIB pRSMAttribute = &rsmAttribute;
1197
+ SI_SET_FIELD(pRSMAttribute, eNumber, theAttribute);
1198
+ pScanner->m_szRSMValuesToReturn[pScanner->m_iCountOfMarkedRSMAttributes] =
1199
+ new TCHAR[MAX_RSM_STRING_LENGTH];
1200
+ pScanner->RetrieveRSMAttributeValue(pRSMAttribute,
1201
+ pScanner->m_szRSMValuesToReturn[pScanner->m_iCountOfMarkedRSMAttributes]);
1202
+ pScanner->m_iCountOfMarkedRSMAttributes++;
1203
+ }
1204
+ }
1205
+
1206
+ }
1207
+ return 0;
1208
+ }
1209
+ */
1210
+
1211
+