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.

- -
- - - - - - - - - - - - - - -
+
+ +
+
+ Barcode-Type + +
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