mobox 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (833) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +89 -0
  5. data/Rakefile +2 -0
  6. data/bin/mobox +275 -0
  7. data/lib/mobox.rb +34 -0
  8. data/lib/mobox/config.rb +36 -0
  9. data/lib/mobox/helpers.rb +9 -0
  10. data/lib/mobox/render_scope.rb +9 -0
  11. data/lib/mobox/server.rb +91 -0
  12. data/lib/mobox/version.rb +3 -0
  13. data/mobox.gemspec +31 -0
  14. data/template/.mobox +2 -0
  15. data/template/Gemfile +3 -0
  16. data/template/config.ru +76 -0
  17. data/template/src/assets/images/mobox-logo-inkscape.svg +177 -0
  18. data/template/src/assets/images/mobox-logo.pdf +0 -0
  19. data/template/src/assets/images/mobox-logo.png +0 -0
  20. data/template/src/assets/images/mobox-logo.svg +120 -0
  21. data/template/src/assets/javascripts/app/config.js.coffee.erb +2 -0
  22. data/template/src/assets/javascripts/app/controllers/.gitignore +0 -0
  23. data/template/src/assets/javascripts/app/controllers/home.js.coffee +10 -0
  24. data/template/src/assets/javascripts/app/helpers/.gitignore +0 -0
  25. data/template/src/assets/javascripts/app/index.js.coffee +7 -0
  26. data/template/src/assets/javascripts/app/lib/.gitignore +0 -0
  27. data/template/src/assets/javascripts/app/lib/app.js.coffee +6 -0
  28. data/template/src/assets/javascripts/app/lib/config.js.coffee +3 -0
  29. data/template/src/assets/javascripts/app/lib/view.js.coffee +18 -0
  30. data/template/src/assets/javascripts/app/models/.gitignore +0 -0
  31. data/template/src/assets/javascripts/app/views/.gitignore +0 -0
  32. data/template/src/assets/javascripts/app/views/home/index.jst.hamljs +8 -0
  33. data/template/src/assets/javascripts/application.js.coffee +25 -0
  34. data/template/src/assets/javascripts/vendor/1140gs/css3-mediaqueries.js +779 -0
  35. data/template/src/assets/javascripts/vendor/cordova-2.0.0.js +5240 -0
  36. data/template/src/assets/javascripts/vendor/gfx/gfx.cube.js +161 -0
  37. data/template/src/assets/javascripts/vendor/gfx/gfx.effects.js +330 -0
  38. data/template/src/assets/javascripts/vendor/gfx/gfx.flip.js +52 -0
  39. data/template/src/assets/javascripts/vendor/gfx/gfx.js +93 -0
  40. data/template/src/assets/javascripts/vendor/gfx/gfx.overlay.js +81 -0
  41. data/template/src/assets/javascripts/vendor/gfx/index.js +5 -0
  42. data/template/src/assets/javascripts/vendor/hammer/.gitignore +1 -0
  43. data/template/src/assets/javascripts/vendor/hammer/LICENSE +19 -0
  44. data/template/src/assets/javascripts/vendor/hammer/hammer.js +741 -0
  45. data/template/src/assets/javascripts/vendor/hammer/index.coffee +2 -0
  46. data/template/src/assets/javascripts/vendor/hammer/jquery.hammer.js +26 -0
  47. data/template/src/assets/javascripts/vendor/hammer/jquery.specialevent.hammer.js +39 -0
  48. data/template/src/assets/javascripts/vendor/jquery.js +4 -0
  49. data/template/src/assets/javascripts/vendor/jquery_transit/index.coffee +1 -0
  50. data/template/src/assets/javascripts/vendor/jquery_transit/jquery.transit.js +658 -0
  51. data/template/src/assets/javascripts/vendor/spine/ajax.js +318 -0
  52. data/template/src/assets/javascripts/vendor/spine/list.js +74 -0
  53. data/template/src/assets/javascripts/vendor/spine/local.js +30 -0
  54. data/template/src/assets/javascripts/vendor/spine/manager.js +158 -0
  55. data/template/src/assets/javascripts/vendor/spine/panel.js +132 -0
  56. data/template/src/assets/javascripts/vendor/spine/relation.js +255 -0
  57. data/template/src/assets/javascripts/vendor/spine/route.js +220 -0
  58. data/template/src/assets/javascripts/vendor/spine/spine.js +913 -0
  59. data/template/src/assets/javascripts/vendor/spine/stage.js +146 -0
  60. data/template/src/assets/javascripts/vendor/spine/tabs.js +66 -0
  61. data/template/src/assets/javascripts/vendor/spine/tmpl.js +22 -0
  62. data/template/src/assets/javascripts/vendor/spine/touch.js +79 -0
  63. data/template/src/assets/stylesheets/application.css.sass +3 -0
  64. data/template/src/assets/stylesheets/base.sass +78 -0
  65. data/template/src/assets/stylesheets/vendor/1140gs/1140gs.sass +110 -0
  66. data/template/src/assets/stylesheets/vendor/1140gs/conditionals.sass +34 -0
  67. data/template/src/assets/stylesheets/vendor/1140gs/ie.css +43 -0
  68. data/template/src/assets/stylesheets/vendor/1140gs/index.sass +1 -0
  69. data/template/src/assets/stylesheets/vendor/spine_mobile/index.sass +1 -0
  70. data/template/src/assets/stylesheets/vendor/spine_mobile/mixin.sass +89 -0
  71. data/template/src/assets/stylesheets/vendor/spine_mobile/spine_mobile.sass +57 -0
  72. data/template/src/assets/stylesheets/vendor/spine_mobile/theme.sass +79 -0
  73. data/template/src/config.yml +2 -0
  74. data/template/src/index.haml +21 -0
  75. data/vendor/compass-sprockets/README.md +5 -0
  76. data/vendor/compass-sprockets/lib/compass-sprockets.rb +32 -0
  77. data/vendor/compass-sprockets/lib/compass/sprockets.rb +56 -0
  78. data/vendor/compass-sprockets/lib/compass/sprockets/version.rb +6 -0
  79. data/vendor/compass-sprockets/lib/sprockets/compressors.rb +96 -0
  80. data/vendor/compass-sprockets/lib/sprockets/static_compiler.rb +62 -0
  81. data/vendor/haml-sprockets/Gemfile +4 -0
  82. data/vendor/haml-sprockets/LICENSE +8 -0
  83. data/vendor/haml-sprockets/README.md +33 -0
  84. data/vendor/haml-sprockets/Rakefile +1 -0
  85. data/vendor/haml-sprockets/lib/haml-sprockets.rb +34 -0
  86. data/vendor/haml-sprockets/lib/haml-sprockets/engine.rb +7 -0
  87. data/vendor/haml-sprockets/lib/haml-sprockets/version.rb +5 -0
  88. data/vendor/haml-sprockets/spec/lib/haml-sprockets_spec.rb +43 -0
  89. data/vendor/haml-sprockets/spec/spec_helper.rb +2 -0
  90. data/vendor/haml-sprockets/vendor/assets/javascripts/haml.js +651 -0
  91. data/vendor/phonegap/.gitignore +19 -0
  92. data/vendor/phonegap/LICENSE +426 -0
  93. data/vendor/phonegap/README.md +49 -0
  94. data/vendor/phonegap/VERSION +1 -0
  95. data/vendor/phonegap/changelog +205 -0
  96. data/vendor/phonegap/doc/LICENSE +548 -0
  97. data/vendor/phonegap/doc/NOTICE +11 -0
  98. data/vendor/phonegap/doc/_index.html +355 -0
  99. data/vendor/phonegap/doc/_index.json +1 -0
  100. data/vendor/phonegap/doc/arrow.png +0 -0
  101. data/vendor/phonegap/doc/cordova_accelerometer_accelerometer.md.html +728 -0
  102. data/vendor/phonegap/doc/cordova_camera_camera.cleanup.md.html +159 -0
  103. data/vendor/phonegap/doc/cordova_camera_camera.md.html +670 -0
  104. data/vendor/phonegap/doc/cordova_compass_compass.md.html +707 -0
  105. data/vendor/phonegap/doc/cordova_connection_connection.md.html +355 -0
  106. data/vendor/phonegap/doc/cordova_contacts_contacts.md.html +1715 -0
  107. data/vendor/phonegap/doc/cordova_device_device.md.html +682 -0
  108. data/vendor/phonegap/doc/cordova_events_events.md.html +1538 -0
  109. data/vendor/phonegap/doc/cordova_file_file.md.html +2306 -0
  110. data/vendor/phonegap/doc/cordova_geolocation_geolocation.md.html +1002 -0
  111. data/vendor/phonegap/doc/cordova_media_capture_capture.md.html +1256 -0
  112. data/vendor/phonegap/doc/cordova_media_media.md.html +1745 -0
  113. data/vendor/phonegap/doc/cordova_notification_notification.md.html +691 -0
  114. data/vendor/phonegap/doc/cordova_storage_storage.md.html +988 -0
  115. data/vendor/phonegap/doc/guide_command-line_index.md.html +323 -0
  116. data/vendor/phonegap/doc/guide_cordova-webview_android.md.html +180 -0
  117. data/vendor/phonegap/doc/guide_cordova-webview_index.md.html +131 -0
  118. data/vendor/phonegap/doc/guide_cordova-webview_ios.md.html +275 -0
  119. data/vendor/phonegap/doc/guide_getting-started_android_index.md.html +291 -0
  120. data/vendor/phonegap/doc/guide_getting-started_bada_index.md.html +225 -0
  121. data/vendor/phonegap/doc/guide_getting-started_blackberry_index.md.html +267 -0
  122. data/vendor/phonegap/doc/guide_getting-started_index.md.html +132 -0
  123. data/vendor/phonegap/doc/guide_getting-started_ios_index.md.html +248 -0
  124. data/vendor/phonegap/doc/guide_getting-started_symbian_index.md.html +198 -0
  125. data/vendor/phonegap/doc/guide_getting-started_webos_index.md.html +200 -0
  126. data/vendor/phonegap/doc/guide_getting-started_windows-phone_index.md.html +228 -0
  127. data/vendor/phonegap/doc/guide_plugin-development_android_index.md.html +275 -0
  128. data/vendor/phonegap/doc/guide_plugin-development_bada_index.md.html +192 -0
  129. data/vendor/phonegap/doc/guide_plugin-development_blackberry_index.md.html +259 -0
  130. data/vendor/phonegap/doc/guide_plugin-development_index.md.html +230 -0
  131. data/vendor/phonegap/doc/guide_plugin-development_ios_index.md.html +282 -0
  132. data/vendor/phonegap/doc/guide_plugin-development_webos_index.md.html +125 -0
  133. data/vendor/phonegap/doc/guide_plugin-development_windows-phone_index.md.html +125 -0
  134. data/vendor/phonegap/doc/guide_upgrading_android_index.md.html +321 -0
  135. data/vendor/phonegap/doc/guide_upgrading_bada_index.md.html +165 -0
  136. data/vendor/phonegap/doc/guide_upgrading_blackberry_index.md.html +244 -0
  137. data/vendor/phonegap/doc/guide_upgrading_index.md.html +136 -0
  138. data/vendor/phonegap/doc/guide_upgrading_ios_index.md.html +547 -0
  139. data/vendor/phonegap/doc/guide_upgrading_symbian_index.md.html +123 -0
  140. data/vendor/phonegap/doc/guide_upgrading_webos_index.md.html +161 -0
  141. data/vendor/phonegap/doc/guide_upgrading_windows-phone_index.md.html +332 -0
  142. data/vendor/phonegap/doc/guide_whitelist_index.md.html +299 -0
  143. data/vendor/phonegap/doc/img/guide/getting-started/android/AndroidFlow.png +0 -0
  144. data/vendor/phonegap/doc/img/guide/getting-started/android/buildPath.jpg +0 -0
  145. data/vendor/phonegap/doc/img/guide/getting-started/android/javaSrc.jpg +0 -0
  146. data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.jpg +0 -0
  147. data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.png +0 -0
  148. data/vendor/phonegap/doc/img/guide/getting-started/android/new_android_project.jpeg +0 -0
  149. data/vendor/phonegap/doc/img/guide/getting-started/android/step_1.png +0 -0
  150. data/vendor/phonegap/doc/img/guide/getting-started/android/step_2.png +0 -0
  151. data/vendor/phonegap/doc/img/guide/getting-started/android/step_3.png +0 -0
  152. data/vendor/phonegap/doc/img/guide/getting-started/android/step_4.png +0 -0
  153. data/vendor/phonegap/doc/img/guide/getting-started/android/step_5.png +0 -0
  154. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_1_run.png +0 -0
  155. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_2_run.png +0 -0
  156. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_project.png +0 -0
  157. data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_set_target.png +0 -0
  158. data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project.png +0 -0
  159. data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project_2.png +0 -0
  160. data/vendor/phonegap/doc/img/guide/getting-started/ios/HelloWorldiPhone4.png +0 -0
  161. data/vendor/phonegap/doc/img/guide/getting-started/ios/XCode4-templates.png +0 -0
  162. data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_create_project.png +0 -0
  163. data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_folder.png +0 -0
  164. data/vendor/phonegap/doc/img/guide/getting-started/ios/create-folder-reference.png +0 -0
  165. data/vendor/phonegap/doc/img/guide/getting-started/ios/index-not-found.png +0 -0
  166. data/vendor/phonegap/doc/img/guide/getting-started/ios/project.jpg +0 -0
  167. data/vendor/phonegap/doc/img/guide/getting-started/ios/www-folder.png +0 -0
  168. data/vendor/phonegap/doc/img/guide/getting-started/ios/xcode4-name_your_app.png +0 -0
  169. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wp7projectstructure.PNG +0 -0
  170. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpd.png +0 -0
  171. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpfirstrun.PNG +0 -0
  172. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpnewproj.PNG +0 -0
  173. data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wprun.png +0 -0
  174. data/vendor/phonegap/doc/index.css +404 -0
  175. data/vendor/phonegap/doc/index.html +210 -0
  176. data/vendor/phonegap/doc/index.js +74 -0
  177. data/vendor/phonegap/doc/line.png +0 -0
  178. data/vendor/phonegap/doc/mobile.css +139 -0
  179. data/vendor/phonegap/doc/prettify/LICENSE +191 -0
  180. data/vendor/phonegap/doc/prettify/lang-apollo.js +2 -0
  181. data/vendor/phonegap/doc/prettify/lang-css.js +2 -0
  182. data/vendor/phonegap/doc/prettify/lang-hs.js +2 -0
  183. data/vendor/phonegap/doc/prettify/lang-lisp.js +2 -0
  184. data/vendor/phonegap/doc/prettify/lang-lua.js +2 -0
  185. data/vendor/phonegap/doc/prettify/lang-ml.js +2 -0
  186. data/vendor/phonegap/doc/prettify/lang-proto.js +1 -0
  187. data/vendor/phonegap/doc/prettify/lang-scala.js +2 -0
  188. data/vendor/phonegap/doc/prettify/lang-sql.js +2 -0
  189. data/vendor/phonegap/doc/prettify/lang-vb.js +2 -0
  190. data/vendor/phonegap/doc/prettify/lang-vhdl.js +3 -0
  191. data/vendor/phonegap/doc/prettify/lang-wiki.js +2 -0
  192. data/vendor/phonegap/doc/prettify/lang-yaml.js +2 -0
  193. data/vendor/phonegap/doc/prettify/prettify.css +44 -0
  194. data/vendor/phonegap/doc/prettify/prettify.js +33 -0
  195. data/vendor/phonegap/keys +201 -0
  196. data/vendor/phonegap/lib/DISCLAIMER +8 -0
  197. data/vendor/phonegap/lib/LICENSE +548 -0
  198. data/vendor/phonegap/lib/NOTICE +11 -0
  199. data/vendor/phonegap/lib/README.MD +54 -0
  200. data/vendor/phonegap/lib/android/LICENSE +202 -0
  201. data/vendor/phonegap/lib/android/NOTICE +5 -0
  202. data/vendor/phonegap/lib/android/README.md +114 -0
  203. data/vendor/phonegap/lib/android/VERSION +1 -0
  204. data/vendor/phonegap/lib/android/bin/create +147 -0
  205. data/vendor/phonegap/lib/android/bin/create.bat +15 -0
  206. data/vendor/phonegap/lib/android/bin/create.js +188 -0
  207. data/vendor/phonegap/lib/android/bin/create.xml +98 -0
  208. data/vendor/phonegap/lib/android/bin/package.json +22 -0
  209. data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class +0 -0
  210. data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.java +44 -0
  211. data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM +7 -0
  212. data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM.bat +1 -0
  213. data/vendor/phonegap/lib/android/bin/templates/cordova/appinfo.jar +0 -0
  214. data/vendor/phonegap/lib/android/bin/templates/cordova/clean +7 -0
  215. data/vendor/phonegap/lib/android/bin/templates/cordova/clean.bat +1 -0
  216. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova +85 -0
  217. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.bat +15 -0
  218. data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.js +104 -0
  219. data/vendor/phonegap/lib/android/bin/templates/cordova/debug +7 -0
  220. data/vendor/phonegap/lib/android/bin/templates/cordova/debug.bat +1 -0
  221. data/vendor/phonegap/lib/android/bin/templates/cordova/emulate +7 -0
  222. data/vendor/phonegap/lib/android/bin/templates/cordova/emulate.bat +1 -0
  223. data/vendor/phonegap/lib/android/bin/templates/cordova/log +7 -0
  224. data/vendor/phonegap/lib/android/bin/templates/cordova/log.bat +1 -0
  225. data/vendor/phonegap/lib/android/bin/templates/project/Activity.java +35 -0
  226. data/vendor/phonegap/lib/android/bin/templates/project/AndroidManifest.xml +61 -0
  227. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/index.html +60 -0
  228. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/main.js +165 -0
  229. data/vendor/phonegap/lib/android/bin/templates/project/assets/www/master.css +116 -0
  230. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-hdpi/icon.png +0 -0
  231. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-ldpi/icon.png +0 -0
  232. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-mdpi/icon.png +0 -0
  233. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-xhdpi/icon.png +0 -0
  234. data/vendor/phonegap/lib/android/bin/templates/project/res/drawable/icon.png +0 -0
  235. data/vendor/phonegap/lib/android/bin/tests/test_create_unix.js +135 -0
  236. data/vendor/phonegap/lib/android/bin/tests/test_create_win.js +143 -0
  237. data/vendor/phonegap/lib/android/cordova-2.0.0.jar +0 -0
  238. data/vendor/phonegap/lib/android/cordova-2.0.0.js +5724 -0
  239. data/vendor/phonegap/lib/android/example/AndroidManifest.xml +61 -0
  240. data/vendor/phonegap/lib/android/example/ant.properties +17 -0
  241. data/vendor/phonegap/lib/android/example/assets/www/cordova-2.0.0.js +5724 -0
  242. data/vendor/phonegap/lib/android/example/assets/www/index.html +60 -0
  243. data/vendor/phonegap/lib/android/example/assets/www/main.js +165 -0
  244. data/vendor/phonegap/lib/android/example/assets/www/master.css +116 -0
  245. data/vendor/phonegap/lib/android/example/build.xml +83 -0
  246. data/vendor/phonegap/lib/android/example/cordova/BOOM +7 -0
  247. data/vendor/phonegap/lib/android/example/cordova/appinfo.jar +0 -0
  248. data/vendor/phonegap/lib/android/example/cordova/clean +7 -0
  249. data/vendor/phonegap/lib/android/example/cordova/cordova +85 -0
  250. data/vendor/phonegap/lib/android/example/cordova/debug +7 -0
  251. data/vendor/phonegap/lib/android/example/cordova/emulate +7 -0
  252. data/vendor/phonegap/lib/android/example/cordova/log +7 -0
  253. data/vendor/phonegap/lib/android/example/libs/cordova-2.0.0.jar +0 -0
  254. data/vendor/phonegap/lib/android/example/proguard-project.txt +20 -0
  255. data/vendor/phonegap/lib/android/example/project.properties +14 -0
  256. data/vendor/phonegap/lib/android/example/res/drawable-hdpi/ic_launcher.png +0 -0
  257. data/vendor/phonegap/lib/android/example/res/drawable-hdpi/icon.png +0 -0
  258. data/vendor/phonegap/lib/android/example/res/drawable-ldpi/ic_launcher.png +0 -0
  259. data/vendor/phonegap/lib/android/example/res/drawable-ldpi/icon.png +0 -0
  260. data/vendor/phonegap/lib/android/example/res/drawable-mdpi/ic_launcher.png +0 -0
  261. data/vendor/phonegap/lib/android/example/res/drawable-mdpi/icon.png +0 -0
  262. data/vendor/phonegap/lib/android/example/res/drawable-xhdpi/icon.png +0 -0
  263. data/vendor/phonegap/lib/android/example/res/drawable/icon.png +0 -0
  264. data/vendor/phonegap/lib/android/example/res/layout/main.xml +13 -0
  265. data/vendor/phonegap/lib/android/example/res/values/strings.xml +4 -0
  266. data/vendor/phonegap/lib/android/example/res/xml/config.xml +54 -0
  267. data/vendor/phonegap/lib/android/example/src/org/apache/cordova/example/cordovaExample.java +35 -0
  268. data/vendor/phonegap/lib/android/xml/config.xml +54 -0
  269. data/vendor/phonegap/lib/bada/Icons/Cordova.png +0 -0
  270. data/vendor/phonegap/lib/bada/Icons/Cordova_Splash.png +0 -0
  271. data/vendor/phonegap/lib/bada/LICENSE +202 -0
  272. data/vendor/phonegap/lib/bada/NOTICE +5 -0
  273. data/vendor/phonegap/lib/bada/README.md +48 -0
  274. data/vendor/phonegap/lib/bada/Res/cordova/accelerometer.js +131 -0
  275. data/vendor/phonegap/lib/bada/Res/cordova/camera.js +102 -0
  276. data/vendor/phonegap/lib/bada/Res/cordova/compass.js +77 -0
  277. data/vendor/phonegap/lib/bada/Res/cordova/contact.js +355 -0
  278. data/vendor/phonegap/lib/bada/Res/cordova/cordova.base.js +561 -0
  279. data/vendor/phonegap/lib/bada/Res/cordova/cordova.bat +21 -0
  280. data/vendor/phonegap/lib/bada/Res/cordova/cordova.js +1661 -0
  281. data/vendor/phonegap/lib/bada/Res/cordova/debugconsole.js +126 -0
  282. data/vendor/phonegap/lib/bada/Res/cordova/device.js +46 -0
  283. data/vendor/phonegap/lib/bada/Res/cordova/file.js +682 -0
  284. data/vendor/phonegap/lib/bada/Res/cordova/geolocation.js +152 -0
  285. data/vendor/phonegap/lib/bada/Res/cordova/network.js +70 -0
  286. data/vendor/phonegap/lib/bada/Res/cordova/notification.js +117 -0
  287. data/vendor/phonegap/lib/bada/Res/cordova/position.js +74 -0
  288. data/vendor/phonegap/lib/bada/Res/eng-GB.xml +26 -0
  289. data/vendor/phonegap/lib/bada/Res/images/cordova_logo_normal_dark.png +0 -0
  290. data/vendor/phonegap/lib/bada/Res/index.html +108 -0
  291. data/vendor/phonegap/lib/bada/Res/main.js +390 -0
  292. data/vendor/phonegap/lib/bada/VERSION +1 -0
  293. data/vendor/phonegap/lib/bada/application.xml +45 -0
  294. data/vendor/phonegap/lib/bada/inc/Accelerometer.h +54 -0
  295. data/vendor/phonegap/lib/bada/inc/Compass.h +52 -0
  296. data/vendor/phonegap/lib/bada/inc/Contacts.h +62 -0
  297. data/vendor/phonegap/lib/bada/inc/Cordova.h +82 -0
  298. data/vendor/phonegap/lib/bada/inc/CordovaCommand.h +46 -0
  299. data/vendor/phonegap/lib/bada/inc/DebugConsole.h +41 -0
  300. data/vendor/phonegap/lib/bada/inc/Device.h +43 -0
  301. data/vendor/phonegap/lib/bada/inc/GeoLocation.h +52 -0
  302. data/vendor/phonegap/lib/bada/inc/Kamera.h +49 -0
  303. data/vendor/phonegap/lib/bada/inc/Network.h +56 -0
  304. data/vendor/phonegap/lib/bada/inc/Notification.h +50 -0
  305. data/vendor/phonegap/lib/bada/inc/WebForm.h +97 -0
  306. data/vendor/phonegap/lib/bada/manifest.xml +61 -0
  307. data/vendor/phonegap/lib/bada/src/Accelerometer.cpp +135 -0
  308. data/vendor/phonegap/lib/bada/src/Compass.cpp +131 -0
  309. data/vendor/phonegap/lib/bada/src/Contacts.cpp +600 -0
  310. data/vendor/phonegap/lib/bada/src/Cordova.cpp +139 -0
  311. data/vendor/phonegap/lib/bada/src/CordovaCommand.cpp +33 -0
  312. data/vendor/phonegap/lib/bada/src/CordovaEntry.cpp +60 -0
  313. data/vendor/phonegap/lib/bada/src/DebugConsole.cpp +81 -0
  314. data/vendor/phonegap/lib/bada/src/Device.cpp +81 -0
  315. data/vendor/phonegap/lib/bada/src/GeoLocation.cpp +144 -0
  316. data/vendor/phonegap/lib/bada/src/Kamera.cpp +121 -0
  317. data/vendor/phonegap/lib/bada/src/Network.cpp +123 -0
  318. data/vendor/phonegap/lib/bada/src/Notification.cpp +176 -0
  319. data/vendor/phonegap/lib/bada/src/WebForm.cpp +231 -0
  320. data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type4.png +0 -0
  321. data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type5.png +0 -0
  322. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_icon_type5.png +0 -0
  323. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type3.png +0 -0
  324. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type4.png +0 -0
  325. data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_splash_type3.png +0 -0
  326. data/vendor/phonegap/lib/badaWac/LICENSE +201 -0
  327. data/vendor/phonegap/lib/badaWac/NOTICE +5 -0
  328. data/vendor/phonegap/lib/badaWac/README.md +12 -0
  329. data/vendor/phonegap/lib/badaWac/Res/config.xml +47 -0
  330. data/vendor/phonegap/lib/badaWac/Res/cordova-2.0.0.js +5676 -0
  331. data/vendor/phonegap/lib/badaWac/Res/css/index.css +100 -0
  332. data/vendor/phonegap/lib/badaWac/Res/img/cordova.png +0 -0
  333. data/vendor/phonegap/lib/badaWac/Res/index.html +24 -0
  334. data/vendor/phonegap/lib/badaWac/Res/js/index.js +15 -0
  335. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_128.png +0 -0
  336. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_16.png +0 -0
  337. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_24.png +0 -0
  338. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_256.png +0 -0
  339. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_32.png +0 -0
  340. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_48.png +0 -0
  341. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_512.png +0 -0
  342. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_64.png +0 -0
  343. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_36.png +0 -0
  344. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_48.png +0 -0
  345. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_72.png +0 -0
  346. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_96.png +0 -0
  347. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_bb_80.png +0 -0
  348. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_114.png +0 -0
  349. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_144.png +0 -0
  350. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_57.png +0 -0
  351. data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_72.png +0 -0
  352. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_landscape.png +0 -0
  353. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_portrait.png +0 -0
  354. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_landscape.png +0 -0
  355. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_portrait.png +0 -0
  356. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_landscape.png +0 -0
  357. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_portrait.png +0 -0
  358. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_landscape.png +0 -0
  359. data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_portrait.png +0 -0
  360. data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_300.png +0 -0
  361. data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_400.png +0 -0
  362. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_landscape.png +0 -0
  363. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_portrait.png +0 -0
  364. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_landscape.png +0 -0
  365. data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_portrait.png +0 -0
  366. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_landscape.png +0 -0
  367. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_portrait.png +0 -0
  368. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_landscape.png +0 -0
  369. data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_portrait.png +0 -0
  370. data/vendor/phonegap/lib/badaWac/Res/res/screen/windows_phone_portrait.jpg +0 -0
  371. data/vendor/phonegap/lib/badaWac/Res/sample/index.html +167 -0
  372. data/vendor/phonegap/lib/badaWac/Res/sample/js/cordova.js +5576 -0
  373. data/vendor/phonegap/lib/badaWac/Res/sample/js/sample.js +404 -0
  374. data/vendor/phonegap/lib/badaWac/Res/spec.html +50 -0
  375. data/vendor/phonegap/lib/badaWac/Res/spec/helper.js +11 -0
  376. data/vendor/phonegap/lib/badaWac/Res/spec/index.js +49 -0
  377. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
  378. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
  379. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
  380. data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
  381. data/vendor/phonegap/lib/badaWac/VERSION +1 -0
  382. data/vendor/phonegap/lib/badaWac/application.xml +51 -0
  383. data/vendor/phonegap/lib/badaWac/manifest.xml +58 -0
  384. data/vendor/phonegap/lib/blackberry/LICENSE +268 -0
  385. data/vendor/phonegap/lib/blackberry/NOTICE +8 -0
  386. data/vendor/phonegap/lib/blackberry/README.md +90 -0
  387. data/vendor/phonegap/lib/blackberry/VERSION +1 -0
  388. data/vendor/phonegap/lib/blackberry/bin/create +84 -0
  389. data/vendor/phonegap/lib/blackberry/bin/create.bat +14 -0
  390. data/vendor/phonegap/lib/blackberry/bin/create.js +94 -0
  391. data/vendor/phonegap/lib/blackberry/bin/templates/dist/README.md +90 -0
  392. data/vendor/phonegap/lib/blackberry/bin/templates/project/blackberry.xml +356 -0
  393. data/vendor/phonegap/lib/blackberry/bin/templates/project/build.xml +138 -0
  394. data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/debug +53 -0
  395. data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/emulate +40 -0
  396. data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/LICENSE.txt +47 -0
  397. data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
  398. data/vendor/phonegap/lib/blackberry/bin/templates/project/playbook.xml +283 -0
  399. data/vendor/phonegap/lib/blackberry/bin/templates/project/project.properties +97 -0
  400. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/config.xml +82 -0
  401. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/index.html +976 -0
  402. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/json2.js +482 -0
  403. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/plugins.xml +34 -0
  404. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/icon.png +0 -0
  405. data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/loading_foreground.png +0 -0
  406. data/vendor/phonegap/lib/blackberry/sample/blackberry.xml +356 -0
  407. data/vendor/phonegap/lib/blackberry/sample/build.xml +138 -0
  408. data/vendor/phonegap/lib/blackberry/sample/cordova/debug +53 -0
  409. data/vendor/phonegap/lib/blackberry/sample/cordova/emulate +40 -0
  410. data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/LICENSE.txt +47 -0
  411. data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
  412. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/library.xml +40 -0
  413. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  414. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext/cordova.2.0.0.jar +0 -0
  415. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/cordova-2.0.0.js +6407 -0
  416. data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/playbook/cordova-2.0.0.js +6845 -0
  417. data/vendor/phonegap/lib/blackberry/sample/playbook.xml +283 -0
  418. data/vendor/phonegap/lib/blackberry/sample/project.properties +97 -0
  419. data/vendor/phonegap/lib/blackberry/sample/www/config.xml +82 -0
  420. data/vendor/phonegap/lib/blackberry/sample/www/cordova-2.0.0.js +6407 -0
  421. data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/library.xml +40 -0
  422. data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  423. data/vendor/phonegap/lib/blackberry/sample/www/ext/cordova.2.0.0.jar +0 -0
  424. data/vendor/phonegap/lib/blackberry/sample/www/index.html +976 -0
  425. data/vendor/phonegap/lib/blackberry/sample/www/json2.js +482 -0
  426. data/vendor/phonegap/lib/blackberry/sample/www/playbook/cordova-2.0.0.js +6845 -0
  427. data/vendor/phonegap/lib/blackberry/sample/www/plugins.xml +34 -0
  428. data/vendor/phonegap/lib/blackberry/sample/www/resources/icon.png +0 -0
  429. data/vendor/phonegap/lib/blackberry/sample/www/resources/loading_foreground.png +0 -0
  430. data/vendor/phonegap/lib/blackberry/www/config.xml +82 -0
  431. data/vendor/phonegap/lib/blackberry/www/cordova-2.0.0.js +6407 -0
  432. data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/library.xml +40 -0
  433. data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
  434. data/vendor/phonegap/lib/blackberry/www/ext/cordova.2.0.0.jar +0 -0
  435. data/vendor/phonegap/lib/blackberry/www/playbook/cordova-2.0.0.js +6845 -0
  436. data/vendor/phonegap/lib/blackberry/www/plugins.xml +34 -0
  437. data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg +0 -0
  438. data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg.SHA1 +1 -0
  439. data/vendor/phonegap/lib/ios/LICENSE +394 -0
  440. data/vendor/phonegap/lib/ios/NOTICE +5 -0
  441. data/vendor/phonegap/lib/ios/bin/BOOM +27 -0
  442. data/vendor/phonegap/lib/ios/bin/README.md +29 -0
  443. data/vendor/phonegap/lib/ios/bin/_build.sh +92 -0
  444. data/vendor/phonegap/lib/ios/bin/autotest +24 -0
  445. data/vendor/phonegap/lib/ios/bin/bench +48 -0
  446. data/vendor/phonegap/lib/ios/bin/create +99 -0
  447. data/vendor/phonegap/lib/ios/bin/package.json +15 -0
  448. data/vendor/phonegap/lib/ios/bin/replaces +28 -0
  449. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateIcon.icns +0 -0
  450. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateInfo.plist +28 -0
  451. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/project.pbxproj +638 -0
  452. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/.gitignore +6 -0
  453. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.h +45 -0
  454. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.m +135 -0
  455. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.h +32 -0
  456. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.m +141 -0
  457. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.xib +138 -0
  458. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Cordova.plist +83 -0
  459. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/CordovaBuildSettings.xcconfig +26 -0
  460. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Plugins/README +20 -0
  461. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg.png +0 -0
  462. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x.png +0 -0
  463. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x~ipad.png +0 -0
  464. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg~ipad.png +0 -0
  465. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone.png +0 -0
  466. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x.png +0 -0
  467. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x~ipad.png +0 -0
  468. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone~ipad.png +0 -0
  469. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button.png +0 -0
  470. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x.png +0 -0
  471. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x~ipad.png +0 -0
  472. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button~ipad.png +0 -0
  473. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg.png +0 -0
  474. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x.png +0 -0
  475. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x~ipad.png +0 -0
  476. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg~ipad.png +0 -0
  477. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button.png +0 -0
  478. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x.png +0 -0
  479. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x~ipad.png +0 -0
  480. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button~ipad.png +0 -0
  481. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/de.lproj/Localizable.strings +26 -0
  482. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/en.lproj/Localizable.strings +25 -0
  483. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/es.lproj/Localizable.strings +25 -0
  484. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72.png +0 -0
  485. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72@2x.png +0 -0
  486. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon.png +0 -0
  487. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon@2x.png +0 -0
  488. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/se.lproj/Localizable.strings +26 -0
  489. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape@2x~ipad.png +0 -0
  490. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape~ipad.png +0 -0
  491. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait@2x~ipad.png +0 -0
  492. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait~ipad.png +0 -0
  493. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default@2x~iphone.png +0 -0
  494. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default~iphone.png +0 -0
  495. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Info.plist +78 -0
  496. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch +26 -0
  497. data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/main.m +35 -0
  498. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/debug +47 -0
  499. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/emulate +58 -0
  500. data/vendor/phonegap/lib/ios/bin/templates/project/cordova/log +26 -0
  501. data/vendor/phonegap/lib/ios/bin/templates/project/www/config.xml +47 -0
  502. data/vendor/phonegap/lib/ios/bin/templates/project/www/cordova-2.0.0.js +5240 -0
  503. data/vendor/phonegap/lib/ios/bin/templates/project/www/css/index.css +100 -0
  504. data/vendor/phonegap/lib/ios/bin/templates/project/www/img/cordova.png +0 -0
  505. data/vendor/phonegap/lib/ios/bin/templates/project/www/index.html +44 -0
  506. data/vendor/phonegap/lib/ios/bin/templates/project/www/js/index.js +20 -0
  507. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_128.png +0 -0
  508. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_16.png +0 -0
  509. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_24.png +0 -0
  510. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_256.png +0 -0
  511. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_32.png +0 -0
  512. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_48.png +0 -0
  513. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_512.png +0 -0
  514. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_64.png +0 -0
  515. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_36.png +0 -0
  516. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_48.png +0 -0
  517. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_72.png +0 -0
  518. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_96.png +0 -0
  519. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_bb_80.png +0 -0
  520. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_114.png +0 -0
  521. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_144.png +0 -0
  522. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_57.png +0 -0
  523. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_72.png +0 -0
  524. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_landscape.png +0 -0
  525. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_portrait.png +0 -0
  526. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_landscape.png +0 -0
  527. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_portrait.png +0 -0
  528. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_landscape.png +0 -0
  529. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_portrait.png +0 -0
  530. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_landscape.png +0 -0
  531. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_portrait.png +0 -0
  532. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_300.png +0 -0
  533. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_400.png +0 -0
  534. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_landscape.png +0 -0
  535. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_portrait.png +0 -0
  536. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_landscape.png +0 -0
  537. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_portrait.png +0 -0
  538. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_landscape.png +0 -0
  539. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_portrait.png +0 -0
  540. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_landscape.png +0 -0
  541. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_portrait.png +0 -0
  542. data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/windows_phone_portrait.jpg +0 -0
  543. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec.html +50 -0
  544. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/helper.js +11 -0
  545. data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/index.js +49 -0
  546. data/vendor/phonegap/lib/ios/bin/test +44 -0
  547. data/vendor/phonegap/lib/ios/bin/tests/autotest.coffee +24 -0
  548. data/vendor/phonegap/lib/ios/bin/tests/create.coffee +34 -0
  549. data/vendor/phonegap/lib/ios/bin/tests/debug.coffee +18 -0
  550. data/vendor/phonegap/lib/ios/bin/tests/test.coffee +18 -0
  551. data/vendor/phonegap/lib/symbian/deprecated.txt +1 -0
  552. data/vendor/phonegap/lib/webos/LICENSE +202 -0
  553. data/vendor/phonegap/lib/webos/Makefile +127 -0
  554. data/vendor/phonegap/lib/webos/NOTICE +11 -0
  555. data/vendor/phonegap/lib/webos/README.md +52 -0
  556. data/vendor/phonegap/lib/webos/VERSION +1 -0
  557. data/vendor/phonegap/lib/webos/framework/appinfo.json +10 -0
  558. data/vendor/phonegap/lib/webos/framework/config.xml +47 -0
  559. data/vendor/phonegap/lib/webos/framework/cordova_48.png +0 -0
  560. data/vendor/phonegap/lib/webos/framework/css/index.css +100 -0
  561. data/vendor/phonegap/lib/webos/framework/img/cordova.png +0 -0
  562. data/vendor/phonegap/lib/webos/framework/index.html +24 -0
  563. data/vendor/phonegap/lib/webos/framework/js/index.js +20 -0
  564. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_128.png +0 -0
  565. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_16.png +0 -0
  566. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_24.png +0 -0
  567. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_256.png +0 -0
  568. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_32.png +0 -0
  569. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_48.png +0 -0
  570. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_512.png +0 -0
  571. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_64.png +0 -0
  572. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_36.png +0 -0
  573. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_48.png +0 -0
  574. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_72.png +0 -0
  575. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_96.png +0 -0
  576. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_bb_80.png +0 -0
  577. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_114.png +0 -0
  578. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_144.png +0 -0
  579. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_57.png +0 -0
  580. data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_72.png +0 -0
  581. data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_landscape.png +0 -0
  582. data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_portrait.png +0 -0
  583. data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_landscape.png +0 -0
  584. data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_portrait.png +0 -0
  585. data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_landscape.png +0 -0
  586. data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_portrait.png +0 -0
  587. data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_landscape.png +0 -0
  588. data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_portrait.png +0 -0
  589. data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_300.png +0 -0
  590. data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_400.png +0 -0
  591. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_landscape.png +0 -0
  592. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_portrait.png +0 -0
  593. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_landscape.png +0 -0
  594. data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_portrait.png +0 -0
  595. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_landscape.png +0 -0
  596. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_portrait.png +0 -0
  597. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_landscape.png +0 -0
  598. data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_portrait.png +0 -0
  599. data/vendor/phonegap/lib/webos/framework/res/screen/windows_phone_portrait.jpg +0 -0
  600. data/vendor/phonegap/lib/webos/framework/spec.html +50 -0
  601. data/vendor/phonegap/lib/webos/framework/spec/helper.js +11 -0
  602. data/vendor/phonegap/lib/webos/framework/spec/index.js +49 -0
  603. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
  604. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
  605. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
  606. data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
  607. data/vendor/phonegap/lib/webos/js/acceleration.js +59 -0
  608. data/vendor/phonegap/lib/webos/js/accelerometer.js +133 -0
  609. data/vendor/phonegap/lib/webos/js/application.js +54 -0
  610. data/vendor/phonegap/lib/webos/js/audio.js +113 -0
  611. data/vendor/phonegap/lib/webos/js/camera.js +60 -0
  612. data/vendor/phonegap/lib/webos/js/compass.js +167 -0
  613. data/vendor/phonegap/lib/webos/js/contacts.js +69 -0
  614. data/vendor/phonegap/lib/webos/js/cordova-core.js +405 -0
  615. data/vendor/phonegap/lib/webos/js/debugconsole.js +62 -0
  616. data/vendor/phonegap/lib/webos/js/device.js +98 -0
  617. data/vendor/phonegap/lib/webos/js/file.js +79 -0
  618. data/vendor/phonegap/lib/webos/js/geolocation.js +232 -0
  619. data/vendor/phonegap/lib/webos/js/map.js +67 -0
  620. data/vendor/phonegap/lib/webos/js/mojo.js +81 -0
  621. data/vendor/phonegap/lib/webos/js/mouse.js +40 -0
  622. data/vendor/phonegap/lib/webos/js/network.js +96 -0
  623. data/vendor/phonegap/lib/webos/js/notification.js +139 -0
  624. data/vendor/phonegap/lib/webos/js/orientation.js +124 -0
  625. data/vendor/phonegap/lib/webos/js/position.js +87 -0
  626. data/vendor/phonegap/lib/webos/js/service.js +74 -0
  627. data/vendor/phonegap/lib/webos/js/sms.js +60 -0
  628. data/vendor/phonegap/lib/webos/js/telephony.js +45 -0
  629. data/vendor/phonegap/lib/webos/js/window.js +88 -0
  630. data/vendor/phonegap/lib/webos/js/windowproperties.js +31 -0
  631. data/vendor/phonegap/lib/webos/lib/thumbs.0.5.2.js +104 -0
  632. data/vendor/phonegap/lib/windows-phone/LICENSE +12 -0
  633. data/vendor/phonegap/lib/windows-phone/NOTICE +5 -0
  634. data/vendor/phonegap/lib/windows-phone/README.md +50 -0
  635. data/vendor/phonegap/lib/windows-phone/VERSION +1 -0
  636. data/vendor/phonegap/lib/windows-phone/bin/create.bat +1 -0
  637. data/vendor/phonegap/lib/windows-phone/bin/create.js +154 -0
  638. data/vendor/phonegap/lib/windows-phone/example/App.xaml +37 -0
  639. data/vendor/phonegap/lib/windows-phone/example/App.xaml.cs +154 -0
  640. data/vendor/phonegap/lib/windows-phone/example/ApplicationIcon.png +0 -0
  641. data/vendor/phonegap/lib/windows-phone/example/Background.png +0 -0
  642. data/vendor/phonegap/lib/windows-phone/example/BuildManifestProcessor.js +81 -0
  643. data/vendor/phonegap/lib/windows-phone/example/CordovaExample.csproj +195 -0
  644. data/vendor/phonegap/lib/windows-phone/example/CordovaExample.sln +28 -0
  645. data/vendor/phonegap/lib/windows-phone/example/CordovaSourceDictionary.xml +4 -0
  646. data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml +52 -0
  647. data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml.cs +70 -0
  648. data/vendor/phonegap/lib/windows-phone/example/Plugins/Calculator.cs +46 -0
  649. data/vendor/phonegap/lib/windows-phone/example/Properties/AppManifest.xml +24 -0
  650. data/vendor/phonegap/lib/windows-phone/example/Properties/AssemblyInfo.cs +38 -0
  651. data/vendor/phonegap/lib/windows-phone/example/Properties/WMAppManifest.xml +59 -0
  652. data/vendor/phonegap/lib/windows-phone/example/SplashScreenImage.jpg +0 -0
  653. data/vendor/phonegap/lib/windows-phone/example/www/accelerometer.html +164 -0
  654. data/vendor/phonegap/lib/windows-phone/example/www/accelerometer2.html +175 -0
  655. data/vendor/phonegap/lib/windows-phone/example/www/audio.html +267 -0
  656. data/vendor/phonegap/lib/windows-phone/example/www/calculator.html +84 -0
  657. data/vendor/phonegap/lib/windows-phone/example/www/camera.html +115 -0
  658. data/vendor/phonegap/lib/windows-phone/example/www/capture.html +207 -0
  659. data/vendor/phonegap/lib/windows-phone/example/www/compass.html +150 -0
  660. data/vendor/phonegap/lib/windows-phone/example/www/contacts.html +169 -0
  661. data/vendor/phonegap/lib/windows-phone/example/www/cordova-2.0.0.js +5658 -0
  662. data/vendor/phonegap/lib/windows-phone/example/www/events.html +146 -0
  663. data/vendor/phonegap/lib/windows-phone/example/www/file.html +284 -0
  664. data/vendor/phonegap/lib/windows-phone/example/www/index.html +108 -0
  665. data/vendor/phonegap/lib/windows-phone/example/www/location.html +165 -0
  666. data/vendor/phonegap/lib/windows-phone/example/www/master.css +156 -0
  667. data/vendor/phonegap/lib/windows-phone/example/www/network.html +96 -0
  668. data/vendor/phonegap/lib/windows-phone/example/www/notification.html +112 -0
  669. data/vendor/phonegap/lib/windows-phone/example/www/storage.html +78 -0
  670. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.back.rest.png +0 -0
  671. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.close.rest.png +0 -0
  672. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.feature.video.rest.png +0 -0
  673. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.next.rest.png +0 -0
  674. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.save.rest.png +0 -0
  675. data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.stop.rest.png +0 -0
  676. data/vendor/phonegap/lib/windows-phone/framework/Properties/AssemblyInfo.cs +35 -0
  677. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.csproj +281 -0
  678. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.sln +20 -0
  679. data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLibBare.csproj +127 -0
  680. data/vendor/phonegap/lib/windows-phone/framework/WP7GapClassLibBare.sln +20 -0
  681. data/vendor/phonegap/lib/windows-phone/framework/resources/notification-beep.wav +0 -0
  682. data/vendor/phonegap/lib/windows-phone/templates/CordovaStarter-2.0.0.zip +0 -0
  683. data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml +37 -0
  684. data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml.cs +154 -0
  685. data/vendor/phonegap/lib/windows-phone/templates/custom/ApplicationIcon.png +0 -0
  686. data/vendor/phonegap/lib/windows-phone/templates/custom/Background.png +0 -0
  687. data/vendor/phonegap/lib/windows-phone/templates/custom/BuildManifestProcessor.js +83 -0
  688. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaAppProj.csproj +152 -0
  689. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSolution.sln +22 -0
  690. data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSourceDictionary.xml +23 -0
  691. data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml +52 -0
  692. data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml.cs +72 -0
  693. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AppManifest.xml +6 -0
  694. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AssemblyInfo.cs +38 -0
  695. data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/WMAppManifest.xml +32 -0
  696. data/vendor/phonegap/lib/windows-phone/templates/custom/SplashScreenImage.jpg +0 -0
  697. data/vendor/phonegap/lib/windows-phone/templates/custom/VERSION +1 -0
  698. data/vendor/phonegap/lib/windows-phone/templates/custom/www/cordova-2.0.0.js +5672 -0
  699. data/vendor/phonegap/lib/windows-phone/templates/custom/www/css/index.css +100 -0
  700. data/vendor/phonegap/lib/windows-phone/templates/custom/www/img/cordova.png +0 -0
  701. data/vendor/phonegap/lib/windows-phone/templates/custom/www/index.html +24 -0
  702. data/vendor/phonegap/lib/windows-phone/templates/custom/www/js/index.js +20 -0
  703. data/vendor/phonegap/lib/windows-phone/templates/description.txt +4 -0
  704. data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml +37 -0
  705. data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml.cs +154 -0
  706. data/vendor/phonegap/lib/windows-phone/templates/full/ApplicationIcon.png +0 -0
  707. data/vendor/phonegap/lib/windows-phone/templates/full/Background.png +0 -0
  708. data/vendor/phonegap/lib/windows-phone/templates/full/BuildManifestProcessor.js +80 -0
  709. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaAppProj.csproj +153 -0
  710. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaLib/WP7CordovaClassLib.dll +0 -0
  711. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSolution.sln +22 -0
  712. data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSourceDictionary.xml +9 -0
  713. data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml +52 -0
  714. data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml.cs +72 -0
  715. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AppManifest.xml +6 -0
  716. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AssemblyInfo.cs +38 -0
  717. data/vendor/phonegap/lib/windows-phone/templates/full/Properties/WMAppManifest.xml +41 -0
  718. data/vendor/phonegap/lib/windows-phone/templates/full/SplashScreenImage.jpg +0 -0
  719. data/vendor/phonegap/lib/windows-phone/templates/full/VERSION +1 -0
  720. data/vendor/phonegap/lib/windows-phone/templates/full/cordova/debug.bat +68 -0
  721. data/vendor/phonegap/lib/windows-phone/templates/full/cordova/emulate.bat +24 -0
  722. data/vendor/phonegap/lib/windows-phone/templates/full/www/cordova-2.0.0.js +5672 -0
  723. data/vendor/phonegap/lib/windows-phone/templates/full/www/css/index.css +100 -0
  724. data/vendor/phonegap/lib/windows-phone/templates/full/www/img/cordova.png +0 -0
  725. data/vendor/phonegap/lib/windows-phone/templates/full/www/index.html +24 -0
  726. data/vendor/phonegap/lib/windows-phone/templates/full/www/js/index.js +20 -0
  727. data/vendor/phonegap/lib/windows-phone/templates/pg_templateIcon.png +0 -0
  728. data/vendor/phonegap/lib/windows-phone/templates/pg_templatePreview.jpg +0 -0
  729. data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml +37 -0
  730. data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml.cs +154 -0
  731. data/vendor/phonegap/lib/windows-phone/templates/standalone/ApplicationIcon.png +0 -0
  732. data/vendor/phonegap/lib/windows-phone/templates/standalone/Background.png +0 -0
  733. data/vendor/phonegap/lib/windows-phone/templates/standalone/BuildManifestProcessor.js +80 -0
  734. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaAppProj.csproj +231 -0
  735. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSolution.sln +22 -0
  736. data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSourceDictionary.xml +4 -0
  737. data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml +52 -0
  738. data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml.cs +72 -0
  739. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AppManifest.xml +6 -0
  740. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AssemblyInfo.cs +38 -0
  741. data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/WMAppManifest.xml +42 -0
  742. data/vendor/phonegap/lib/windows-phone/templates/standalone/SplashScreenImage.jpg +0 -0
  743. data/vendor/phonegap/lib/windows-phone/templates/standalone/VERSION +1 -0
  744. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/debug.bat +68 -0
  745. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/emulate.bat +24 -0
  746. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/BrowserMouseHelper.cs +345 -0
  747. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CommandFactory.cs +104 -0
  748. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Accelerometer.cs +195 -0
  749. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/AudioPlayer.cs +617 -0
  750. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/BaseCommand.cs +129 -0
  751. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Battery.cs +79 -0
  752. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Camera.cs +490 -0
  753. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Capture.cs +735 -0
  754. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Compass.cs +364 -0
  755. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Contacts.cs +643 -0
  756. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/DebugConsole.cs +49 -0
  757. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Device.cs +124 -0
  758. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/File.cs +1441 -0
  759. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/FileTransfer.cs +525 -0
  760. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/GeoLocation.cs +34 -0
  761. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/ImageExifHelper.cs +222 -0
  762. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Media.cs +522 -0
  763. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/MimeTypeMapper.cs +99 -0
  764. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/NetworkStatus.cs +124 -0
  765. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Notification.cs +322 -0
  766. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaCommandCall.cs +86 -0
  767. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml +65 -0
  768. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml.cs +451 -0
  769. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/DOMStorageHelper.cs +145 -0
  770. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.back.rest.png +0 -0
  771. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.close.rest.png +0 -0
  772. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.feature.video.rest.png +0 -0
  773. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.next.rest.png +0 -0
  774. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.save.rest.png +0 -0
  775. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.stop.rest.png +0 -0
  776. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/JSON/JsonHelper.cs +97 -0
  777. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/NativeExecution.cs +207 -0
  778. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/OrientationHelper.cs +128 -0
  779. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/PluginResult.cs +165 -0
  780. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/ScriptCallback.cs +80 -0
  781. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioCaptureTask.cs +105 -0
  782. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml +66 -0
  783. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml.cs +387 -0
  784. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml +26 -0
  785. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml.cs +107 -0
  786. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml +62 -0
  787. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml.cs +41 -0
  788. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoCaptureTask.cs +104 -0
  789. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml +52 -0
  790. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml.cs +405 -0
  791. data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/resources/notification-beep.wav +0 -0
  792. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/cordova-2.0.0.js +5672 -0
  793. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/css/index.css +100 -0
  794. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/img/cordova.png +0 -0
  795. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/index.html +24 -0
  796. data/vendor/phonegap/lib/windows-phone/templates/standalone/www/js/index.js +20 -0
  797. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.cs +64 -0
  798. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.csproj +174 -0
  799. data/vendor/phonegap/lib/windows-phone/templates/vspackage/GlobalSuppressions.cs +11 -0
  800. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Guids.cs +14 -0
  801. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Key.snk +0 -0
  802. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Properties/AssemblyInfo.cs +36 -0
  803. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.Designer.cs +63 -0
  804. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.resx +129 -0
  805. data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources/Package.ico +0 -0
  806. data/vendor/phonegap/lib/windows-phone/templates/vspackage/VSPackage.resx +140 -0
  807. data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templateIcon.png +0 -0
  808. data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templatePreview.jpg +0 -0
  809. data/vendor/phonegap/lib/windows-phone/templates/vspackage/source.extension.vsixmanifest +30 -0
  810. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml +38 -0
  811. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml.cs +158 -0
  812. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/ApplicationIcon.png +0 -0
  813. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Background.png +0 -0
  814. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/BuildManifestProcessor.js +80 -0
  815. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/CordovaSourceDictionary.xml +4 -0
  816. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml +52 -0
  817. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml.cs +42 -0
  818. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.csproj +141 -0
  819. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.sln +28 -0
  820. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AppManifest.xml +6 -0
  821. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AssemblyInfo.cs +35 -0
  822. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/WMAppManifest.xml +35 -0
  823. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/SplashScreenImage.jpg +0 -0
  824. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/cordova-2.0.0.js +5658 -0
  825. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/index.html +43 -0
  826. data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/master.css +112 -0
  827. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy.sln +20 -0
  828. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/CordovaDeploy.csproj +79 -0
  829. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Program.cs +219 -0
  830. data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Properties/AssemblyInfo.cs +36 -0
  831. data/vendor/phonegap/lib/windows-phone/tooling/scripts/debug.bat +68 -0
  832. data/vendor/phonegap/lib/windows-phone/tooling/scripts/emulate.bat +24 -0
  833. metadata +1040 -0
