mobox 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +89 -0
- data/Rakefile +2 -0
- data/bin/mobox +275 -0
- data/lib/mobox.rb +34 -0
- data/lib/mobox/config.rb +36 -0
- data/lib/mobox/helpers.rb +9 -0
- data/lib/mobox/render_scope.rb +9 -0
- data/lib/mobox/server.rb +91 -0
- data/lib/mobox/version.rb +3 -0
- data/mobox.gemspec +31 -0
- data/template/.mobox +2 -0
- data/template/Gemfile +3 -0
- data/template/config.ru +76 -0
- data/template/src/assets/images/mobox-logo-inkscape.svg +177 -0
- data/template/src/assets/images/mobox-logo.pdf +0 -0
- data/template/src/assets/images/mobox-logo.png +0 -0
- data/template/src/assets/images/mobox-logo.svg +120 -0
- data/template/src/assets/javascripts/app/config.js.coffee.erb +2 -0
- data/template/src/assets/javascripts/app/controllers/.gitignore +0 -0
- data/template/src/assets/javascripts/app/controllers/home.js.coffee +10 -0
- data/template/src/assets/javascripts/app/helpers/.gitignore +0 -0
- data/template/src/assets/javascripts/app/index.js.coffee +7 -0
- data/template/src/assets/javascripts/app/lib/.gitignore +0 -0
- data/template/src/assets/javascripts/app/lib/app.js.coffee +6 -0
- data/template/src/assets/javascripts/app/lib/config.js.coffee +3 -0
- data/template/src/assets/javascripts/app/lib/view.js.coffee +18 -0
- data/template/src/assets/javascripts/app/models/.gitignore +0 -0
- data/template/src/assets/javascripts/app/views/.gitignore +0 -0
- data/template/src/assets/javascripts/app/views/home/index.jst.hamljs +8 -0
- data/template/src/assets/javascripts/application.js.coffee +25 -0
- data/template/src/assets/javascripts/vendor/1140gs/css3-mediaqueries.js +779 -0
- data/template/src/assets/javascripts/vendor/cordova-2.0.0.js +5240 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.cube.js +161 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.effects.js +330 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.flip.js +52 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.js +93 -0
- data/template/src/assets/javascripts/vendor/gfx/gfx.overlay.js +81 -0
- data/template/src/assets/javascripts/vendor/gfx/index.js +5 -0
- data/template/src/assets/javascripts/vendor/hammer/.gitignore +1 -0
- data/template/src/assets/javascripts/vendor/hammer/LICENSE +19 -0
- data/template/src/assets/javascripts/vendor/hammer/hammer.js +741 -0
- data/template/src/assets/javascripts/vendor/hammer/index.coffee +2 -0
- data/template/src/assets/javascripts/vendor/hammer/jquery.hammer.js +26 -0
- data/template/src/assets/javascripts/vendor/hammer/jquery.specialevent.hammer.js +39 -0
- data/template/src/assets/javascripts/vendor/jquery.js +4 -0
- data/template/src/assets/javascripts/vendor/jquery_transit/index.coffee +1 -0
- data/template/src/assets/javascripts/vendor/jquery_transit/jquery.transit.js +658 -0
- data/template/src/assets/javascripts/vendor/spine/ajax.js +318 -0
- data/template/src/assets/javascripts/vendor/spine/list.js +74 -0
- data/template/src/assets/javascripts/vendor/spine/local.js +30 -0
- data/template/src/assets/javascripts/vendor/spine/manager.js +158 -0
- data/template/src/assets/javascripts/vendor/spine/panel.js +132 -0
- data/template/src/assets/javascripts/vendor/spine/relation.js +255 -0
- data/template/src/assets/javascripts/vendor/spine/route.js +220 -0
- data/template/src/assets/javascripts/vendor/spine/spine.js +913 -0
- data/template/src/assets/javascripts/vendor/spine/stage.js +146 -0
- data/template/src/assets/javascripts/vendor/spine/tabs.js +66 -0
- data/template/src/assets/javascripts/vendor/spine/tmpl.js +22 -0
- data/template/src/assets/javascripts/vendor/spine/touch.js +79 -0
- data/template/src/assets/stylesheets/application.css.sass +3 -0
- data/template/src/assets/stylesheets/base.sass +78 -0
- data/template/src/assets/stylesheets/vendor/1140gs/1140gs.sass +110 -0
- data/template/src/assets/stylesheets/vendor/1140gs/conditionals.sass +34 -0
- data/template/src/assets/stylesheets/vendor/1140gs/ie.css +43 -0
- data/template/src/assets/stylesheets/vendor/1140gs/index.sass +1 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/index.sass +1 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/mixin.sass +89 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/spine_mobile.sass +57 -0
- data/template/src/assets/stylesheets/vendor/spine_mobile/theme.sass +79 -0
- data/template/src/config.yml +2 -0
- data/template/src/index.haml +21 -0
- data/vendor/compass-sprockets/README.md +5 -0
- data/vendor/compass-sprockets/lib/compass-sprockets.rb +32 -0
- data/vendor/compass-sprockets/lib/compass/sprockets.rb +56 -0
- data/vendor/compass-sprockets/lib/compass/sprockets/version.rb +6 -0
- data/vendor/compass-sprockets/lib/sprockets/compressors.rb +96 -0
- data/vendor/compass-sprockets/lib/sprockets/static_compiler.rb +62 -0
- data/vendor/haml-sprockets/Gemfile +4 -0
- data/vendor/haml-sprockets/LICENSE +8 -0
- data/vendor/haml-sprockets/README.md +33 -0
- data/vendor/haml-sprockets/Rakefile +1 -0
- data/vendor/haml-sprockets/lib/haml-sprockets.rb +34 -0
- data/vendor/haml-sprockets/lib/haml-sprockets/engine.rb +7 -0
- data/vendor/haml-sprockets/lib/haml-sprockets/version.rb +5 -0
- data/vendor/haml-sprockets/spec/lib/haml-sprockets_spec.rb +43 -0
- data/vendor/haml-sprockets/spec/spec_helper.rb +2 -0
- data/vendor/haml-sprockets/vendor/assets/javascripts/haml.js +651 -0
- data/vendor/phonegap/.gitignore +19 -0
- data/vendor/phonegap/LICENSE +426 -0
- data/vendor/phonegap/README.md +49 -0
- data/vendor/phonegap/VERSION +1 -0
- data/vendor/phonegap/changelog +205 -0
- data/vendor/phonegap/doc/LICENSE +548 -0
- data/vendor/phonegap/doc/NOTICE +11 -0
- data/vendor/phonegap/doc/_index.html +355 -0
- data/vendor/phonegap/doc/_index.json +1 -0
- data/vendor/phonegap/doc/arrow.png +0 -0
- data/vendor/phonegap/doc/cordova_accelerometer_accelerometer.md.html +728 -0
- data/vendor/phonegap/doc/cordova_camera_camera.cleanup.md.html +159 -0
- data/vendor/phonegap/doc/cordova_camera_camera.md.html +670 -0
- data/vendor/phonegap/doc/cordova_compass_compass.md.html +707 -0
- data/vendor/phonegap/doc/cordova_connection_connection.md.html +355 -0
- data/vendor/phonegap/doc/cordova_contacts_contacts.md.html +1715 -0
- data/vendor/phonegap/doc/cordova_device_device.md.html +682 -0
- data/vendor/phonegap/doc/cordova_events_events.md.html +1538 -0
- data/vendor/phonegap/doc/cordova_file_file.md.html +2306 -0
- data/vendor/phonegap/doc/cordova_geolocation_geolocation.md.html +1002 -0
- data/vendor/phonegap/doc/cordova_media_capture_capture.md.html +1256 -0
- data/vendor/phonegap/doc/cordova_media_media.md.html +1745 -0
- data/vendor/phonegap/doc/cordova_notification_notification.md.html +691 -0
- data/vendor/phonegap/doc/cordova_storage_storage.md.html +988 -0
- data/vendor/phonegap/doc/guide_command-line_index.md.html +323 -0
- data/vendor/phonegap/doc/guide_cordova-webview_android.md.html +180 -0
- data/vendor/phonegap/doc/guide_cordova-webview_index.md.html +131 -0
- data/vendor/phonegap/doc/guide_cordova-webview_ios.md.html +275 -0
- data/vendor/phonegap/doc/guide_getting-started_android_index.md.html +291 -0
- data/vendor/phonegap/doc/guide_getting-started_bada_index.md.html +225 -0
- data/vendor/phonegap/doc/guide_getting-started_blackberry_index.md.html +267 -0
- data/vendor/phonegap/doc/guide_getting-started_index.md.html +132 -0
- data/vendor/phonegap/doc/guide_getting-started_ios_index.md.html +248 -0
- data/vendor/phonegap/doc/guide_getting-started_symbian_index.md.html +198 -0
- data/vendor/phonegap/doc/guide_getting-started_webos_index.md.html +200 -0
- data/vendor/phonegap/doc/guide_getting-started_windows-phone_index.md.html +228 -0
- data/vendor/phonegap/doc/guide_plugin-development_android_index.md.html +275 -0
- data/vendor/phonegap/doc/guide_plugin-development_bada_index.md.html +192 -0
- data/vendor/phonegap/doc/guide_plugin-development_blackberry_index.md.html +259 -0
- data/vendor/phonegap/doc/guide_plugin-development_index.md.html +230 -0
- data/vendor/phonegap/doc/guide_plugin-development_ios_index.md.html +282 -0
- data/vendor/phonegap/doc/guide_plugin-development_webos_index.md.html +125 -0
- data/vendor/phonegap/doc/guide_plugin-development_windows-phone_index.md.html +125 -0
- data/vendor/phonegap/doc/guide_upgrading_android_index.md.html +321 -0
- data/vendor/phonegap/doc/guide_upgrading_bada_index.md.html +165 -0
- data/vendor/phonegap/doc/guide_upgrading_blackberry_index.md.html +244 -0
- data/vendor/phonegap/doc/guide_upgrading_index.md.html +136 -0
- data/vendor/phonegap/doc/guide_upgrading_ios_index.md.html +547 -0
- data/vendor/phonegap/doc/guide_upgrading_symbian_index.md.html +123 -0
- data/vendor/phonegap/doc/guide_upgrading_webos_index.md.html +161 -0
- data/vendor/phonegap/doc/guide_upgrading_windows-phone_index.md.html +332 -0
- data/vendor/phonegap/doc/guide_whitelist_index.md.html +299 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/AndroidFlow.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/buildPath.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/javaSrc.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/manifest.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/new_android_project.jpeg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_1.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_2.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_3.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_4.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/android/step_5.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_1_run.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_2_run.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/bada_set_target.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/bada/import_bada_project_2.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/HelloWorldiPhone4.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/XCode4-templates.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_create_project.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/bin_folder.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/create-folder-reference.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/index-not-found.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/project.jpg +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/www-folder.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/ios/xcode4-name_your_app.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wp7projectstructure.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpd.png +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpfirstrun.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wpnewproj.PNG +0 -0
- data/vendor/phonegap/doc/img/guide/getting-started/windows-phone/wprun.png +0 -0
- data/vendor/phonegap/doc/index.css +404 -0
- data/vendor/phonegap/doc/index.html +210 -0
- data/vendor/phonegap/doc/index.js +74 -0
- data/vendor/phonegap/doc/line.png +0 -0
- data/vendor/phonegap/doc/mobile.css +139 -0
- data/vendor/phonegap/doc/prettify/LICENSE +191 -0
- data/vendor/phonegap/doc/prettify/lang-apollo.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-css.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-hs.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-lisp.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-lua.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-ml.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-proto.js +1 -0
- data/vendor/phonegap/doc/prettify/lang-scala.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-sql.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-vb.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-vhdl.js +3 -0
- data/vendor/phonegap/doc/prettify/lang-wiki.js +2 -0
- data/vendor/phonegap/doc/prettify/lang-yaml.js +2 -0
- data/vendor/phonegap/doc/prettify/prettify.css +44 -0
- data/vendor/phonegap/doc/prettify/prettify.js +33 -0
- data/vendor/phonegap/keys +201 -0
- data/vendor/phonegap/lib/DISCLAIMER +8 -0
- data/vendor/phonegap/lib/LICENSE +548 -0
- data/vendor/phonegap/lib/NOTICE +11 -0
- data/vendor/phonegap/lib/README.MD +54 -0
- data/vendor/phonegap/lib/android/LICENSE +202 -0
- data/vendor/phonegap/lib/android/NOTICE +5 -0
- data/vendor/phonegap/lib/android/README.md +114 -0
- data/vendor/phonegap/lib/android/VERSION +1 -0
- data/vendor/phonegap/lib/android/bin/create +147 -0
- data/vendor/phonegap/lib/android/bin/create.bat +15 -0
- data/vendor/phonegap/lib/android/bin/create.js +188 -0
- data/vendor/phonegap/lib/android/bin/create.xml +98 -0
- data/vendor/phonegap/lib/android/bin/package.json +22 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class +0 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/ApplicationInfo/ApplicationInfo.java +44 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/BOOM.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/appinfo.jar +0 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/clean +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/clean.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova +85 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.bat +15 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/cordova.js +104 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/debug +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/debug.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/emulate +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/emulate.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/log +7 -0
- data/vendor/phonegap/lib/android/bin/templates/cordova/log.bat +1 -0
- data/vendor/phonegap/lib/android/bin/templates/project/Activity.java +35 -0
- data/vendor/phonegap/lib/android/bin/templates/project/AndroidManifest.xml +61 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/index.html +60 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/main.js +165 -0
- data/vendor/phonegap/lib/android/bin/templates/project/assets/www/master.css +116 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-hdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-ldpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-mdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable-xhdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/templates/project/res/drawable/icon.png +0 -0
- data/vendor/phonegap/lib/android/bin/tests/test_create_unix.js +135 -0
- data/vendor/phonegap/lib/android/bin/tests/test_create_win.js +143 -0
- data/vendor/phonegap/lib/android/cordova-2.0.0.jar +0 -0
- data/vendor/phonegap/lib/android/cordova-2.0.0.js +5724 -0
- data/vendor/phonegap/lib/android/example/AndroidManifest.xml +61 -0
- data/vendor/phonegap/lib/android/example/ant.properties +17 -0
- data/vendor/phonegap/lib/android/example/assets/www/cordova-2.0.0.js +5724 -0
- data/vendor/phonegap/lib/android/example/assets/www/index.html +60 -0
- data/vendor/phonegap/lib/android/example/assets/www/main.js +165 -0
- data/vendor/phonegap/lib/android/example/assets/www/master.css +116 -0
- data/vendor/phonegap/lib/android/example/build.xml +83 -0
- data/vendor/phonegap/lib/android/example/cordova/BOOM +7 -0
- data/vendor/phonegap/lib/android/example/cordova/appinfo.jar +0 -0
- data/vendor/phonegap/lib/android/example/cordova/clean +7 -0
- data/vendor/phonegap/lib/android/example/cordova/cordova +85 -0
- data/vendor/phonegap/lib/android/example/cordova/debug +7 -0
- data/vendor/phonegap/lib/android/example/cordova/emulate +7 -0
- data/vendor/phonegap/lib/android/example/cordova/log +7 -0
- data/vendor/phonegap/lib/android/example/libs/cordova-2.0.0.jar +0 -0
- data/vendor/phonegap/lib/android/example/proguard-project.txt +20 -0
- data/vendor/phonegap/lib/android/example/project.properties +14 -0
- data/vendor/phonegap/lib/android/example/res/drawable-hdpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-hdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-ldpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-ldpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-mdpi/ic_launcher.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-mdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable-xhdpi/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/drawable/icon.png +0 -0
- data/vendor/phonegap/lib/android/example/res/layout/main.xml +13 -0
- data/vendor/phonegap/lib/android/example/res/values/strings.xml +4 -0
- data/vendor/phonegap/lib/android/example/res/xml/config.xml +54 -0
- data/vendor/phonegap/lib/android/example/src/org/apache/cordova/example/cordovaExample.java +35 -0
- data/vendor/phonegap/lib/android/xml/config.xml +54 -0
- data/vendor/phonegap/lib/bada/Icons/Cordova.png +0 -0
- data/vendor/phonegap/lib/bada/Icons/Cordova_Splash.png +0 -0
- data/vendor/phonegap/lib/bada/LICENSE +202 -0
- data/vendor/phonegap/lib/bada/NOTICE +5 -0
- data/vendor/phonegap/lib/bada/README.md +48 -0
- data/vendor/phonegap/lib/bada/Res/cordova/accelerometer.js +131 -0
- data/vendor/phonegap/lib/bada/Res/cordova/camera.js +102 -0
- data/vendor/phonegap/lib/bada/Res/cordova/compass.js +77 -0
- data/vendor/phonegap/lib/bada/Res/cordova/contact.js +355 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.base.js +561 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.bat +21 -0
- data/vendor/phonegap/lib/bada/Res/cordova/cordova.js +1661 -0
- data/vendor/phonegap/lib/bada/Res/cordova/debugconsole.js +126 -0
- data/vendor/phonegap/lib/bada/Res/cordova/device.js +46 -0
- data/vendor/phonegap/lib/bada/Res/cordova/file.js +682 -0
- data/vendor/phonegap/lib/bada/Res/cordova/geolocation.js +152 -0
- data/vendor/phonegap/lib/bada/Res/cordova/network.js +70 -0
- data/vendor/phonegap/lib/bada/Res/cordova/notification.js +117 -0
- data/vendor/phonegap/lib/bada/Res/cordova/position.js +74 -0
- data/vendor/phonegap/lib/bada/Res/eng-GB.xml +26 -0
- data/vendor/phonegap/lib/bada/Res/images/cordova_logo_normal_dark.png +0 -0
- data/vendor/phonegap/lib/bada/Res/index.html +108 -0
- data/vendor/phonegap/lib/bada/Res/main.js +390 -0
- data/vendor/phonegap/lib/bada/VERSION +1 -0
- data/vendor/phonegap/lib/bada/application.xml +45 -0
- data/vendor/phonegap/lib/bada/inc/Accelerometer.h +54 -0
- data/vendor/phonegap/lib/bada/inc/Compass.h +52 -0
- data/vendor/phonegap/lib/bada/inc/Contacts.h +62 -0
- data/vendor/phonegap/lib/bada/inc/Cordova.h +82 -0
- data/vendor/phonegap/lib/bada/inc/CordovaCommand.h +46 -0
- data/vendor/phonegap/lib/bada/inc/DebugConsole.h +41 -0
- data/vendor/phonegap/lib/bada/inc/Device.h +43 -0
- data/vendor/phonegap/lib/bada/inc/GeoLocation.h +52 -0
- data/vendor/phonegap/lib/bada/inc/Kamera.h +49 -0
- data/vendor/phonegap/lib/bada/inc/Network.h +56 -0
- data/vendor/phonegap/lib/bada/inc/Notification.h +50 -0
- data/vendor/phonegap/lib/bada/inc/WebForm.h +97 -0
- data/vendor/phonegap/lib/bada/manifest.xml +61 -0
- data/vendor/phonegap/lib/bada/src/Accelerometer.cpp +135 -0
- data/vendor/phonegap/lib/bada/src/Compass.cpp +131 -0
- data/vendor/phonegap/lib/bada/src/Contacts.cpp +600 -0
- data/vendor/phonegap/lib/bada/src/Cordova.cpp +139 -0
- data/vendor/phonegap/lib/bada/src/CordovaCommand.cpp +33 -0
- data/vendor/phonegap/lib/bada/src/CordovaEntry.cpp +60 -0
- data/vendor/phonegap/lib/bada/src/DebugConsole.cpp +81 -0
- data/vendor/phonegap/lib/bada/src/Device.cpp +81 -0
- data/vendor/phonegap/lib/bada/src/GeoLocation.cpp +144 -0
- data/vendor/phonegap/lib/bada/src/Kamera.cpp +121 -0
- data/vendor/phonegap/lib/bada/src/Network.cpp +123 -0
- data/vendor/phonegap/lib/bada/src/Notification.cpp +176 -0
- data/vendor/phonegap/lib/bada/src/WebForm.cpp +231 -0
- data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type4.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/codova_bada_wac_splash_type5.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_icon_type5.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type3.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_icon_type4.png +0 -0
- data/vendor/phonegap/lib/badaWac/Icons/cordova_bada_wac_splash_type3.png +0 -0
- data/vendor/phonegap/lib/badaWac/LICENSE +201 -0
- data/vendor/phonegap/lib/badaWac/NOTICE +5 -0
- data/vendor/phonegap/lib/badaWac/README.md +12 -0
- data/vendor/phonegap/lib/badaWac/Res/config.xml +47 -0
- data/vendor/phonegap/lib/badaWac/Res/cordova-2.0.0.js +5676 -0
- data/vendor/phonegap/lib/badaWac/Res/css/index.css +100 -0
- data/vendor/phonegap/lib/badaWac/Res/img/cordova.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/index.html +24 -0
- data/vendor/phonegap/lib/badaWac/Res/js/index.js +15 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/badaWac/Res/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/index.html +167 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/js/cordova.js +5576 -0
- data/vendor/phonegap/lib/badaWac/Res/sample/js/sample.js +404 -0
- data/vendor/phonegap/lib/badaWac/Res/spec.html +50 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/helper.js +11 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/index.js +49 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
- data/vendor/phonegap/lib/badaWac/Res/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
- data/vendor/phonegap/lib/badaWac/VERSION +1 -0
- data/vendor/phonegap/lib/badaWac/application.xml +51 -0
- data/vendor/phonegap/lib/badaWac/manifest.xml +58 -0
- data/vendor/phonegap/lib/blackberry/LICENSE +268 -0
- data/vendor/phonegap/lib/blackberry/NOTICE +8 -0
- data/vendor/phonegap/lib/blackberry/README.md +90 -0
- data/vendor/phonegap/lib/blackberry/VERSION +1 -0
- data/vendor/phonegap/lib/blackberry/bin/create +84 -0
- data/vendor/phonegap/lib/blackberry/bin/create.bat +14 -0
- data/vendor/phonegap/lib/blackberry/bin/create.js +94 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/dist/README.md +90 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/blackberry.xml +356 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/build.xml +138 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/debug +53 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/cordova/emulate +40 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/LICENSE.txt +47 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/playbook.xml +283 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/project.properties +97 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/index.html +976 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/json2.js +482 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/icon.png +0 -0
- data/vendor/phonegap/lib/blackberry/bin/templates/project/www/resources/loading_foreground.png +0 -0
- data/vendor/phonegap/lib/blackberry/sample/blackberry.xml +356 -0
- data/vendor/phonegap/lib/blackberry/sample/build.xml +138 -0
- data/vendor/phonegap/lib/blackberry/sample/cordova/debug +53 -0
- data/vendor/phonegap/lib/blackberry/sample/cordova/emulate +40 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/LICENSE.txt +47 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/ant-contrib/ant-contrib-1.0b3.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/sample/lib/cordova.2.0.0/javascript/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/sample/playbook.xml +283 -0
- data/vendor/phonegap/lib/blackberry/sample/project.properties +97 -0
- data/vendor/phonegap/lib/blackberry/sample/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/sample/www/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/sample/www/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/sample/www/index.html +976 -0
- data/vendor/phonegap/lib/blackberry/sample/www/json2.js +482 -0
- data/vendor/phonegap/lib/blackberry/sample/www/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/sample/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/blackberry/sample/www/resources/icon.png +0 -0
- data/vendor/phonegap/lib/blackberry/sample/www/resources/loading_foreground.png +0 -0
- data/vendor/phonegap/lib/blackberry/www/config.xml +82 -0
- data/vendor/phonegap/lib/blackberry/www/cordova-2.0.0.js +6407 -0
- data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/library.xml +40 -0
- data/vendor/phonegap/lib/blackberry/www/ext-air/Cordova_Network/src/org/apache/cordova/network/Network.as +80 -0
- data/vendor/phonegap/lib/blackberry/www/ext/cordova.2.0.0.jar +0 -0
- data/vendor/phonegap/lib/blackberry/www/playbook/cordova-2.0.0.js +6845 -0
- data/vendor/phonegap/lib/blackberry/www/plugins.xml +34 -0
- data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg +0 -0
- data/vendor/phonegap/lib/ios/Cordova-2.0.0.dmg.SHA1 +1 -0
- data/vendor/phonegap/lib/ios/LICENSE +394 -0
- data/vendor/phonegap/lib/ios/NOTICE +5 -0
- data/vendor/phonegap/lib/ios/bin/BOOM +27 -0
- data/vendor/phonegap/lib/ios/bin/README.md +29 -0
- data/vendor/phonegap/lib/ios/bin/_build.sh +92 -0
- data/vendor/phonegap/lib/ios/bin/autotest +24 -0
- data/vendor/phonegap/lib/ios/bin/bench +48 -0
- data/vendor/phonegap/lib/ios/bin/create +99 -0
- data/vendor/phonegap/lib/ios/bin/package.json +15 -0
- data/vendor/phonegap/lib/ios/bin/replaces +28 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateIcon.icns +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/TemplateInfo.plist +28 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__.xcodeproj/project.pbxproj +638 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/.gitignore +6 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.h +45 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/AppDelegate.m +135 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.h +32 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.m +141 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Classes/MainViewController.xib +138 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Cordova.plist +83 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/CordovaBuildSettings.xcconfig +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Plugins/README +20 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/controls_bg~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/microphone~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/record_button~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/recording_bg~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/Capture.bundle/stop_button~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/de.lproj/Localizable.strings +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/en.lproj/Localizable.strings +25 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/es.lproj/Localizable.strings +25 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon-72@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/icons/icon@2x.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/se.lproj/Localizable.strings +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Landscape~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait@2x~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default-Portrait~ipad.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default@2x~iphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/Resources/splash/Default~iphone.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Info.plist +78 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/__TESTING__/main.m +35 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/debug +47 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/emulate +58 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/cordova/log +26 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/config.xml +47 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/cordova-2.0.0.js +5240 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/css/index.css +100 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/index.html +44 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/js/index.js +20 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec.html +50 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/helper.js +11 -0
- data/vendor/phonegap/lib/ios/bin/templates/project/www/spec/index.js +49 -0
- data/vendor/phonegap/lib/ios/bin/test +44 -0
- data/vendor/phonegap/lib/ios/bin/tests/autotest.coffee +24 -0
- data/vendor/phonegap/lib/ios/bin/tests/create.coffee +34 -0
- data/vendor/phonegap/lib/ios/bin/tests/debug.coffee +18 -0
- data/vendor/phonegap/lib/ios/bin/tests/test.coffee +18 -0
- data/vendor/phonegap/lib/symbian/deprecated.txt +1 -0
- data/vendor/phonegap/lib/webos/LICENSE +202 -0
- data/vendor/phonegap/lib/webos/Makefile +127 -0
- data/vendor/phonegap/lib/webos/NOTICE +11 -0
- data/vendor/phonegap/lib/webos/README.md +52 -0
- data/vendor/phonegap/lib/webos/VERSION +1 -0
- data/vendor/phonegap/lib/webos/framework/appinfo.json +10 -0
- data/vendor/phonegap/lib/webos/framework/config.xml +47 -0
- data/vendor/phonegap/lib/webos/framework/cordova_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/css/index.css +100 -0
- data/vendor/phonegap/lib/webos/framework/img/cordova.png +0 -0
- data/vendor/phonegap/lib/webos/framework/index.html +24 -0
- data/vendor/phonegap/lib/webos/framework/js/index.js +20 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_128.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_16.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_24.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_256.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_32.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_512.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_64.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_36.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_48.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_72.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_android_96.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_bb_80.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_114.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_144.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_57.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/icon/cordova_ios_72.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_hdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_ldpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_mdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/android_xhdpi_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_300.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/blackberry_transparent_400.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/ipad_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_landscape.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/iphone_retina_portrait.png +0 -0
- data/vendor/phonegap/lib/webos/framework/res/screen/windows_phone_portrait.jpg +0 -0
- data/vendor/phonegap/lib/webos/framework/spec.html +50 -0
- data/vendor/phonegap/lib/webos/framework/spec/helper.js +11 -0
- data/vendor/phonegap/lib/webos/framework/spec/index.js +49 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/MIT.LICENSE +20 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine-html.js +616 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.css +81 -0
- data/vendor/phonegap/lib/webos/framework/spec/lib/jasmine-1.2.0/jasmine.js +2529 -0
- data/vendor/phonegap/lib/webos/js/acceleration.js +59 -0
- data/vendor/phonegap/lib/webos/js/accelerometer.js +133 -0
- data/vendor/phonegap/lib/webos/js/application.js +54 -0
- data/vendor/phonegap/lib/webos/js/audio.js +113 -0
- data/vendor/phonegap/lib/webos/js/camera.js +60 -0
- data/vendor/phonegap/lib/webos/js/compass.js +167 -0
- data/vendor/phonegap/lib/webos/js/contacts.js +69 -0
- data/vendor/phonegap/lib/webos/js/cordova-core.js +405 -0
- data/vendor/phonegap/lib/webos/js/debugconsole.js +62 -0
- data/vendor/phonegap/lib/webos/js/device.js +98 -0
- data/vendor/phonegap/lib/webos/js/file.js +79 -0
- data/vendor/phonegap/lib/webos/js/geolocation.js +232 -0
- data/vendor/phonegap/lib/webos/js/map.js +67 -0
- data/vendor/phonegap/lib/webos/js/mojo.js +81 -0
- data/vendor/phonegap/lib/webos/js/mouse.js +40 -0
- data/vendor/phonegap/lib/webos/js/network.js +96 -0
- data/vendor/phonegap/lib/webos/js/notification.js +139 -0
- data/vendor/phonegap/lib/webos/js/orientation.js +124 -0
- data/vendor/phonegap/lib/webos/js/position.js +87 -0
- data/vendor/phonegap/lib/webos/js/service.js +74 -0
- data/vendor/phonegap/lib/webos/js/sms.js +60 -0
- data/vendor/phonegap/lib/webos/js/telephony.js +45 -0
- data/vendor/phonegap/lib/webos/js/window.js +88 -0
- data/vendor/phonegap/lib/webos/js/windowproperties.js +31 -0
- data/vendor/phonegap/lib/webos/lib/thumbs.0.5.2.js +104 -0
- data/vendor/phonegap/lib/windows-phone/LICENSE +12 -0
- data/vendor/phonegap/lib/windows-phone/NOTICE +5 -0
- data/vendor/phonegap/lib/windows-phone/README.md +50 -0
- data/vendor/phonegap/lib/windows-phone/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/bin/create.bat +1 -0
- data/vendor/phonegap/lib/windows-phone/bin/create.js +154 -0
- data/vendor/phonegap/lib/windows-phone/example/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/example/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/example/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/example/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/example/BuildManifestProcessor.js +81 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaExample.csproj +195 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaExample.sln +28 -0
- data/vendor/phonegap/lib/windows-phone/example/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/example/MainPage.xaml.cs +70 -0
- data/vendor/phonegap/lib/windows-phone/example/Plugins/Calculator.cs +46 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/AppManifest.xml +24 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/example/Properties/WMAppManifest.xml +59 -0
- data/vendor/phonegap/lib/windows-phone/example/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/example/www/accelerometer.html +164 -0
- data/vendor/phonegap/lib/windows-phone/example/www/accelerometer2.html +175 -0
- data/vendor/phonegap/lib/windows-phone/example/www/audio.html +267 -0
- data/vendor/phonegap/lib/windows-phone/example/www/calculator.html +84 -0
- data/vendor/phonegap/lib/windows-phone/example/www/camera.html +115 -0
- data/vendor/phonegap/lib/windows-phone/example/www/capture.html +207 -0
- data/vendor/phonegap/lib/windows-phone/example/www/compass.html +150 -0
- data/vendor/phonegap/lib/windows-phone/example/www/contacts.html +169 -0
- data/vendor/phonegap/lib/windows-phone/example/www/cordova-2.0.0.js +5658 -0
- data/vendor/phonegap/lib/windows-phone/example/www/events.html +146 -0
- data/vendor/phonegap/lib/windows-phone/example/www/file.html +284 -0
- data/vendor/phonegap/lib/windows-phone/example/www/index.html +108 -0
- data/vendor/phonegap/lib/windows-phone/example/www/location.html +165 -0
- data/vendor/phonegap/lib/windows-phone/example/www/master.css +156 -0
- data/vendor/phonegap/lib/windows-phone/example/www/network.html +96 -0
- data/vendor/phonegap/lib/windows-phone/example/www/notification.html +112 -0
- data/vendor/phonegap/lib/windows-phone/example/www/storage.html +78 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.back.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.close.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.feature.video.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.next.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.save.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Images/appbar.stop.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/framework/Properties/AssemblyInfo.cs +35 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.csproj +281 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLib.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7CordovaClassLibBare.csproj +127 -0
- data/vendor/phonegap/lib/windows-phone/framework/WP7GapClassLibBare.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/framework/resources/notification-beep.wav +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/CordovaStarter-2.0.0.zip +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/BuildManifestProcessor.js +83 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaAppProj.csproj +152 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/CordovaSourceDictionary.xml +23 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/Properties/WMAppManifest.xml +32 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/custom/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/description.txt +4 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaAppProj.csproj +153 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaLib/WP7CordovaClassLib.dll +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/CordovaSourceDictionary.xml +9 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/Properties/WMAppManifest.xml +41 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/cordova/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/cordova/emulate.bat +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/full/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/pg_templateIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/pg_templatePreview.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml +37 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/App.xaml.cs +154 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaAppProj.csproj +231 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSolution.sln +22 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/MainPage.xaml.cs +72 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/AssemblyInfo.cs +38 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/Properties/WMAppManifest.xml +42 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/VERSION +1 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordova/emulate.bat +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/BrowserMouseHelper.cs +345 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CommandFactory.cs +104 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Accelerometer.cs +195 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/AudioPlayer.cs +617 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/BaseCommand.cs +129 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Battery.cs +79 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Camera.cs +490 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Capture.cs +735 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Compass.cs +364 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Contacts.cs +643 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/DebugConsole.cs +49 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Device.cs +124 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/File.cs +1441 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/FileTransfer.cs +525 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/GeoLocation.cs +34 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/ImageExifHelper.cs +222 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Media.cs +522 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/MimeTypeMapper.cs +99 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/NetworkStatus.cs +124 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Notification.cs +322 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaCommandCall.cs +86 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml +65 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/CordovaView.xaml.cs +451 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/DOMStorageHelper.cs +145 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.back.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.close.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.feature.video.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.next.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.save.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Images/appbar.stop.rest.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/JSON/JsonHelper.cs +97 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/NativeExecution.cs +207 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/OrientationHelper.cs +128 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/PluginResult.cs +165 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/ScriptCallback.cs +80 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioCaptureTask.cs +105 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml +66 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/AudioRecorder.xaml.cs +387 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml +26 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/ImageCapture.xaml.cs +107 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml +62 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/NotificationBox.xaml.cs +41 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoCaptureTask.cs +104 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/UI/VideoRecorder.xaml.cs +405 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/resources/notification-beep.wav +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/cordova-2.0.0.js +5672 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/css/index.css +100 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/img/cordova.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/index.html +24 -0
- data/vendor/phonegap/lib/windows-phone/templates/standalone/www/js/index.js +20 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.cs +64 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GapAppVsPackage.csproj +174 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/GlobalSuppressions.cs +11 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Guids.cs +14 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Key.snk +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Properties/AssemblyInfo.cs +36 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.Designer.cs +63 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources.resx +129 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/Resources/Package.ico +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/VSPackage.resx +140 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templateIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/pg_templatePreview.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/templates/vspackage/source.extension.vsixmanifest +30 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml +38 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/App.xaml.cs +158 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/ApplicationIcon.png +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Background.png +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/BuildManifestProcessor.js +80 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/CordovaSourceDictionary.xml +4 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml +52 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MainPage.xaml.cs +42 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.csproj +141 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/MobileSpecUnitTests.sln +28 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AppManifest.xml +6 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/AssemblyInfo.cs +35 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/Properties/WMAppManifest.xml +35 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/SplashScreenImage.jpg +0 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/cordova-2.0.0.js +5658 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/index.html +43 -0
- data/vendor/phonegap/lib/windows-phone/tests/MobileSpecUnitTests/www/master.css +112 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy.sln +20 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/CordovaDeploy.csproj +79 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Program.cs +219 -0
- data/vendor/phonegap/lib/windows-phone/tooling/CordovaDeploy/CordovaDeploy/Properties/AssemblyInfo.cs +36 -0
- data/vendor/phonegap/lib/windows-phone/tooling/scripts/debug.bat +68 -0
- data/vendor/phonegap/lib/windows-phone/tooling/scripts/emulate.bat +24 -0
- 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
|
+
}
|
data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/Accelerometer.cs
ADDED
|
@@ -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
|
+
|
data/vendor/phonegap/lib/windows-phone/templates/standalone/cordovalib/Commands/AudioPlayer.cs
ADDED
|
@@ -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
|
+
}
|