diff --git a/example/static_images.html b/example/static_images.html
index a61ef0c..dd0b174 100644
--- a/example/static_images.html
+++ b/example/static_images.html
@@ -29,23 +29,21 @@
Code128 and EAN encoded barcodes.
diff --git a/example/static_images.js b/example/static_images.js
index feb3de8..e7daa28 100644
--- a/example/static_images.js
+++ b/example/static_images.js
@@ -1,41 +1,95 @@
$(function() {
var App = {
init: function() {
- Quagga.init({
- inputStream: { name: "Test",
- type: "ImageStream",
- src: "../test/fixtures/" + App.config.reader + "/",
- length: App.config.length
- },
- decoder : {
- readers : [App.config.reader + "_reader"]
- }
- }, function() {
+ Quagga.init(this.state, function() {
App.attachListeners();
Quagga.start();
});
},
config: {
- reader: "upc_e",
+ reader: "code_128",
length: 10
},
attachListeners: function() {
+ var self = this;
+
$(".controls").on("click", "button.next", function(e) {
e.preventDefault();
Quagga.start();
});
-
- $(".controls .reader-group").on("change", "input", function(e) {
+
+ $(".controls .reader-config-group").on("change", "input, select", function(e) {
e.preventDefault();
- App.detachListeners();
- Quagga.stop();
- App.config.reader = e.target.value;
- App.init();
+ var $target = $(e.target),
+ value = $target.attr("type") === "checkbox" ? $target.prop("checked") : $target.val(),
+ name = $target.attr("name"),
+ states = self._convertNameToStates(name);
+
+ console.log("Value of "+ states + " changed to " + value);
+ self.setState(states, value);
});
},
detachListeners: function() {
$(".controls").off("click", "button.next");
- $(".controls .reader-group").off("change", "input");
+ $(".controls .reader-config-group").off("change", "input, select");
+ },
+ _accessByPath: function(obj, path, val) {
+ var parts = path.split('.'),
+ depth = parts.length,
+ setter = (typeof val !== "undefined") ? true : false;
+
+ return parts.reduce(function(o, key, i) {
+ if (setter && (i + 1) === depth) {
+ o[key] = val;
+ }
+ return key in o ? o[key] : {};
+ }, obj);
+ },
+ _convertNameToStates: function(names) {
+ return names.split(";").map(this._convertNameToState.bind(this));
+ },
+ _convertNameToState: function(name) {
+ return name.replace("_", ".").split("-").reduce(function(result, value) {
+ return result + value.charAt(0).toUpperCase() + value.substring(1);
+ });
+ },
+ setState: function(paths, value) {
+ var self = this;
+
+ paths.forEach(function(path) {
+ var mappedValue;
+ if (typeof self._accessByPath(self.inputMapper, path) === "function") {
+ mappedValue = self._accessByPath(self.inputMapper, path)(value);
+ }
+ self._accessByPath(self.state, path, mappedValue);
+ });
+
+ console.log(JSON.stringify(self.state));
+ App.detachListeners();
+ Quagga.stop();
+ App.init();
+ },
+ inputMapper: {
+ decoder: {
+ readers: function(value) {
+ return [value + "_reader"];
+ }
+ },
+ inputStream: {
+ src: function(value) {
+ return "../test/fixtures/" + value + "/"
+ }
+ }
+ },
+ state: {
+ inputStream: { name: "Test",
+ type: "ImageStream",
+ src: "../test/fixtures/code_128/",
+ length: 10
+ },
+ decoder : {
+ readers : ["code_128_reader"]
+ }
}
};
diff --git a/test/fixtures/code_128/image-001.jpg b/test/fixtures/code_128/image-001.jpg
index 8156afb..2075809 100644
Binary files a/test/fixtures/code_128/image-001.jpg and b/test/fixtures/code_128/image-001.jpg differ
diff --git a/test/fixtures/ean/image-001.jpg b/test/fixtures/ean/image-001.jpg
index a89dd5f..36adff7 100644
Binary files a/test/fixtures/ean/image-001.jpg and b/test/fixtures/ean/image-001.jpg differ
diff --git a/test/fixtures/ean/image-002.jpg b/test/fixtures/ean/image-002.jpg
index fcc6956..eee42c3 100644
Binary files a/test/fixtures/ean/image-002.jpg and b/test/fixtures/ean/image-002.jpg differ
diff --git a/test/fixtures/ean/image-003.jpg b/test/fixtures/ean/image-003.jpg
index b9b7c42..b6011bd 100644
Binary files a/test/fixtures/ean/image-003.jpg and b/test/fixtures/ean/image-003.jpg differ
diff --git a/test/fixtures/ean/image-004.jpg b/test/fixtures/ean/image-004.jpg
index 18fc822..b2c5e9c 100644
Binary files a/test/fixtures/ean/image-004.jpg and b/test/fixtures/ean/image-004.jpg differ
diff --git a/test/fixtures/ean/image-005.jpg b/test/fixtures/ean/image-005.jpg
index 8142f5a..aa53160 100644
Binary files a/test/fixtures/ean/image-005.jpg and b/test/fixtures/ean/image-005.jpg differ
diff --git a/test/fixtures/ean/image-006.jpg b/test/fixtures/ean/image-006.jpg
index c37a19c..6561f09 100644
Binary files a/test/fixtures/ean/image-006.jpg and b/test/fixtures/ean/image-006.jpg differ
diff --git a/test/fixtures/ean/image-007.jpg b/test/fixtures/ean/image-007.jpg
index b4dd4d5..88c5f8f 100644
Binary files a/test/fixtures/ean/image-007.jpg and b/test/fixtures/ean/image-007.jpg differ
diff --git a/test/fixtures/ean/image-008.jpg b/test/fixtures/ean/image-008.jpg
index 341f09c..a954b61 100644
Binary files a/test/fixtures/ean/image-008.jpg and b/test/fixtures/ean/image-008.jpg differ
diff --git a/test/fixtures/ean/image-009.jpg b/test/fixtures/ean/image-009.jpg
index c55faee..825ac92 100644
Binary files a/test/fixtures/ean/image-009.jpg and b/test/fixtures/ean/image-009.jpg differ
diff --git a/test/fixtures/ean/image-010.jpg b/test/fixtures/ean/image-010.jpg
index eacbe2f..6a5a833 100644
Binary files a/test/fixtures/ean/image-010.jpg and b/test/fixtures/ean/image-010.jpg differ