Add support for signed data

- Use Buffer write functions
This commit is contained in:
Santiago Gimeno 2013-05-21 14:11:40 +02:00
parent 97eade2c49
commit e69f1b7475

View file

@ -22,27 +22,31 @@ module.exports.addUnpack = function(Buffer)
{
var arg = format[current_arg];
switch (arg) {
case 'C':
data.push(this[offset++]);
case 'C':
data.push(this.readUInt8(offset++));
break;
case 'c':
data.push(this.readInt8(offset++));
break;
case 'S':
case 's': //TODO: 16bit signed unpack
var b1 = this[offset++];
var b2 = this[offset++];
data.push(b2*256+b1);
data.push(this.readUInt16LE(offset));
offset += 2;
break;
case 's':
data.push(this.readInt16LE(offset));
offset += 2;
break;
case 'n':
var b1 = this[offset++];
var b2 = this[offset++];
data.push(b1*256+b2);
data.push(this.readUInt16BE(offset));
offset += 2;
break;
case 'L':
case 'l': //TODO: 32bit signed unpack
var b1 = this[offset++];
var b2 = this[offset++];
var b3 = this[offset++];
var b4 = this[offset++];
data.push(((b4*256+b3)*256 + b2)*256 + b1);
data.push(this.readUInt32LE(offset));
offset += 4;
break;
case 'l':
data.push(this.readInt32LE(offset));
offset += 4;
break;
case 'x':
offset++;