Creating config programatically

feature/109
Christoph Oberhofer 9 years ago committed by Christoph Oberhofer
parent f3f656f3e7
commit b733c2b7fd

@ -1,8 +1,9 @@
const vec2 = {
clone: require('gl-vec2/clone'),
dot: require('gl-vec2/dot')
}
/**
};
/**
* Creates a cluster for grouping similar orientations of datapoints
*/
export default {

@ -1,10 +1,10 @@
import Cluster2 from './cluster';
import ArrayHelper from './array_helper';
const vec2 = {
clone: require('gl-vec2/clone'),
clone: require('gl-vec2/clone')
};
const vec3 = {
clone: require('gl-vec3/clone'),
clone: require('gl-vec3/clone')
};
/**

@ -1,5 +1,3 @@
import ImageWrapper from '../common/image_wrapper';
var Bresenham = {};
var Slope = {

@ -1,7 +1,6 @@
import {merge, pick} from 'lodash';
var streamRef,
loadedDataHandler;
var streamRef;
function waitForVideo(video) {
return new Promise((resolve, reject) => {

@ -6,11 +6,12 @@ import Events from './common/events';
import ImageDebug from './common/image_debug';
import ResultCollector from './analytics/result_collector';
import Config from './config/config';
import {merge} from 'lodash';
import {merge, pick, omitBy, isEmpty, omit} from 'lodash';
function fromImage(config, imageSrc, imageConfig) {
config = merge({
config =
merge({
inputStream: {
type: "ImageStream",
sequence: false,
@ -21,7 +22,12 @@ function fromImage(config, imageSrc, imageConfig) {
locator: {
halfSample: false
}
}, config, {inputStream: imageConfig});
},
omit(config, 'inputStream'),
{inputStream: omitBy(pick(config.inputStream, ['size', 'src']), isEmpty)},
{inputStream: imageConfig});
console.log(config);
const scanner = createScanner(config);
return {
addEventListener: (eventType, cb) => {
@ -38,12 +44,16 @@ function fromImage(config, imageSrc, imageConfig) {
},
toPromise() {
return new Promise((resolve, reject) => {
scanner.addEventListener('processed', (result) => {
scanner.init(config, () => {
Events.once('processed', (result) => {
scanner.stop();
if (result.codeResult && result.codeResult.code) {
return resolve(result);
}
return reject(result);
});
scanner.start();
});
});
}
};
@ -87,12 +97,25 @@ function fromImage(config, imageSrc, imageConfig) {
} */
let defaultScanner = createScanner();
export default {
withConfig: function(config) {
function setConfig(configuration = {}, key, config = {}) {
var mergedConfig = merge({}, configuration, {[key]: config});
return createApi(mergedConfig);
}
function createApi(configuration = Config) {
return {
fromImage: fromImage.bind(this, config)
//fromVideo: fromVideo.bind(this, config)
};
fromImage(src, conf) {
return fromImage(configuration, src, conf);
},
decoder(conf) {
return setConfig(configuration, "decoder", conf);
},
locator(conf) {
return setConfig(configuration, "locator", conf);
},
config(conf) {
return createApi(merge({}, configuration, conf));
},
init: function(config, cb, imageWrapper) {
defaultScanner.init(config, cb, imageWrapper);
@ -128,4 +151,6 @@ export default {
ImageDebug: ImageDebug,
ResultCollector: ResultCollector,
canvas: defaultScanner.canvas
};
};
}
export default createApi();

@ -515,18 +515,6 @@ function createScanner() {
}
},
decodeSingle: function(config, resultCallback) {
config = merge({
inputStream: {
type: "ImageStream",
sequence: false,
size: 800,
src: config.src
},
numOfWorkers: (ENV.development && config.debug) ? 0 : 1,
locator: {
halfSample: false
}
}, config);
this.init(config, () => {
Events.once("processed", (result) => {
this.stop();

Loading…
Cancel
Save