QueryExtension request

This commit is contained in:
sidorares 2011-07-19 17:00:59 +10:00
parent a911771bfc
commit 0ca8b090be
2 changed files with 41 additions and 2 deletions

View file

@ -229,7 +229,6 @@ module.exports = {
format += 'S';
args.push(points[i]);
}
console.error([format, args]);
return [format, args];
}
],
@ -245,7 +244,6 @@ module.exports = {
format += 'S';
args.push(points[i]);
}
console.error([format, args]);
return [format, args];
}
@ -285,6 +283,24 @@ module.exports = {
}
],
QueryExtension: [
function(name) {
var padded = xutil.padded_string(name);
return ['CxSSxxa', [98, 2+padded.length/4, name.length, padded] ];
},
function(buf) {
var res = buf.unpack('CCCC');
var ext = {};
ext.present = res[0];
ext.majorOpcode = res[1];
ext.firstEvent = res[2];
ext.firstError = res[3];
return ext;
}
],
ListExtensions: [
[ 'CxS', [99, 1] ],
@ -297,6 +313,12 @@ module.exports = {
var len = buf[off++];
if (len == 0)
break;
if (off + len > buf.length)
{
len = buf.length - off;
if (len <= 0)
break;
}
res.push(buf.unpackString(len, off));
off += len;
}

17
test/query_ext.js Normal file
View file

@ -0,0 +1,17 @@
var x11 = require('../lib/x11');
var X = x11.createClient();
var numExt = 0;
X.on('connect', function(display) {
X.ListExtensions(function(list) {
console.log(list);
list.forEach(function(ext) {
numExt++;
X.QueryExtension(ext, function(e) {
e.name = ext;
console.log(e);
if (--numExt == 0)
X.terminate();
});
});
});
});