/*
* Photo Editor SDK - photoeditorsdk.com
* Copyright (c) 2013-2015 9elements GmbH
*
* Released under Attribution-NonCommercial 3.0 Unported
* http://creativecommons.org/licenses/by-nc/3.0/
*
* For commercial use, please contact us at contact@9elements.com
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; Eif ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
// istanbul ignore next
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var ArrayStream = (function () {
function ArrayStream(buf) {
_classCallCheck(this, ArrayStream);
this._head = 0;
this._buf = buf;
}
_createClass(ArrayStream, [{
key: 'getHead',
value: function getHead() {
return this._head;
}
}, {
key: 'setHead',
value: function setHead(head) {
this._head = head;
}
}, {
key: 'peekInt8',
value: function peekInt8() {
return this._buf[this._head];
}
}, {
key: 'peekInt16',
value: function peekInt16() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var a = this._buf[this._head];
var b = this._buf[this._head + 1];
if (!littleEndian) {
return (a << 8) + b;
} else {
return (b << 8) + a;
}
}
}, {
key: 'peekInt24',
value: function peekInt24() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var a = this._buf[this._head];
var b = this._buf[this._head + 1];
var c = this._buf[this._head + 2];
if (!littleEndian) {
return (a << 16) + (b << 8) + c;
} else {
return (c << 16) + (b << 8) + a;
}
}
}, {
key: 'peekInt32',
value: function peekInt32() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var a = this._buf[this._head];
var b = this._buf[this._head + 1];
var c = this._buf[this._head + 2];
var d = this._buf[this._head + 3];
if (!littleEndian) {
return (a << 32) + (b << 16) + (c << 8) + d;
} else {
return (d << 32) + (c << 16) + (b << 8) + a;
}
}
}, {
key: 'writeInt16',
value: function writeInt16(num) {
this._buf[this._head] = num >> 8; // upper
this._buf[this._head + 1] = num & 0xff; // lower
}
}, {
key: 'readInt8',
value: function readInt8() {
var num = this.peekInt8();
this._head += 1;
return num;
}
}, {
key: 'readInt16',
value: function readInt16() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var num = this.peekInt16(littleEndian);
this._head += 2;
return num;
}
}, {
key: 'readInt24',
value: function readInt24() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var num = this.peekInt24(littleEndian);
this._head += 3;
return num;
}
}, {
key: 'readInt32',
value: function readInt32() {
var littleEndian = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];
var num = this.peekInt32(littleEndian);
this._head += 4;
return num;
}
}, {
key: 'readString',
value: function readString(length) {
var str = '';
for (var i = 0; i < length; i++) {
var character = this.readInt8();
str += String.fromCharCode(character);
}
return str;
}
}]);
return ArrayStream;
})();
exports['default'] = ArrayStream;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9yb290L1NFUlZFUi9pbWdseS1zZGstaHRtbDUvc3JjL2pzL2xpYi9hcnJheS1zdHJlYW0uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFVcUIsV0FBVztBQUNsQixXQURPLFdBQVcsQ0FDakIsR0FBRyxFQUFFOzBCQURDLFdBQVc7O0FBRTVCLFFBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0FBQ2QsUUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUE7R0FDaEI7O2VBSmtCLFdBQVc7O1dBTXRCLG1CQUFHO0FBQ1QsYUFBTyxJQUFJLENBQUMsS0FBSyxDQUFBO0tBQ2xCOzs7V0FFTyxpQkFBQyxJQUFJLEVBQUU7QUFDYixVQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtLQUNsQjs7O1dBRVEsb0JBQUc7QUFDVixhQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQzdCOzs7V0FFUyxxQkFBdUI7VUFBdEIsWUFBWSx5REFBRyxLQUFLOztBQUM3QixVQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUMvQixVQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDbkMsVUFBSSxDQUFDLFlBQVksRUFBRTtBQUNqQixlQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQSxHQUFJLENBQUMsQ0FBQTtPQUNwQixNQUFNO0FBQ0wsZUFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUEsR0FBSSxDQUFDLENBQUE7T0FDcEI7S0FDRjs7O1dBRVMscUJBQXVCO1VBQXRCLFlBQVkseURBQUcsS0FBSzs7QUFDN0IsVUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDL0IsVUFB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RSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQy9CLFlBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUNqQyxXQUFHLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtPQUN0QztBQUNELGFBQU8sR0FBRyxDQUFBO0tBQ1g7OztTQXZGa0IsV0FBVzs7O3FCQUFYLFdBQVciLCJmaWxlIjoiL3Jvb3QvU0VSVkVSL2ltZ2x5LXNkay1odG1sNS9zcmMvanMvbGliL2FycmF5LXN0cmVhbS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQaG90byBFZGl0b3IgU0RLIC0gcGhvdG9lZGl0b3JzZGsuY29tXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNSA5ZWxlbWVudHMgR21iSFxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIEF0dHJpYnV0aW9uLU5vbkNvbW1lcmNpYWwgMy4wIFVucG9ydGVkXG4gKiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uYy8zLjAvXG4gKlxuICogRm9yIGNvbW1lcmNpYWwgdXNlLCBwbGVhc2UgY29udGFjdCB1cyBhdCBjb250YWN0QDllbGVtZW50cy5jb21cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcnJheVN0cmVhbSB7XG4gIGNvbnN0cnVjdG9yIChidWYpIHtcbiAgICB0aGlzLl9oZWFkID0gMFxuICAgIHRoaXMuX2J1ZiA9IGJ1ZlxuICB9XG5cbiAgZ2V0SGVhZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRcbiAgfVxuXG4gIHNldEhlYWQgKGhlYWQpIHtcbiAgICB0aGlzLl9oZWFkID0gaGVhZFxuICB9XG5cbiAgcGVla0ludDggKCkge1xuICAgIHJldHVybiB0aGlzLl9idWZbdGhpcy5faGVhZF1cbiAgfVxuXG4gIHBlZWtJbnQxNiAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBhID0gdGhpcy5fYnVmW3RoaXMuX2hlYWRdXG4gICAgY29uc3QgYiA9IHRoaXMuX2J1Zlt0aGlzLl9oZWFkICsgMV1cbiAgICBpZiAoIWxpdHRsZUVuZGlhbikge1xuICAgICAgcmV0dXJuIChhIDw8IDgpICsgYlxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKGIgPDwgOCkgKyBhXG4gICAgfVxuICB9XG5cbiAgcGVla0ludDI0IChsaXR0bGVFbmRpYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IGEgPSB0aGlzLl9idWZbdGhpcy5faGVhZF1cbiAgICBjb25zdCBiID0gdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAxXVxuICAgIGNvbnN0IGMgPSB0aGlzLl9idWZbdGhpcy5faGVhZCArIDJdXG4gICAgaWYgKCFsaXR0bGVFbmRpYW4pIHtcbiAgICAgIHJldHVybiAoYSA8PCAxNikgKyAoYiA8PCA4KSArIGNcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChjIDw8IDE2KSArIChiIDw8IDgpICsgYVxuICAgIH1cbiAgfVxuXG4gIHBlZWtJbnQzMiAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBhID0gdGhpcy5fYnVmW3RoaXMuX2hlYWRdXG4gICAgY29uc3QgYiA9IHRoaXMuX2J1Zlt0aGlzLl9oZWFkICsgMV1cbiAgICBjb25zdCBjID0gdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAyXVxuICAgIGNvbnN0IGQgPSB0aGlzLl9idWZbdGhpcy5faGVhZCArIDNdXG4gICAgaWYgKCFsaXR0bGVFbmRpYW4pIHtcbiAgICAgIHJldHVybiAoYSA8PCAzMikgKyAoYiA8PCAxNikgKyAoYyA8PCA4KSArIGRcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChkIDw8IDMyKSArIChjIDw8IDE2KSArIChiIDw8IDgpICsgYVxuICAgIH1cbiAgfVxuXG4gIHdyaXRlSW50MTYgKG51bSkge1xuICAgIHRoaXMuX2J1Zlt0aGlzLl9oZWFkXSA9IG51bSA+PiA4IC8vIHVwcGVyXG4gICAgdGhpcy5fYnVmW3RoaXMuX2hlYWQgKyAxXSA9IG51bSAmIDB4ZmYgLy8gbG93ZXJcbiAgfVxuXG4gIHJlYWRJbnQ4ICgpIHtcbiAgICBjb25zdCBudW0gPSB0aGlzLnBlZWtJbnQ4KClcbiAgICB0aGlzLl9oZWFkICs9IDFcbiAgICByZXR1cm4gbnVtXG4gIH1cblxuICByZWFkSW50MTYgKGxpdHRsZUVuZGlhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgbnVtID0gdGhpcy5wZWVrSW50MTYobGl0dGxlRW5kaWFuKVxuICAgIHRoaXMuX2hlYWQgKz0gMlxuICAgIHJldHVybiBudW1cbiAgfVxuXG4gIHJlYWRJbnQyNCAobGl0dGxlRW5kaWFuID0gZmFsc2UpIHtcbiAgICBjb25zdCBudW0gPSB0aGlzLnBlZWtJbnQyNChsaXR0bGVFbmRpYW4pXG4gICAgdGhpcy5faGVhZCArPSAzXG4gICAgcmV0dXJuIG51bVxuICB9XG5cbiAgcmVhZEludDMyIChsaXR0bGVFbmRpYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IG51bSA9IHRoaXMucGVla0ludDMyKGxpdHRsZUVuZGlhbilcbiAgICB0aGlzLl9oZWFkICs9IDRcbiAgICByZXR1cm4gbnVtXG4gIH1cblxuICByZWFkU3RyaW5nIChsZW5ndGgpIHtcbiAgICBsZXQgc3RyID0gJydcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyYWN0ZXIgPSB0aGlzLnJlYWRJbnQ4KClcbiAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJhY3RlcilcbiAgICB9XG4gICAgcmV0dXJuIHN0clxuICB9XG59XG4iXX0= |