slim2Diretta v1.4.6 — DoP: pause/resume no longer cracks
Fixed
DoP: extend the no-interruption fix to pause/resume. v1.4.5 fixed the crackle on manual seek / fast-forward / stop (confirmed by daniellyk8 — Roon fast-forward cracking gone, LMS clean), but pause then play still cracked. Same root cause, different code path: pausePlayback() called the SDK stop() and resumePlayback() called play(), so a pause broke the continuous DoP marker stream exactly like the seek used to → the DAC dropped DoP lock → crack on resume.
Now both are DoP-aware (gated behind isDoP, like stopPlayback() in v1.4.5):
pausePlayback()no longer stops the SDK for DoP — it just flags paused and keeps the SDK running.getNewStream()emits continuous DoP silence (no ring pop) for the whole pause, so the DAC holds DoP lock.resumePlayback()no longer callsplay()for DoP — the SDK was never stopped. It discards the stale paused buffer under the reconfigure barrier and lets it re-prefill; the marker stream stays continuous through the gap, so there is no crack.
PCM / native DSD keep the existing stop()/play() pause-resume path. With v1.4.5 + v1.4.6, all manual transport actions under Roon (seek, FF, stop, pause) preserve DoP lock; LMS remains clean.
Verified by reasoning, not on real DoP hardware. Feedback welcome.
See CHANGELOG.md for full details.