fix: previews follow the app volume; volume bar fill always accent
The preview backend never received a volume — clips played at the crate default (0.7) regardless of the slider, even muted. The session now sets the preview volume from the app store (mute → 0) before the first load and mirrors it live while the modal is open; the debug overlay's PREVIEW row exposes the backend's resting volume as proof. The player-bar volume (and fallback seek) fill is now always the accent color — matching the waveform scrubber's played region — stepping up to the hover shade on hover instead of white-until-hover. Also syncs package-lock to the soulstream name + alpha version.
This commit is contained in:
1 parent
793f78370e
commit
691fdcdc9a
10 files changed
+63
-10
No files matched your search
@@ -72,6 +72,9 @@ function makeTransport() {
|
||||
async seek(ms) {
|
||||
log.push(["seek", ms]);
|
||||
},
|
||||
async setVolume(v) {
|
||||
log.push(["setVolume", v]);
|
||||
},
|
||||
async stop() {
|
||||
ctx = null;
|
||||
log.push(["stop"]);
|
||||
@@ -259,6 +262,17 @@ test("auto-play: the LAST playable track never advances early", async () => {
|
||||
assert.equal(service.getState().phase, PHASE.ENDED);
|
||||
});
|
||||
|
||||
test("setVolume forwards the app volume to the transport", async () => {
|
||||
const { service, transport, manifest } = makeService();
|
||||
await service.open({ sessionId: SID, manifest });
|
||||
service.setVolume(0.35);
|
||||
service.setVolume(0); // app mute → silent previews
|
||||
assert.deepEqual(
|
||||
transport.log.filter((e) => e[0] === "setVolume"),
|
||||
[["setVolume", 0.35], ["setVolume", 0]]
|
||||
);
|
||||
});
|
||||
|
||||
// ------------------------------------------------------- resume memory ----
|
||||
|
||||
test("resume: stepping back to a track picks up where it left off", async () => {
|
||||
|
||||
Reference in new issue
Block a user