X-Git-Url: https://git-public.kairo.at/?p=tricorder.git;a=blobdiff_plain;f=js%2Ftricorder.js;h=11ec7062bb0e2d4174aef8cf3562089ac3f9d1be;hp=3887a533936ad8b028c5d329f47490dd5b4fb66c;hb=b41c095bad1cb176864b6d8e25bcff50faf4634e;hpb=5f050b526584513ddae9f326a7ac330e539854fc diff --git a/js/tricorder.js b/js/tricorder.js index 3887a53..11ec706 100644 --- a/js/tricorder.js +++ b/js/tricorder.js @@ -323,18 +323,16 @@ var gModEnv = { } }, 5000); try { - for (var cameraId of window.navigator.mozCameras.getListOfCameras()) { - window.navigator.mozCameras.getCamera({camera: cameraId}, function(aCamera) { + 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) { - this.flashCamera = aCamera; + gModEnv.foundFlashCamera(aCamera); } - }); - } - if (this.flashCamera) { - document.getElementById("envFlashOn").onclick = gModEnv.switchFlashlight(true); - document.getElementById("envFlashOff").onclick = gModEnv.switchFlashlight(false); - document.getElementById("envFlashUnavail").style.display = "none"; - document.getElementById("envFlashAvail").style.display = "block"; + }, + function(aError) { console.log("camera error: " + aError); } + ); } } catch (e) { // camera api not supported @@ -342,6 +340,13 @@ var gModEnv = { 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"; + }, deactivate: function() { gSounds.scan.pause(); window.removeEventListener("devicelight", this.lightEvent, true); @@ -371,6 +376,8 @@ var gModEnv = { switchFlashlight: function(aEnabled) { if (this.flashCamera) { this.flashCamera.flashMode = aEnabled ? 'torch' : 'off'; + document.getElementById("envFlashOn").disabled = aEnabled; + document.getElementById("envFlashOff").disabled = !aEnabled; } } }