@@ -0,0 +1,104 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+ using System;
16
+ using System.Net;
17
+ using System.Windows;
18
+ using System.Windows.Controls;
19
+ using System.Windows.Documents;
20
+ using System.Windows.Ink;
21
+ using System.Windows.Input;
22
+ using System.Windows.Media;
23
+ using System.Windows.Media.Animation;
24
+ using System.Windows.Shapes;
25
+ using System.Collections.Generic;
26
+ using WP7CordovaClassLib.Cordova.Commands;
27
+ using System.Reflection;
28
+ using System.Diagnostics;
29
+
30
+ namespace WP7CordovaClassLib.Cordova
31
+ {
32
+ /// <summary>
33
+ /// Provides functionality to create phone gap command by name.
34
+ /// </summary>
35
+ public static class CommandFactory
36
+ {
37
+ /// <summary>
38
+ /// Represents predefined namespace name for custom plugins
39
+ /// </summary>
40
+ private static readonly string CustomPluginNamespacePrefix = "Cordova.Extension.Commands.";
41
+
42
+ private static readonly string BaseCommandNamespacePrefix = "WP7CordovaClassLib.Cordova.Commands.";
43
+
44
+ /// <summary>
45
+ /// Cache instantiated commands in a map.
46
+ /// </summary>
47
+
48
+ private static Dictionary<string, BaseCommand> commandMap = new Dictionary<string, BaseCommand>();
49
+
50
+ /// <summary>
51
+ /// Creates command using command class name. Returns null for unknown commands.
52
+ /// </summary>
53
+ /// <param name="service">Command class name, for example Device or Notification</param>
54
+ /// <returns>Command class instance or null</returns>
55
+ public static BaseCommand CreateByServiceName(string service)
56
+ {
57
+
58
+ if (string.IsNullOrEmpty(service))
59
+ {
60
+ throw new ArgumentNullException("service", "service to create can't be null");
61
+ }
62
+
63
+ if (!commandMap.ContainsKey(service))
64
+ {
65
+
66
+ Type t = Type.GetType(BaseCommandNamespacePrefix + service);
67
+
68
+ // custom plugin could be defined in own namespace and assembly
69
+ if (t == null)
70
+ {
71
+ string serviceFullName = service.Contains(".") ? service : CustomPluginNamespacePrefix + service;
72
+
73
+ foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
74
+ {
75
+ // in this case service name represents full type name including namespace
76
+ t = a.GetType(serviceFullName);
77
+
78
+ if (t == null) // try the Commands Namespace
79
+ {
80
+ t = a.GetType(BaseCommandNamespacePrefix + service);
81
+ }
82
+
83
+ if (t != null)
84
+ {
85
+ break;
86
+ }
87
+ }
88
+
89
+ }
90
+
91
+ // unknown command, still didn't find it
92
+ if (t == null)
93
+ {
94
+ Debug.WriteLine("Unable to locate command :: " + service);
95
+ return null;
96
+ }
97
+
98
+ commandMap[service] = Activator.CreateInstance(t) as BaseCommand;
99
+ }
100
+
101
+ return commandMap[service];
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,195 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+
16
+ using System;
17
+ using System.Collections.Generic;
18
+ using System.Runtime.Serialization;
19
+ using System.Threading;
20
+ using Microsoft.Devices.Sensors;
21
+ using System.Globalization;
22
+
23
+ namespace WP7CordovaClassLib.Cordova.Commands
24
+ {
25
+ /// <summary>
26
+ /// Captures device motion in the x, y, and z direction.
27
+ /// </summary>
28
+ public class Accelerometer : BaseCommand
29
+ {
30
+ #region AccelerometerOptions class
31
+ /// <summary>
32
+ /// Represents Accelerometer options.
33
+ /// </summary>
34
+ [DataContract]
35
+ public class AccelerometerOptions
36
+ {
37
+ /// <summary>
38
+ /// How often to retrieve the Acceleration in milliseconds
39
+ /// </summary>
40
+ [DataMember(IsRequired = false, Name = "frequency")]
41
+ public int Frequency { get; set; }
42
+
43
+ /// <summary>
44
+ /// Watcher id
45
+ /// </summary>
46
+ [DataMember(IsRequired = false, Name = "id")]
47
+ public string Id { get; set; }
48
+
49
+ /// <summary>
50
+ /// Creates options object with default parameters
51
+ /// </summary>
52
+ public AccelerometerOptions()
53
+ {
54
+ this.SetDefaultValues(new StreamingContext());
55
+ }
56
+
57
+ /// <summary>
58
+ /// Initializes default values for class fields.
59
+ /// Implemented in separate method because default constructor is not invoked during deserialization.
60
+ /// </summary>
61
+ /// <param name="context"></param>
62
+ [OnDeserializing()]
63
+ public void SetDefaultValues(StreamingContext context)
64
+ {
65
+ this.Frequency = 10000;
66
+ }
67
+ }
68
+
69
+ #endregion
70
+
71
+ #region Status codes and Constants
72
+
73
+ public const int Stopped = 0;
74
+ public const int Starting = 1;
75
+ public const int Running = 2;
76
+ public const int ErrorFailedToStart = 3;
77
+
78
+ public const double gConstant = -9.81;
79
+
80
+ #endregion
81
+
82
+ #region Static members
83
+
84
+ /// <summary>
85
+ /// Status of listener
86
+ /// </summary>
87
+ private static int currentStatus;
88
+
89
+ /// <summary>
90
+ /// Accelerometer
91
+ /// </summary>
92
+ private static Microsoft.Devices.Sensors.Accelerometer accelerometer = new Microsoft.Devices.Sensors.Accelerometer();
93
+
94
+ private static DateTime StartOfEpoch = new DateTime(1970, 1, 1, 0, 0, 0);
95
+
96
+ #endregion
97
+
98
+ /// <summary>
99
+ /// Sensor listener event
100
+ /// </summary>
101
+ private void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
102
+ {
103
+ this.SetStatus(Running);
104
+
105
+ PluginResult result = new PluginResult(PluginResult.Status.OK, GetCurrentAccelerationFormatted());
106
+ result.KeepCallback = true;
107
+ DispatchCommandResult(result);
108
+ }
109
+
110
+ /// <summary>
111
+ /// Starts listening for acceleration sensor
112
+ /// </summary>
113
+ /// <returns>status of listener</returns>
114
+ public void start(string options)
115
+ {
116
+ if ((currentStatus == Running) || (currentStatus == Starting))
117
+ {
118
+ return;
119
+ }
120
+ try
121
+ {
122
+ lock (accelerometer)
123
+ {
124
+ accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
125
+ accelerometer.Start();
126
+ this.SetStatus(Starting);
127
+ }
128
+
129
+ long timeout = 2000;
130
+ while ((currentStatus == Starting) && (timeout > 0))
131
+ {
132
+ timeout = timeout - 100;
133
+ Thread.Sleep(100);
134
+ }
135
+
136
+ if (currentStatus != Running)
137
+ {
138
+ this.SetStatus(ErrorFailedToStart);
139
+ DispatchCommandResult(new PluginResult(PluginResult.Status.IO_EXCEPTION, ErrorFailedToStart));
140
+ return;
141
+ }
142
+ }
143
+ catch (Exception)
144
+ {
145
+ this.SetStatus(ErrorFailedToStart);
146
+ DispatchCommandResult(new PluginResult(PluginResult.Status.IO_EXCEPTION, ErrorFailedToStart));
147
+ return;
148
+ }
149
+ PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
150
+ result.KeepCallback = true;
151
+ DispatchCommandResult(result);
152
+ }
153
+
154
+ public void stop(string options)
155
+ {
156
+ if (currentStatus == Running)
157
+ {
158
+ lock (accelerometer)
159
+ {
160
+ accelerometer.CurrentValueChanged -= accelerometer_CurrentValueChanged;
161
+ accelerometer.Stop();
162
+ this.SetStatus(Stopped);
163
+ }
164
+ }
165
+ DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
166
+ }
167
+
168
+ /// <summary>
169
+ /// Formats current coordinates into JSON format
170
+ /// </summary>
171
+ /// <returns>Coordinates in JSON format</returns>
172
+ private string GetCurrentAccelerationFormatted()
173
+ {
174
+ // convert to unix timestamp
175
+ long timestamp = ((accelerometer.CurrentValue.Timestamp.DateTime - StartOfEpoch).Ticks) / 10000;
176
+ string resultCoordinates = String.Format("\"x\":{0},\"y\":{1},\"z\":{2},\"timestamp\":{3}",
177
+ (accelerometer.CurrentValue.Acceleration.X * gConstant).ToString("0.00000", CultureInfo.InvariantCulture),
178
+ (accelerometer.CurrentValue.Acceleration.Y * gConstant).ToString("0.00000", CultureInfo.InvariantCulture),
179
+ (accelerometer.CurrentValue.Acceleration.Z * gConstant).ToString("0.00000", CultureInfo.InvariantCulture),
180
+ timestamp.ToString());
181
+ resultCoordinates = "{" + resultCoordinates + "}";
182
+ return resultCoordinates;
183
+ }
184
+
185
+ /// <summary>
186
+ /// Sets current status
187
+ /// </summary>
188
+ /// <param name="status">current status</param>
189
+ private void SetStatus(int status)
190
+ {
191
+ currentStatus = status;
192
+ }
193
+ }
194
+ }
195
+
@@ -0,0 +1,617 @@
1
+ /*
2
+ Licensed under the Apache License, Version 2.0 (the "License");
3
+ you may not use this file except in compliance with the License.
4
+ You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+ */
14
+
15
+ using System;
16
+ using System.IO;
17
+ using System.IO.IsolatedStorage;
18
+ using System.Windows;
19
+ using System.Windows.Controls;
20
+ using System.Windows.Threading;
21
+ using Microsoft.Xna.Framework;
22
+ using Microsoft.Xna.Framework.Audio;
23
+ using Microsoft.Xna.Framework.Media;
24
+ using Microsoft.Phone.Controls;
25
+ using System.Diagnostics;
26
+
27
+ namespace WP7CordovaClassLib.Cordova.Commands
28
+ {
29
+ /// <summary>
30
+ /// Implements audio record and play back functionality.
31
+ /// </summary>
32
+ internal class AudioPlayer : IDisposable
33
+ {
34
+ #region Constants
35
+
36
+ // AudioPlayer states
37
+ private const int MediaNone = 0;
38
+ private const int MediaStarting = 1;
39
+ private const int MediaRunning = 2;
40
+ private const int MediaPaused = 3;
41
+ private const int MediaStopped = 4;
42
+
43
+ // AudioPlayer messages
44
+ private const int MediaState = 1;
45
+ private const int MediaDuration = 2;
46
+ private const int MediaPosition = 3;
47
+ private const int MediaError = 9;
48
+
49
+ // AudioPlayer errors
50
+ private const int MediaErrorPlayModeSet = 1;
51
+ private const int MediaErrorAlreadyRecording = 2;
52
+ private const int MediaErrorStartingRecording = 3;
53
+ private const int MediaErrorRecordModeSet = 4;
54
+ private const int MediaErrorStartingPlayback = 5;
55
+ private const int MediaErrorResumeState = 6;
56
+ private const int MediaErrorPauseState = 7;
57
+ private const int MediaErrorStopState = 8;
58
+
59
+ //TODO: get rid of this callback, it should be universal
60
+ private const string CallbackFunction = "CordovaMediaonStatus";
61
+
62
+ #endregion
63
+
64
+ /// <summary>
65
+ /// The AudioHandler object
66
+ /// </summary>
67
+ private Media handler;
68
+
69
+ /// <summary>
70
+ /// Temporary buffer to store audio chunk
71
+ /// </summary>
72
+ private byte[] buffer;
73
+
74
+ /// <summary>
75
+ /// Xna game loop dispatcher
76
+ /// </summary>
77
+ DispatcherTimer dtXna;
78
+
79
+ /// <summary>
80
+ /// Output buffer
81
+ /// </summary>
82
+ private MemoryStream memoryStream;
83
+
84
+ /// <summary>
85
+ /// The id of this player (used to identify Media object in JavaScript)
86
+ /// </summary>
87
+ private String id;
88
+
89
+ /// <summary>
90
+ /// State of recording or playback
91
+ /// </summary>
92
+ private int state = MediaNone;
93
+
94
+ /// <summary>
95
+ /// File name to play or record to
96
+ /// </summary>
97
+ private String audioFile = null;
98
+
99
+ /// <summary>
100
+ /// Duration of audio
101
+ /// </summary>
102
+ private double duration = -1;
103
+
104
+ /// <summary>
105
+ /// Audio player object
106
+ /// </summary>
107
+ private MediaElement player = null;
108
+
109
+ /// <summary>
110
+ /// Audio source
111
+ /// </summary>
112
+ private Microphone recorder;
113
+
114
+ /// <summary>
115
+ /// Internal flag specified that we should only open audio w/o playing it
116
+ /// </summary>
117
+ private bool prepareOnly = false;
118
+
119
+ /// <summary>
120
+ /// Creates AudioPlayer instance
121
+ /// </summary>
122
+ /// <param name="handler">Media object</param>
123
+ /// <param name="id">player id</param>
124
+ public AudioPlayer(Media handler, String id)
125
+ {
126
+ this.handler = handler;
127
+ this.id = id;
128
+ }
129
+
130
+ /// <summary>
131
+ /// Destroys player and stop audio playing or recording
132
+ /// </summary>
133
+ public void Dispose()
134
+ {
135
+ Debug.WriteLine("Dispose :: " + this.audioFile);
136
+ if (this.player != null)
137
+ {
138
+ this.stopPlaying();
139
+ this.player = null;
140
+ }
141
+ if (this.recorder != null)
142
+ {
143
+ this.stopRecording();
144
+ this.recorder = null;
145
+ }
146
+
147
+ this.FinalizeXnaGameLoop();
148
+ }
149
+
150
+ /// <summary>
151
+ /// Starts recording, data is stored in memory
152
+ /// </summary>
153
+ /// <param name="filePath"></param>
154
+ public void startRecording(string filePath)
155
+ {
156
+ if (this.player != null)
157
+ {
158
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorPlayModeSet));
159
+ }
160
+ else if (this.recorder == null)
161
+ {
162
+ try
163
+ {
164
+ this.audioFile = filePath;
165
+ this.InitializeXnaGameLoop();
166
+ this.recorder = Microphone.Default;
167
+ this.recorder.BufferDuration = TimeSpan.FromMilliseconds(500);
168
+ this.buffer = new byte[recorder.GetSampleSizeInBytes(this.recorder.BufferDuration)];
169
+ this.recorder.BufferReady += new EventHandler<EventArgs>(recorderBufferReady);
170
+ this.memoryStream = new MemoryStream();
171
+ this.WriteWavHeader(this.memoryStream, this.recorder.SampleRate);
172
+ this.recorder.Start();
173
+ FrameworkDispatcher.Update();
174
+ this.SetState(MediaRunning);
175
+ }
176
+ catch (Exception)
177
+ {
178
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorStartingRecording));
179
+ }
180
+ }
181
+ else
182
+ {
183
+
184
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorAlreadyRecording));
185
+ }
186
+ }
187
+
188
+ /// <summary>
189
+ /// Stops recording
190
+ /// </summary>
191
+ public void stopRecording()
192
+ {
193
+ if (this.recorder != null)
194
+ {
195
+ if (this.state == MediaRunning)
196
+ {
197
+ try
198
+ {
199
+ this.recorder.Stop();
200
+ this.recorder.BufferReady -= recorderBufferReady;
201
+ this.recorder = null;
202
+ SaveAudioClipToLocalStorage();
203
+ this.FinalizeXnaGameLoop();
204
+ this.SetState(MediaStopped);
205
+ }
206
+ catch (Exception)
207
+ {
208
+ //TODO
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ /// <summary>
215
+ /// Starts or resume playing audio file
216
+ /// </summary>
217
+ /// <param name="filePath">The name of the audio file</param>
218
+ /// <summary>
219
+ /// Starts or resume playing audio file
220
+ /// </summary>
221
+ /// <param name="filePath">The name of the audio file</param>
222
+ public void startPlaying(string filePath)
223
+ {
224
+ if (this.recorder != null)
225
+ {
226
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorRecordModeSet));
227
+ return;
228
+ }
229
+
230
+
231
+ if (this.player == null)
232
+ {
233
+ try
234
+ {
235
+ if (this.player == null)
236
+ {
237
+ // this.player is a MediaElement, it must be added to the visual tree in order to play
238
+ PhoneApplicationFrame frame = Application.Current.RootVisual as PhoneApplicationFrame;
239
+ if (frame != null)
240
+ {
241
+ PhoneApplicationPage page = frame.Content as PhoneApplicationPage;
242
+ if (page != null)
243
+ {
244
+ Grid grid = page.FindName("LayoutRoot") as Grid;
245
+ if (grid != null)
246
+ {
247
+
248
+ this.player = new MediaElement();
249
+ this.player.Name = "playerMediaElement";
250
+ grid.Children.Add(this.player);
251
+ this.player.Visibility = Visibility.Collapsed;
252
+ this.player.MediaOpened += MediaOpened;
253
+ this.player.MediaEnded += MediaEnded;
254
+ this.player.MediaFailed += MediaFailed;
255
+ }
256
+ }
257
+ }
258
+
259
+ }
260
+ this.audioFile = filePath;
261
+
262
+ Uri uri = new Uri(filePath, UriKind.RelativeOrAbsolute);
263
+ if (uri.IsAbsoluteUri)
264
+ {
265
+ this.player.Source = uri;
266
+ }
267
+ else
268
+ {
269
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
270
+ {
271
+ if (isoFile.FileExists(filePath))
272
+ {
273
+ using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filePath, FileMode.Open, isoFile))
274
+ {
275
+ this.player.SetSource(stream);
276
+ }
277
+ }
278
+ else
279
+ {
280
+ Debug.WriteLine("Error: source doesn't exist :: " + filePath);
281
+ throw new ArgumentException("Source doesn't exist");
282
+ }
283
+ }
284
+ }
285
+ this.SetState(MediaStarting);
286
+ }
287
+ catch (Exception e)
288
+ {
289
+ Debug.WriteLine("Error: " + e.Message);
290
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorStartingPlayback));
291
+ }
292
+ }
293
+ else
294
+ {
295
+ if (this.state != MediaRunning)
296
+ {
297
+ this.player.Play();
298
+ this.SetState(MediaRunning);
299
+ }
300
+ else
301
+ {
302
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorResumeState));
303
+ }
304
+ }
305
+ }
306
+
307
+ /// <summary>
308
+ /// Callback to be invoked when the media source is ready for playback
309
+ /// </summary>
310
+ private void MediaOpened(object sender, RoutedEventArgs arg)
311
+ {
312
+ if (!this.prepareOnly)
313
+ {
314
+ this.player.Play();
315
+ this.SetState(MediaRunning);
316
+ }
317
+
318
+ this.duration = this.player.NaturalDuration.TimeSpan.TotalSeconds;
319
+ this.prepareOnly = false;
320
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaDuration, this.duration));
321
+ }
322
+
323
+ /// <summary>
324
+ /// Callback to be invoked when playback of a media source has completed
325
+ /// </summary>
326
+ private void MediaEnded(object sender, RoutedEventArgs arg)
327
+ {
328
+ this.SetState(MediaStopped);
329
+ }
330
+
331
+ /// <summary>
332
+ /// Callback to be invoked when playback of a media source has failed
333
+ /// </summary>
334
+ private void MediaFailed(object sender, RoutedEventArgs arg)
335
+ {
336
+ player.Stop();
337
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError.ToString(), "Media failed"));
338
+ }
339
+
340
+ /// <summary>
341
+ /// Seek or jump to a new time in the track
342
+ /// </summary>
343
+ /// <param name="milliseconds">The new track position</param>
344
+ public void seekToPlaying(int milliseconds)
345
+ {
346
+ if (this.player != null)
347
+ {
348
+ TimeSpan tsPos = new TimeSpan(0, 0, 0, 0, milliseconds);
349
+ this.player.Position = tsPos;
350
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaPosition, milliseconds / 1000.0f));
351
+ }
352
+ }
353
+
354
+ /// <summary>
355
+ /// Set the volume of the player
356
+ /// </summary>
357
+ /// <param name="vol">volume 0.0-1.0, default value is 0.5</param>
358
+ public void setVolume(double vol)
359
+ {
360
+ if (this.player != null)
361
+ {
362
+ this.player.Volume = vol;
363
+ }
364
+ }
365
+
366
+ /// <summary>
367
+ /// Pauses playing
368
+ /// </summary>
369
+ public void pausePlaying()
370
+ {
371
+ if (this.state == MediaRunning)
372
+ {
373
+ this.player.Pause();
374
+ this.SetState(MediaPaused);
375
+ }
376
+ else
377
+ {
378
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorPauseState));
379
+ }
380
+ }
381
+
382
+
383
+ /// <summary>
384
+ /// Stops playing the audio file
385
+ /// </summary>
386
+ public void stopPlaying()
387
+ {
388
+ if ((this.state == MediaRunning) || (this.state == MediaPaused))
389
+ {
390
+ this.player.Stop();
391
+
392
+ this.player.Position = new TimeSpan(0L);
393
+ this.SetState(MediaStopped);
394
+ }
395
+ else
396
+ {
397
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaError, MediaErrorStopState));
398
+ }
399
+ }
400
+
401
+ /// <summary>
402
+ /// Gets current position of playback
403
+ /// </summary>
404
+ /// <returns>current position</returns>
405
+ public double getCurrentPosition()
406
+ {
407
+ if ((this.state == MediaRunning) || (this.state == MediaPaused))
408
+ {
409
+ double currentPosition = this.player.Position.TotalSeconds;
410
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaPosition, currentPosition));
411
+ return currentPosition;
412
+ }
413
+ else
414
+ {
415
+ return -1;
416
+ }
417
+ }
418
+
419
+ /// <summary>
420
+ /// Gets the duration of the audio file
421
+ /// </summary>
422
+ /// <param name="filePath">The name of the audio file</param>
423
+ /// <returns>track duration</returns>
424
+ public double getDuration(string filePath)
425
+ {
426
+ if (this.recorder != null)
427
+ {
428
+ return (-2);
429
+ }
430
+
431
+ if (this.player != null)
432
+ {
433
+ return this.duration;
434
+
435
+ }
436
+ else
437
+ {
438
+ this.prepareOnly = true;
439
+ this.startPlaying(filePath);
440
+ return this.duration;
441
+ }
442
+ }
443
+
444
+ /// <summary>
445
+ /// Sets the state and send it to JavaScript
446
+ /// </summary>
447
+ /// <param name="state">state</param>
448
+ private void SetState(int state)
449
+ {
450
+ if (this.state != state)
451
+ {
452
+ this.handler.InvokeCustomScript(new ScriptCallback(CallbackFunction, this.id, MediaState, state));
453
+ }
454
+
455
+ this.state = state;
456
+ }
457
+
458
+ #region record methods
459
+
460
+ /// <summary>
461
+ /// Copies data from recorder to memory storages and updates recording state
462
+ /// </summary>
463
+ /// <param name="sender"></param>
464
+ /// <param name="e"></param>
465
+ private void recorderBufferReady(object sender, EventArgs e)
466
+ {
467
+ this.recorder.GetData(this.buffer);
468
+ this.memoryStream.Write(this.buffer, 0, this.buffer.Length);
469
+ }
470
+
471
+ /// <summary>
472
+ /// Writes audio data from memory to isolated storage
473
+ /// </summary>
474
+ /// <returns></returns>
475
+ private void SaveAudioClipToLocalStorage()
476
+ {
477
+ if (this.memoryStream == null || this.memoryStream.Length <= 0)
478
+ {
479
+ return;
480
+ }
481
+
482
+ this.UpdateWavHeader(this.memoryStream);
483
+
484
+ try
485
+ {
486
+ using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication())
487
+ {
488
+ string directory = Path.GetDirectoryName(audioFile);
489
+
490
+ if (!isoFile.DirectoryExists(directory))
491
+ {
492
+ isoFile.CreateDirectory(directory);
493
+ }
494
+
495
+ this.memoryStream.Seek(0, SeekOrigin.Begin);
496
+
497
+ using (IsolatedStorageFileStream fileStream = isoFile.CreateFile(audioFile))
498
+ {
499
+ this.memoryStream.CopyTo(fileStream);
500
+ }
501
+ }
502
+ }
503
+ catch (Exception)
504
+ {
505
+ //TODO: log or do something else
506
+ throw;
507
+ }
508
+ }
509
+
510
+
511
+
512
+ #region Wav format
513
+ // Original source http://damianblog.com/2011/02/07/storing-wp7-recorded-audio-as-wav-format-streams/
514
+
515
+ /// <summary>
516
+ /// Adds wav file format header to the stream
517
+ /// https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
518
+ /// </summary>
519
+ /// <param name="stream">Wav stream</param>
520
+ /// <param name="sampleRate">Sample Rate</param>
521
+ private void WriteWavHeader(Stream stream, int sampleRate)
522
+ {
523
+ const int bitsPerSample = 16;
524
+ const int bytesPerSample = bitsPerSample / 8;
525
+ var encoding = System.Text.Encoding.UTF8;
526
+
527
+ // ChunkID Contains the letters "RIFF" in ASCII form (0x52494646 big-endian form).
528
+ stream.Write(encoding.GetBytes("RIFF"), 0, 4);
529
+
530
+ // NOTE this will be filled in later
531
+ stream.Write(BitConverter.GetBytes(0), 0, 4);
532
+
533
+ // Format Contains the letters "WAVE"(0x57415645 big-endian form).
534
+ stream.Write(encoding.GetBytes("WAVE"), 0, 4);
535
+
536
+ // Subchunk1ID Contains the letters "fmt " (0x666d7420 big-endian form).
537
+ stream.Write(encoding.GetBytes("fmt "), 0, 4);
538
+
539
+ // Subchunk1Size 16 for PCM. This is the size of therest of the Subchunk which follows this number.
540
+ stream.Write(BitConverter.GetBytes(16), 0, 4);
541
+
542
+ // AudioFormat PCM = 1 (i.e. Linear quantization) Values other than 1 indicate some form of compression.
543
+ stream.Write(BitConverter.GetBytes((short)1), 0, 2);
544
+
545
+ // NumChannels Mono = 1, Stereo = 2, etc.
546
+ stream.Write(BitConverter.GetBytes((short)1), 0, 2);
547
+
548
+ // SampleRate 8000, 44100, etc.
549
+ stream.Write(BitConverter.GetBytes(sampleRate), 0, 4);
550
+
551
+ // ByteRate = SampleRate * NumChannels * BitsPerSample/8
552
+ stream.Write(BitConverter.GetBytes(sampleRate * bytesPerSample), 0, 4);
553
+
554
+ // BlockAlign NumChannels * BitsPerSample/8 The number of bytes for one sample including all channels.
555
+ stream.Write(BitConverter.GetBytes((short)(bytesPerSample)), 0, 2);
556
+
557
+ // BitsPerSample 8 bits = 8, 16 bits = 16, etc.
558
+ stream.Write(BitConverter.GetBytes((short)(bitsPerSample)), 0, 2);
559
+
560
+ // Subchunk2ID Contains the letters "data" (0x64617461 big-endian form).
561
+ stream.Write(encoding.GetBytes("data"), 0, 4);
562
+
563
+ // NOTE to be filled in later
564
+ stream.Write(BitConverter.GetBytes(0), 0, 4);
565
+ }
566
+
567
+ /// <summary>
568
+ /// Updates wav file format header
569
+ /// https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
570
+ /// </summary>
571
+ /// <param name="stream">Wav stream</param>
572
+ private void UpdateWavHeader(Stream stream)
573
+ {
574
+ if (!stream.CanSeek) throw new Exception("Can't seek stream to update wav header");
575
+
576
+ var oldPos = stream.Position;
577
+
578
+ // ChunkSize 36 + SubChunk2Size
579
+ stream.Seek(4, SeekOrigin.Begin);
580
+ stream.Write(BitConverter.GetBytes((int)stream.Length - 8), 0, 4);
581
+
582
+ // Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8 This is the number of bytes in the data.
583
+ stream.Seek(40, SeekOrigin.Begin);
584
+ stream.Write(BitConverter.GetBytes((int)stream.Length - 44), 0, 4);
585
+
586
+ stream.Seek(oldPos, SeekOrigin.Begin);
587
+ }
588
+
589
+ #endregion
590
+
591
+ #region Xna loop
592
+ /// <summary>
593
+ /// Special initialization required for the microphone: XNA game loop
594
+ /// </summary>
595
+ private void InitializeXnaGameLoop()
596
+ {
597
+ // Timer to simulate the XNA game loop (Microphone is from XNA)
598
+ this.dtXna = new DispatcherTimer();
599
+ this.dtXna.Interval = TimeSpan.FromMilliseconds(33);
600
+ this.dtXna.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } };
601
+ this.dtXna.Start();
602
+ }
603
+ /// <summary>
604
+ /// Finalizes XNA game loop for microphone
605
+ /// </summary>
606
+ private void FinalizeXnaGameLoop()
607
+ {
608
+ // Timer to simulate the XNA game loop (Microphone is from XNA)
609
+ this.dtXna.Stop();
610
+ this.dtXna = null;
611
+ }
612
+
613
+ #endregion
614
+
615
+ #endregion
616
+ }
617
+ }