X-Git-Url: https://git-public.kairo.at/?p=tricorder.git;a=blobdiff_plain;f=js%2Ftricorder.js;fp=js%2Ftricorder.js;h=f8bc28f18a108b8f680a7aba921a02fbb11ac04d;hp=3887a533936ad8b028c5d329f47490dd5b4fb66c;hb=937918f280e71f09c0f8ef1d1478482e307be052;hpb=5f050b526584513ddae9f326a7ac330e539854fc diff --git a/js/tricorder.js b/js/tricorder.js index 3887a53..f8bc28f 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(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; } } }