revert visualizer throttling
This commit is contained in:
@@ -1,41 +0,0 @@
|
||||
/** bars signal writes are throttled to ~10fps; the render loop still runs 30fps. */
|
||||
import { test, expect } from "bun:test"
|
||||
import { join } from "path"
|
||||
import { tmpdir } from "os"
|
||||
|
||||
process.env.XDG_CONFIG_HOME = join(tmpdir(), `podtui-th-${process.pid}`)
|
||||
process.env.XDG_DATA_HOME = join(tmpdir(), `podtui-th-data-${process.pid}`)
|
||||
process.env.PODTUI_AUDIO_BACKEND = "none"
|
||||
|
||||
const { useVisualizer } = await import("../src/stores/visualizer")
|
||||
const { setCurrentEpisode, setIsPlaying, setPosition } = await import("../src/utils/audio-signals")
|
||||
import type { Episode } from "../src/types/episode"
|
||||
|
||||
const wavPath = "/tmp/podtui-pause-cycle.wav"
|
||||
const skip = !(Bun.which("ffmpeg") && Bun.file(wavPath).exists())
|
||||
|
||||
test.skipIf(skip)("barData updates at ~10fps while the loop runs at 30fps", async () => {
|
||||
const viz = useVisualizer()
|
||||
viz.setBarCount(64)
|
||||
viz.setFocused(true)
|
||||
setCurrentEpisode({ audioUrl: wavPath } as unknown as Episode)
|
||||
setIsPlaying(true)
|
||||
setPosition(5)
|
||||
for (let i = 0; i < 200 && !(viz.barData().length > 0); i++) await Bun.sleep(25)
|
||||
|
||||
let writes = 0
|
||||
let prev = viz.barData()
|
||||
// count distinct array references the signal produced over 1s
|
||||
const check = setInterval(() => {
|
||||
const cur = viz.barData()
|
||||
if (cur !== prev) {
|
||||
writes++
|
||||
prev = cur
|
||||
}
|
||||
}, 16)
|
||||
await Bun.sleep(1000)
|
||||
clearInterval(check)
|
||||
console.log(`barData writes in 1s: ${writes} (30fps loop would be ~15-20 distinct seen at 16ms sampling)`)
|
||||
expect(writes).toBeGreaterThan(3)
|
||||
expect(writes).toBeLessThanOrEqual(14)
|
||||
}, 30_000)
|
||||
Reference in New Issue
Block a user