mirror of
https://github.com/danbulant/node-x11
synced 2026-05-19 04:18:35 +00:00
Add support for signed data
- Use Buffer write functions
This commit is contained in:
parent
97eade2c49
commit
e69f1b7475
1 changed files with 19 additions and 15 deletions
|
|
@ -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++;
|
||||
|
|
|
|||
Loading…
Reference in a new issue