mirror of
https://github.com/danbulant/node-x11
synced 2026-06-24 17:21:47 +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
|
|
@ -23,26 +23,30 @@ module.exports.addUnpack = function(Buffer)
|
||||||
var arg = format[current_arg];
|
var arg = format[current_arg];
|
||||||
switch (arg) {
|
switch (arg) {
|
||||||
case 'C':
|
case 'C':
|
||||||
data.push(this[offset++]);
|
data.push(this.readUInt8(offset++));
|
||||||
|
break;
|
||||||
|
case 'c':
|
||||||
|
data.push(this.readInt8(offset++));
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
case 's': //TODO: 16bit signed unpack
|
data.push(this.readUInt16LE(offset));
|
||||||
var b1 = this[offset++];
|
offset += 2;
|
||||||
var b2 = this[offset++];
|
break;
|
||||||
data.push(b2*256+b1);
|
case 's':
|
||||||
|
data.push(this.readInt16LE(offset));
|
||||||
|
offset += 2;
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
var b1 = this[offset++];
|
data.push(this.readUInt16BE(offset));
|
||||||
var b2 = this[offset++];
|
offset += 2;
|
||||||
data.push(b1*256+b2);
|
|
||||||
break;
|
break;
|
||||||
case 'L':
|
case 'L':
|
||||||
case 'l': //TODO: 32bit signed unpack
|
data.push(this.readUInt32LE(offset));
|
||||||
var b1 = this[offset++];
|
offset += 4;
|
||||||
var b2 = this[offset++];
|
break;
|
||||||
var b3 = this[offset++];
|
case 'l':
|
||||||
var b4 = this[offset++];
|
data.push(this.readInt32LE(offset));
|
||||||
data.push(((b4*256+b3)*256 + b2)*256 + b1);
|
offset += 4;
|
||||||
break;
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
offset++;
|
offset++;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue