diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 |
commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/speedometer/index.js | |
parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/speedometer/index.js')
-rw-r--r-- | node_modules/speedometer/index.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/speedometer/index.js b/node_modules/speedometer/index.js new file mode 100644 index 0000000..5570fe0 --- /dev/null +++ b/node_modules/speedometer/index.js @@ -0,0 +1,35 @@ +var tick = 1 +var maxTick = 65535 +var resolution = 4 +var inc = function() { + tick = (tick + 1) & maxTick +} + +var timer = setInterval(inc, (1000 / resolution) | 0) +if (timer.unref) timer.unref() + +module.exports = function(seconds) { + var size = resolution * (seconds || 5) + var buffer = [0] + var pointer = 1 + var last = (tick-1) & maxTick + + return function(delta) { + var dist = (tick - last) & maxTick + if (dist > size) dist = size + last = tick + + while (dist--) { + if (pointer === size) pointer = 0 + buffer[pointer] = buffer[pointer === 0 ? size-1 : pointer-1] + pointer++ + } + + if (delta) buffer[pointer-1] += delta + + var top = buffer[pointer-1] + var btm = buffer.length < size ? 0 : buffer[pointer === size ? 0 : pointer] + + return buffer.length < resolution ? top : (top - btm) * resolution / buffer.length + } +}
\ No newline at end of file |