mobox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ }