You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
425 B
JavaScript

module.exports = decoder
var MSB = 0x80
, REST = 0x7F
function decoder(emit) {
var accum = []
return function (byte) {
var msb = byte & MSB
, len
, out
accum[accum.length] = byte & REST
if(msb) {
return
}
len = accum.length
out = 0
for(var i = 0; i < len; ++i) {
out |= accum[i] << (7 * i)
}
accum.length = 0
emit(out)
return
}
}