+ gModSound.mDisplay.AFRequestID = window.requestAnimationFrame(gModSound.paintAnalyzerFrame);
+ },
+ resize: function() {
+ gModSound.rebuildCanvas();
+ },
+ deactivate: function() {
+ if (gModSound.mDisplay.active) {
+ gModSound.mAudio.stream.stop();
+ gModSound.mDisplay.active = false;
+ }
+ gSounds.scan.pause();
+ },
+}
+
+var gModEnv = {
+ activate: function() {
+ gSounds.scan.play();
+ document.getElementById("envunavail").style.display = "none";
+ document.getElementById("envavail").style.display = "block";
+ window.addEventListener("devicelight", this.lightEvent, true);
+ window.addEventListener("deviceproximity", this.proxEvent, true);
+ setTimeout(function() {
+ if ((document.getElementById("envLight").textContent == "...") &&
+ (document.getElementById("envDistance").textContent == "...")) {
+ gModEnv.deactivate();
+ }
+ }, 5000);
+ try {
+ var cameras = navigator.mozCameras.getListOfCameras();
+ for (i = 0; i < cameras.length; i++) {
+ var promise = navigator.mozCameras.getCamera(cameras[i], {},
+ function(aCamera) {
+ if (aCamera.capabilities.flashModes.indexOf('torch') !== -1) {
+ gModEnv.foundFlashCamera(aCamera);
+ }
+ },
+ function(aError) { console.log("camera error: " + aError); }
+ );
+ }
+ } catch (e) {
+ // camera api not supported
+ document.getElementById("envFlashUnavail").style.display = "block";
+ document.getElementById("envFlashAvail").style.display = "none";
+ }
+ },
+ foundFlashCamera: function(aCamera) {
+ this.flashCamera = aCamera;
+ document.getElementById("envFlashOn").onclick = function() { console.log("on"); gModEnv.switchFlashlight(true); };
+ document.getElementById("envFlashOff").onclick = function() { console.log("off"); gModEnv.switchFlashlight(false); };
+ document.getElementById("envFlashUnavail").style.display = "none";
+ document.getElementById("envFlashAvail").style.display = "block";