UNPKG

@zxing/library

Version:

TypeScript port of ZXing multi-format 1D/2D barcode image processing library.

90 lines (89 loc) 3.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EncoderContext = void 0; var StringBuilder_1 = require("../../util/StringBuilder"); var SymbolInfo_1 = require("./SymbolInfo"); var EncoderContext = /** @class */ (function () { function EncoderContext(msg) { this.msg = msg; this.pos = 0; this.skipAtEnd = 0; // From this point on Strings are not Unicode anymore! var msgBinary = msg.split('').map(function (c) { return c.charCodeAt(0); }); var sb = new StringBuilder_1.default(); for (var i = 0, c = msgBinary.length; i < c; i++) { var ch = String.fromCharCode(msgBinary[i] & 0xff); if (ch === '?' && msg.charAt(i) !== '?') { throw new Error('Message contains characters outside ISO-8859-1 encoding.'); } sb.append(ch); } this.msg = sb.toString(); // Not Unicode here! this.shape = 0 /* FORCE_NONE */; this.codewords = new StringBuilder_1.default(); this.newEncoding = -1; } EncoderContext.prototype.setSymbolShape = function (shape) { this.shape = shape; }; EncoderContext.prototype.setSizeConstraints = function (minSize, maxSize) { this.minSize = minSize; this.maxSize = maxSize; }; EncoderContext.prototype.getMessage = function () { return this.msg; }; EncoderContext.prototype.setSkipAtEnd = function (count) { this.skipAtEnd = count; }; EncoderContext.prototype.getCurrentChar = function () { return this.msg.charCodeAt(this.pos); }; EncoderContext.prototype.getCurrent = function () { return this.msg.charCodeAt(this.pos); }; EncoderContext.prototype.getCodewords = function () { return this.codewords; }; EncoderContext.prototype.writeCodewords = function (codewords) { this.codewords.append(codewords); }; EncoderContext.prototype.writeCodeword = function (codeword) { this.codewords.append(codeword); }; EncoderContext.prototype.getCodewordCount = function () { return this.codewords.length(); }; EncoderContext.prototype.getNewEncoding = function () { return this.newEncoding; }; EncoderContext.prototype.signalEncoderChange = function (encoding) { this.newEncoding = encoding; }; EncoderContext.prototype.resetEncoderSignal = function () { this.newEncoding = -1; }; EncoderContext.prototype.hasMoreCharacters = function () { return this.pos < this.getTotalMessageCharCount(); }; EncoderContext.prototype.getTotalMessageCharCount = function () { return this.msg.length - this.skipAtEnd; }; EncoderContext.prototype.getRemainingCharacters = function () { return this.getTotalMessageCharCount() - this.pos; }; EncoderContext.prototype.getSymbolInfo = function () { return this.symbolInfo; }; EncoderContext.prototype.updateSymbolInfo = function (len) { if (len === void 0) { len = this.getCodewordCount(); } if (this.symbolInfo == null || len > this.symbolInfo.getDataCapacity()) { this.symbolInfo = SymbolInfo_1.default.lookup(len, this.shape, this.minSize, this.maxSize, true); } }; EncoderContext.prototype.resetSymbolInfo = function () { this.symbolInfo = null; }; return EncoderContext; }()); exports.EncoderContext = EncoderContext;