js-binary
js-binary copied to clipboard
Pack Booleans
With this type, it packs the buttons compound type into 10 bytes instead of the preferable 2 bytes, or even 1.25 (though this would probably be much slower). Could you change this? I didn't see any plans for backwards-compatibility in the spec.
const Format = new Type({
version: 'uint',
frames: [{
buttons: {
A: 'boolean',
B: 'boolean',
X: 'boolean',
Y: 'boolean',
L: 'boolean',
R: 'boolean',
ZL: 'boolean',
ZR: 'boolean',
plus: 'boolean',
minus: 'boolean',
},
sticks: {
L: {
x: 'uint',
y: 'uint'
},
R: {
x: 'uint',
y: 'uint'
}
}
}]
});
Hello @leo60228 ,
Currently you can implement this yourself on top of this lib, using a Buffer and them extracting the bits:
function getBit(buffer, n) {
return buffer[n>>3] >> (n & 0x7) & 1
}
We could implement a 'bit' type in the future that could group multiple fields into a single byte, but this isn't straight forward as it seems at first.