Skip to content

Commit

Permalink
Merge pull request #62 from serratus/issue-53
Browse files Browse the repository at this point in the history
Adding support for IE
  • Loading branch information
serratus committed Aug 29, 2015
2 parents bc72830 + 2758c9f commit e5acf19
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 13 deletions.
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
quaggaJS
========

- [Changelog](#changelog) (2015-08-13)
- [Changelog](#changelog) (2015-08-29)

## What is QuaggaJS?

Expand Down Expand Up @@ -34,10 +34,10 @@ be aligned with the viewport.

In order to take full advantage of quaggaJS, the browser needs to support the
`getUserMedia` API which is already implemented in recent versions of Firefox,
Chrome and Opera. The API is also available on their mobile counterparts
installed on Android. Safari and IE do not allow the access to the camera yet,
neither on desktop, nor on mobile. You can check [caniuse][caniuse_getusermedia]
for updates.
Chrome, IE (Edge) and Opera. The API is also available on their mobile
counterparts installed on Android (except IE). Safari does not allow the access
to the camera yet, neither on desktop, nor on mobile. You can check
[caniuse][caniuse_getusermedia] for updates.

In cases where real-time decoding is not needed, or the platform does not
support `getUserMedia` QuaggaJS is also capable of decoding image-files using
Expand Down Expand Up @@ -377,6 +377,10 @@ on the ``singleChannel`` flag in the configuration when using ``decodeSingle``.

## <a name="changelog">Changelog</a>

### 2015-08-29
- Improvements
- Added support for Internet Explorer (only Edge+ supports `getUserMedia`)

### 2015-08-13
- Improvements
- Added `offProcessed` and `offDetected` methods for detaching event-
Expand Down
17 changes: 15 additions & 2 deletions dist/quagga.js
Original file line number Diff line number Diff line change
Expand Up @@ -835,7 +835,15 @@ if (typeof window !== 'undefined') {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
}

Math.imul = Math.imul || function(a, b) {
var ah = (a >>> 16) & 0xffff,
al = a & 0xffff,
bh = (b >>> 16) & 0xffff,
bl = b & 0xffff;
// the shift by 0 fixes the sign on the high part
// the final |0 converts the unsigned value into a signed value
return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
};
define("typedefs", (function (global) {
return function () {
var ret, fn;
Expand Down Expand Up @@ -9084,10 +9092,10 @@ function(InputStream,

blobURL = generateWorkerBlob();
workerThread.worker = new Worker(blobURL);
URL.revokeObjectURL(blobURL);

workerThread.worker.onmessage = function(e) {
if (e.data.event === 'initialized') {
URL.revokeObjectURL(blobURL);
workerThread.busy = false;
workerThread.imageData = new Uint8Array(e.data.imageData);
console.log("Worker initialized");
Expand All @@ -9096,6 +9104,8 @@ function(InputStream,
workerThread.imageData = new Uint8Array(e.data.imageData);
workerThread.busy = false;
publishResult(e.data.result, workerThread.imageData);
} else if (e.data.event === 'error') {
console.log("Worker error: " + e.data.message);
}
};

Expand All @@ -9110,10 +9120,13 @@ function(InputStream,

function workerInterface(factory) {
if (factory) {
/* jshint ignore:start */
var Quagga = factory();
if (!Quagga) {
self.postMessage({'event': 'error', message: 'Quagga could not be created'});
return;
}
/* jshint ignore:end */
}
/* jshint ignore:start */
var imageWrapper;
Expand Down
8 changes: 4 additions & 4 deletions dist/quagga.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "quagga",
"version": "0.6.15",
"version": "0.6.16",
"description": "An advanced barcode-scanner written in JavaScript",
"main": "dist/quagga.js",
"devDependencies": {
Expand Down
7 changes: 6 additions & 1 deletion src/quagga.js
Original file line number Diff line number Diff line change
Expand Up @@ -332,10 +332,10 @@ function(InputStream,

blobURL = generateWorkerBlob();
workerThread.worker = new Worker(blobURL);
URL.revokeObjectURL(blobURL);

workerThread.worker.onmessage = function(e) {
if (e.data.event === 'initialized') {
URL.revokeObjectURL(blobURL);
workerThread.busy = false;
workerThread.imageData = new Uint8Array(e.data.imageData);
console.log("Worker initialized");
Expand All @@ -344,6 +344,8 @@ function(InputStream,
workerThread.imageData = new Uint8Array(e.data.imageData);
workerThread.busy = false;
publishResult(e.data.result, workerThread.imageData);
} else if (e.data.event === 'error') {
console.log("Worker error: " + e.data.message);
}
};

Expand All @@ -358,10 +360,13 @@ function(InputStream,

function workerInterface(factory) {
if (factory) {
/* jshint ignore:start */
var Quagga = factory();
if (!Quagga) {
self.postMessage({'event': 'error', message: 'Quagga could not be created'});
return;
}
/* jshint ignore:end */
}
/* jshint ignore:start */
var imageWrapper;
Expand Down
9 changes: 9 additions & 0 deletions src/typedefs.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,12 @@ if (typeof window !== 'undefined') {
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
}
Math.imul = Math.imul || function(a, b) {
var ah = (a >>> 16) & 0xffff,
al = a & 0xffff,
bh = (b >>> 16) & 0xffff,
bl = b & 0xffff;
// the shift by 0 fixes the sign on the high part
// the final |0 converts the unsigned value into a signed value
return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
};

0 comments on commit e5acf19

Please sign in to comment.