summaryrefslogtreecommitdiff
path: root/node_modules/speedometer/index.js
diff options
context:
space:
mode:
authorLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
committerLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
commit703e03aba33f234712206769f57717ba7d92d23d (patch)
tree0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/speedometer/index.js
parentab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff)
downloadFlashRunner-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.js35
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