music box fixes

This commit is contained in:
Jakub Zych
2026-04-29 22:57:12 +02:00
parent a200fb8548
commit 579e4984c2
7 changed files with 36 additions and 25 deletions

View File

@@ -465,12 +465,17 @@ body {
}
// ── State application ──
let lastTrackIndex = null;
// Dedupe by file URI, not s.index. MPD's status.song (s.index) is the
// queue position and shifts mid-playback when the queue is reordered
// (consume mode removes the prior track → later indices shift down,
// mpc shuffle reshuffles, etc.) — using it caused duplicate "now: …"
// lines for a single playthrough.
let lastTrackFile = null;
function applyState(s) {
if (lastTrackIndex !== null && s.index !== lastTrackIndex && s.title) {
if (lastTrackFile !== null && s.file && s.file !== lastTrackFile && s.title) {
logBeforePins(`[audio] now: ${s.title}`);
}
lastTrackIndex = s.index;
if (s.file) lastTrackFile = s.file;
npTitle.textContent = s.title || '—';
npTime.textContent = `[${fmtClock(s.currentTime)} / ${fmtClock(s.duration)}]`;