From f973319e3ee78fb423103687a2f6cfac191f67e8 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 15 Jun 2026 18:51:13 -0700 Subject: [PATCH] Remove serialized state infrastructure The serialized state feature (LOAD_SERIALIZED_STATE action, SerializedStateV1 types, getSerializedState/getSerlializedState functions) was unused external API surface. Removing it simplifies the codebase and eliminates the only caller of ensureWindowsAreOnScreen() without a parentDomNode argument. Co-Authored-By: Claude Opus 4.6 --- .../fixtures/serializedState/v1/balance.json | 124 ---------- .../serializedState/v1/double-mode.json | 124 ---------- .../serializedState/v1/equalizer-auto.json | 111 --------- .../serializedState/v1/equalizer-band.json | 124 ---------- .../serializedState/v1/equalizer-on.json | 124 ---------- .../serializedState/v1/equalizer-preamp.json | 124 ---------- .../serializedState/v1/focused-window.json | 124 ---------- .../serializedState/v1/llama-mode.json | 124 ---------- .../v1/main-window-position.json | 124 ---------- .../fixtures/serializedState/v1/repeat.json | 124 ---------- .../fixtures/serializedState/v1/shuffle.json | 124 ---------- .../fixtures/serializedState/v1/volume.json | 124 ---------- .../serializedState/v1/window-hidden.json | 111 --------- .../serializedState/v1/window-open.json | 124 ---------- .../v1/window-positions-are-relative.json | 124 ---------- .../serializedState/v1/window-shade.json | 124 ---------- .../serializedState/v1/window-size.json | 124 ---------- packages/webamp/js/actionCreators/index.ts | 13 +- packages/webamp/js/actionCreators/windows.ts | 6 +- packages/webamp/js/mediaMiddleware.ts | 21 -- packages/webamp/js/reducers/display.ts | 49 ---- packages/webamp/js/reducers/equalizer.ts | 9 - packages/webamp/js/reducers/media.ts | 8 - packages/webamp/js/reducers/windows.ts | 37 --- packages/webamp/js/selectors.ts | 14 -- packages/webamp/js/serialization.test.ts | 223 ------------------ .../webamp/js/serializedStates/v1Types.ts | 72 ------ packages/webamp/js/types.ts | 5 - packages/webamp/js/utils.ts | 7 - packages/webamp/js/webampLazy.tsx | 9 - 30 files changed, 4 insertions(+), 2551 deletions(-) delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/balance.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/double-mode.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-auto.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-band.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-on.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-preamp.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/focused-window.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/llama-mode.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/main-window-position.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/repeat.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/shuffle.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/volume.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/window-hidden.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/window-open.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/window-positions-are-relative.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/window-shade.json delete mode 100644 packages/webamp/js/__tests__/fixtures/serializedState/v1/window-size.json delete mode 100644 packages/webamp/js/serialization.test.ts delete mode 100644 packages/webamp/js/serializedStates/v1Types.ts diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/balance.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/balance.json deleted file mode 100644 index e5899448..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/balance.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 40, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/double-mode.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/double-mode.json deleted file mode 100644 index 7ea51e6c..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/double-mode.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": true, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-auto.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-auto.json deleted file mode 100644 index 09e579e9..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-auto.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": true, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-band.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-band.json deleted file mode 100644 index 93c193e5..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-band.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 100, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-on.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-on.json deleted file mode 100644 index 0f08be01..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-on.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": false, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-preamp.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-preamp.json deleted file mode 100644 index 06ffa258..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/equalizer-preamp.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 10 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/focused-window.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/focused-window.json deleted file mode 100644 index 9d115c5d..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/focused-window.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "equalizer" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/llama-mode.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/llama-mode.json deleted file mode 100644 index 30a756f9..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/llama-mode.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": true, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/main-window-position.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/main-window-position.json deleted file mode 100644 index e185eb3c..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/main-window-position.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 100, - "y": 100 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/repeat.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/repeat.json deleted file mode 100644 index 8c340769..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/repeat.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": true - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/shuffle.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/shuffle.json deleted file mode 100644 index 5e0085c1..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/shuffle.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": true, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/volume.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/volume.json deleted file mode 100644 index 6af870dc..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/volume.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 50, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-hidden.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-hidden.json deleted file mode 100644 index 87555494..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-hidden.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": true, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-open.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-open.json deleted file mode 100644 index 38ce0668..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-open.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-positions-are-relative.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-positions-are-relative.json deleted file mode 100644 index 748a428d..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-positions-are-relative.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": false, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 100, - "y": 100 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-shade.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-shade.json deleted file mode 100644 index d2375a0b..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-shade.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": true, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-size.json b/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-size.json deleted file mode 100644 index b1af9a1e..00000000 --- a/packages/webamp/js/__tests__/fixtures/serializedState/v1/window-size.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "version": 1, - "media": { - "volume": 78, - "balance": 0, - "shuffle": false, - "repeat": false - }, - "equalizer": { - "on": true, - "auto": false, - "sliders": { - "60": 50, - "170": 50, - "310": 50, - "600": 50, - "1000": 50, - "3000": 50, - "6000": 50, - "12000": 50, - "14000": 50, - "16000": 50, - "preamp": 50 - } - }, - "display": { - "visualizerStyle": 0, - "doubled": false, - "llama": false, - "marqueeStep": 0, - "skinImages": { - "EQ_PREAMP_LINE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAAABCAYAAADpXEERAAAAE0lEQVQoU2Pcdfruf4ZRMKRDAAD1lwNjTqcaUQAAAABJRU5ErkJggg==", - "EQ_GRAPH_LINE_COLORS": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAATCAYAAABRC2cZAAAAR0lEQVQYV2O4rCT9n+F9kOJ/hvfViv8ZHkzSQCE2afxneH/HEJm49Nr0PwOYWPLIAkp0PjL4z1B41uQ/Q9QGnf8MWrPEIAQANWYwvnlToNIAAAAASUVORK5CYII=" - }, - "skinCursors": null, - "skinRegion": {}, - "skinGenLetterWidths": null, - "skinColors": [ - "rgb(0,0,0)", - "rgb(24,33,41)", - "rgb(239,49,16)", - "rgb(206,41,16)", - "rgb(214,90,0)", - "rgb(214,102,0)", - "rgb(214,115,0)", - "rgb(198,123,8)", - "rgb(222,165,24)", - "rgb(214,181,33)", - "rgb(189,222,41)", - "rgb(148,222,33)", - "rgb(41,206,16)", - "rgb(50,190,16)", - "rgb(57,181,16)", - "rgb(49,156,8)", - "rgb(41,148,0)", - "rgb(24,132,8)", - "rgb(255,255,255)", - "rgb(214,214,222)", - "rgb(181,189,189)", - "rgb(160,170,175)", - "rgb(148,156,165)", - "rgb(150,150,150)" - ], - "skinPlaylistStyle": null - }, - "windows": { - "positionsAreRelative": true, - "genWindows": { - "main": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "equalizer": { - "size": [ - 0, - 0 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "playlist": { - "size": [ - 4, - 5 - ], - "open": true, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - }, - "milkdrop": { - "size": [ - 0, - 0 - ], - "open": false, - "hidden": false, - "shade": false, - "position": { - "x": 0, - "y": 0 - } - } - }, - "focused": "main" - } -} \ No newline at end of file diff --git a/packages/webamp/js/actionCreators/index.ts b/packages/webamp/js/actionCreators/index.ts index d904b930..d7002a81 100644 --- a/packages/webamp/js/actionCreators/index.ts +++ b/packages/webamp/js/actionCreators/index.ts @@ -1,8 +1,7 @@ import { WINDOWS } from "../constants"; import { Thunk, Action, Slider } from "../types"; -import { SerializedStateV1 } from "../serializedStates/v1Types"; import * as Selectors from "../selectors"; -import { ensureWindowsAreOnScreen, setFocusedWindow } from "./windows"; +import { setFocusedWindow } from "./windows"; export { toggleDoubleSizeMode, @@ -146,16 +145,6 @@ export function focusBand(band: Slider): Action { return { type: "SET_BAND_FOCUS", input: "eq", bandFocused: band }; } -export function loadSerializedState( - // In the future this type should be the union of all versioned types. - serializedState: SerializedStateV1 -): Thunk { - return (dispatch) => { - dispatch({ type: "LOAD_SERIALIZED_STATE", serializedState }); - dispatch(ensureWindowsAreOnScreen()); - }; -} - export function loadDefaultSkin(): Action { return { type: "LOAD_DEFAULT_SKIN" }; } diff --git a/packages/webamp/js/actionCreators/windows.ts b/packages/webamp/js/actionCreators/windows.ts index e0921082..12afc91f 100644 --- a/packages/webamp/js/actionCreators/windows.ts +++ b/packages/webamp/js/actionCreators/windows.ts @@ -141,9 +141,6 @@ export function centerWindows({ left, top, width, height }: Box): Thunk { const windowsInfo = Selectors.getWindowsInfo(state); const getOpen = Selectors.getWindowOpen(state); - const offsetLeft = left + window.scrollX; - const offsetTop = top + window.scrollY; - // A layout has been supplied. We will compute the bounding box and // center the given layout. const bounding = Utils.calculateBoundingBox( @@ -158,6 +155,9 @@ export function centerWindows({ left, top, width, height }: Box): Thunk { const boxHeight = bounding.bottom - bounding.top; const boxWidth = bounding.right - bounding.left; + const offsetLeft = left + window.scrollX; + const offsetTop = top + window.scrollY; + const move = { x: Math.ceil(offsetLeft - bounding.left + (width - boxWidth) / 2), y: Math.ceil(offsetTop - bounding.top + (height - boxHeight) / 2), diff --git a/packages/webamp/js/mediaMiddleware.ts b/packages/webamp/js/mediaMiddleware.ts index 83a9da7c..4716dfdb 100644 --- a/packages/webamp/js/mediaMiddleware.ts +++ b/packages/webamp/js/mediaMiddleware.ts @@ -2,7 +2,6 @@ import { IMedia } from "./media"; import { next as nextTrack } from "./actionCreators"; import * as Selectors from "./selectors"; import { MiddlewareStore, Action, Dispatch } from "./types"; -import { objectForEach } from "./utils"; export default (media: IMedia) => (store: MiddlewareStore) => { const { @@ -105,26 +104,6 @@ export default (media: IMedia) => (store: MiddlewareStore) => { case "SET_EQ_ON": media.enableEq(); break; - case "LOAD_SERIALIZED_STATE": { - // Set ALL THE THINGS! - if (Selectors.getEqualizerEnabled(state)) { - media.enableEq(); - } else { - media.disableEq(); - } - media.setVolume(Selectors.getVolume(state)); - media.setBalance(Selectors.getBalance(state)); - objectForEach(state.equalizer.sliders, (value, slider) => { - if (slider === "preamp") { - media.setPreamp(value); - } else { - // @ts-ignore I don't know how to teach TypeScript about objects - // that use Slider as keys - media.setEqBand(slider, value); - } - }); - break; - } } return returnValue; }; diff --git a/packages/webamp/js/reducers/display.ts b/packages/webamp/js/reducers/display.ts index e3871bc3..29ab95a3 100644 --- a/packages/webamp/js/reducers/display.ts +++ b/packages/webamp/js/reducers/display.ts @@ -11,7 +11,6 @@ import { import * as Utils from "../utils"; import { createSelector } from "reselect"; import { DEFAULT_SKIN, VISUALIZER_ORDER } from "../constants"; -import { DisplaySerializedStateV1 } from "../serializedStates/v1Types"; export interface DisplayState { visualizerStyle: number; @@ -153,60 +152,12 @@ const display = ( return { ...state, zIndex: (action as any).zIndex }; case "SET_DUMMY_VIZ_DATA": return { ...state, dummyVizData: (action as any).data }; - case "LOAD_SERIALIZED_STATE": { - const { skinCursors, ...rest } = (action as any).serializedState.display; - const upgrade = (url: string) => ({ type: "cur", url } as const); - const newSkinCursors = - skinCursors == null ? null : Utils.objectMap(skinCursors, upgrade); - return { ...state, skinCursors: newSkinCursors, ...rest }; - } default: return state; } }; export default display; -export const getSerializedState = ( - state: DisplayState -): DisplaySerializedStateV1 => { - // My kingdom for a type-safe `_.pick`. - const { - visualizerStyle, - doubled, - llama, - marqueeStep, - skinImages, - skinCursors, - skinRegion, - skinGenLetterWidths, - skinColors, - skinPlaylistStyle, - } = state; - - let newCursors: { [cursor: string]: string } | null = null; - if (skinCursors != null) { - // @ts-ignore Typescript does not like that we can have `undefined` as - // values here. Since this is going to get serialized to JSON (which will - // drop undefined) it's fine. - // This code is geting removed soon anyway. - newCursors = Utils.objectMap(skinCursors, (cursor) => { - return cursor.type === "cur" ? cursor.url : undefined; - }); - } - return { - visualizerStyle, - doubled, - llama, - marqueeStep, - skinImages, - skinCursors: newCursors, - skinRegion, - skinGenLetterWidths, - skinColors, - skinPlaylistStyle, - }; -}; - export const getVisualizerStyle = createSelector( (state: DisplayState) => state.visualizerStyle, (visualizationStyle): string => { diff --git a/packages/webamp/js/reducers/equalizer.ts b/packages/webamp/js/reducers/equalizer.ts index 028c7a04..b4d4d0ae 100644 --- a/packages/webamp/js/reducers/equalizer.ts +++ b/packages/webamp/js/reducers/equalizer.ts @@ -1,5 +1,4 @@ import { Slider, Action } from "./../types"; -import { EqualizerSerializedStateV1 } from "../serializedStates/v1Types"; export interface EqualizerState { on: boolean; @@ -42,17 +41,9 @@ const equalizer = ( return { ...state, on: false }; case "SET_EQ_AUTO": return { ...state, auto: (action as any).value }; - case "LOAD_SERIALIZED_STATE": - return (action as any).serializedState.equalizer || state; default: return state; } }; -export function getSerializedState( - state: EqualizerState -): EqualizerSerializedStateV1 { - return state; -} - export default equalizer; diff --git a/packages/webamp/js/reducers/media.ts b/packages/webamp/js/reducers/media.ts index bf41f929..e900fa7b 100644 --- a/packages/webamp/js/reducers/media.ts +++ b/packages/webamp/js/reducers/media.ts @@ -1,6 +1,5 @@ import { Action, PlayerMediaStatus, TimeMode } from "../types"; import { TIME_MODE, PLAYER_MEDIA_STATUS } from "../constants"; -import { MediaSerializedStateV1 } from "../serializedStates/v1Types"; export interface MediaState { timeMode: TimeMode; // TODO: Convert this to an enum @@ -66,16 +65,9 @@ const media = ( return { ...state, repeat: !state.repeat }; case "TOGGLE_SHUFFLE": return { ...state, shuffle: !state.shuffle }; - case "LOAD_SERIALIZED_STATE": - return { ...state, ...(action as any).serializedState.media }; default: return state; } }; -export function getSerializedState(state: MediaState): MediaSerializedStateV1 { - const { volume, balance, shuffle, repeat } = state; - return { volume, balance, shuffle, repeat }; -} - export default media; diff --git a/packages/webamp/js/reducers/windows.ts b/packages/webamp/js/reducers/windows.ts index e3fc203a..852e43e7 100644 --- a/packages/webamp/js/reducers/windows.ts +++ b/packages/webamp/js/reducers/windows.ts @@ -1,7 +1,6 @@ import { Action, WindowId, Box, Point } from "../types"; import { WINDOWS } from "../constants"; import * as Utils from "../utils"; -import { WindowsSerializedStateV1 } from "../serializedStates/v1Types"; export type WindowPositions = { [windowId: string]: Point; @@ -203,24 +202,6 @@ const windows = ( size: [0, 0] as [number, number], })), }; - case "LOAD_SERIALIZED_STATE": { - const { genWindows, focused, positionsAreRelative } = (action as any) - .serializedState.windows; - return { - ...state, - positionsAreRelative, - genWindows: Utils.objectMap(state.genWindows, (w, windowId) => { - const serializedW = genWindows[windowId]; - if (serializedW == null) { - return w; - } - // Pull out `hidden` since it's been removed from our state. - const { hidden: _hidden, ...rest } = serializedW; - return { ...w, ...rest }; - }), - focused, - }; - } case "BROWSER_WINDOW_SIZE_CHANGED": return { ...state, @@ -235,22 +216,4 @@ const windows = ( } }; -export function getSerializedState( - state: WindowsState -): WindowsSerializedStateV1 { - return { - positionsAreRelative: state.positionsAreRelative, - genWindows: Utils.objectMap(state.genWindows, (w) => { - return { - size: w.size, - open: w.open, - hidden: false, // Not used any more - shade: w.shade || false, - position: w.position, - }; - }), - focused: state.focused, - }; -} - export default windows; diff --git a/packages/webamp/js/selectors.ts b/packages/webamp/js/selectors.ts index 179bb626..9223b0b1 100644 --- a/packages/webamp/js/selectors.ts +++ b/packages/webamp/js/selectors.ts @@ -33,12 +33,8 @@ import { import { createPlaylistURL } from "./playlistHtml"; import * as fromTracks from "./reducers/tracks"; import * as fromDisplay from "./reducers/display"; -import * as fromEqualizer from "./reducers/equalizer"; -import * as fromMedia from "./reducers/media"; -import * as fromWindows from "./reducers/windows"; import * as MarqueeUtils from "./marqueeUtils"; import { generateGraph } from "./resizeUtils"; -import { SerializedStateV1 } from "./serializedStates/v1Types"; export const getSliders = (state: AppState) => state.equalizer.sliders; @@ -594,16 +590,6 @@ export const getTimeElapsed = (state: AppState): number => { return state.media.timeElapsed; }; -export function getSerlializedState(state: AppState): SerializedStateV1 { - return { - version: 1, - media: fromMedia.getSerializedState(state.media), - equalizer: fromEqualizer.getSerializedState(state.equalizer), - display: fromDisplay.getSerializedState(state.display), - windows: fromWindows.getSerializedState(state.windows), - }; -} - export function getEqualizerEnabled(state: AppState): boolean { return state.equalizer.on; } diff --git a/packages/webamp/js/serialization.test.ts b/packages/webamp/js/serialization.test.ts deleted file mode 100644 index f2a7fa01..00000000 --- a/packages/webamp/js/serialization.test.ts +++ /dev/null @@ -1,223 +0,0 @@ -import fs from "fs"; -import path from "path"; -import reducer from "./reducers"; -import * as Selectors from "./selectors"; -import * as Actions from "./actionCreators"; -import { kebabCase } from "lodash"; - -import { legacy_createStore as createStore, applyMiddleware } from "redux"; -import { withExtraArgument } from "redux-thunk"; -import { SerializedStateV1 } from "./serializedStates/v1Types"; -import { AppState, Action } from "./types"; - -function fixturePath(name: string) { - return path.join( - __dirname, - "__tests__/fixtures/serializedState/v1/", - `${kebabCase(name)}.json` - ); -} - -function writeFixture(name: string, state: SerializedStateV1) { - fs.writeFileSync(fixturePath(name), JSON.stringify(state, null, 4)); -} - -function readFixture(name: string): SerializedStateV1 { - return JSON.parse(fs.readFileSync(fixturePath(name), "utf8")); -} - -interface SerializationTestParams { - name: string; - action: Action; - selector(state: AppState): T; - expected: T; -} - -function testSerialization({ - name, - action, - selector, - expected, -}: SerializationTestParams) { - test(name, () => { - const firstStore = getStore(); - // Does not match the expected selection in the initial state - expect(selector(firstStore.getState())).not.toEqual(expected); - - firstStore.dispatch(action); - // Ensure we actually changed something - expect(firstStore.getState()).not.toEqual(getStore().getState()); - - // Ensure the expectation is true before we serialize - expect(selector(firstStore.getState())).toEqual(expected); - - const serializedState = Selectors.getSerlializedState( - firstStore.getState() - ); - - if (!fs.existsSync(fixturePath(name))) { - writeFixture(name, serializedState); - console.warn("Wrote new fixture: ", fixturePath(name)); - } - - const readSerializedState = readFixture(name); - - // Ensure our serialization strategy hasn't changed since we last serialized - expect(readSerializedState).toEqual(serializedState); - - // Try to apply this serialized state to the default state - const secondStore = getStore(); - secondStore.dispatch({ - type: "LOAD_SERIALIZED_STATE", - serializedState: readSerializedState, - }); - - // Ensure our restored state conforms to expectation - expect(selector(secondStore.getState())).toEqual(expected); - - // TODO: Try to apply the serialized state to a complex non-initial state - }); -} - -function getStore() { - const extras = {}; - const enhancer = applyMiddleware(withExtraArgument(extras)); - return createStore(reducer, undefined, enhancer); -} - -describe("can serialize", () => { - test("the initial state", () => { - const store = getStore(); - const serializedState = Selectors.getSerlializedState(store.getState()); - expect(serializedState).toMatchSnapshot(); - - const newStore = getStore(); - newStore.dispatch({ - type: "LOAD_SERIALIZED_STATE", - serializedState, - }); - expect(store.getState()).toEqual(newStore.getState()); - }); - - /* Media */ - testSerialization({ - name: "volume", - action: Actions.setVolume(50), - selector: Selectors.getVolume, - expected: 50, - }); - - testSerialization({ - name: "balance", - action: Actions.setBalance(40), - selector: Selectors.getBalance, - expected: 40, - }); - - testSerialization({ - name: "shuffle", - action: Actions.toggleShuffle(), - selector: Selectors.getShuffle, - expected: true, - }); - - testSerialization({ - name: "repeat", - action: Actions.toggleRepeat(), - selector: Selectors.getRepeat, - expected: true, - }); - - /* Equalizer */ - testSerialization({ - name: "equalizer on", - // @ts-ignore - action: Actions.toggleEq(), - selector: Selectors.getEqualizerEnabled, - expected: false, - }); - - testSerialization({ - name: "equalizer band", - action: Actions.setEqBand(60, 100), - selector: (state) => Selectors.getSliders(state)[60], - expected: 100, - }); - - testSerialization({ - name: "equalizer preamp", - action: Actions.setPreamp(10), - selector: (state) => Selectors.getSliders(state).preamp, - expected: 10, - }); - - /* Display */ - testSerialization({ - name: "double mode", - // @ts-ignore - action: Actions.toggleDoubleSizeMode(), - selector: Selectors.getDoubled, - expected: true, - }); - - testSerialization({ - name: "llama mode", - action: Actions.toggleLlamaMode(), - selector: Selectors.getLlamaMode, - expected: true, - }); - - // TODO - // * marqueeStep - // * skinImages - // * skinCursors - // * skinRegion - // * skinGenLetterWidths - // * skinColors - // * skinPlaylistStyle - // * focused - - /* Gen Windows */ - testSerialization({ - name: "window size", - action: Actions.setWindowSize("playlist", [4, 5]), - selector: (state) => Selectors.getWindowSize(state)("playlist"), - expected: [4, 5], - }); - - testSerialization({ - name: "window open", - action: Actions.closeWindow("playlist"), - selector: (state) => Selectors.getWindowOpen(state)("playlist"), - expected: false, - }); - - testSerialization({ - name: "window shade", - // @ts-ignore - action: Actions.toggleEqualizerShadeMode(), - selector: (state) => Boolean(Selectors.getWindowShade(state)("equalizer")), - expected: true, - }); - - testSerialization({ - name: "main window position", - action: Actions.updateWindowPositions({ main: { x: 100, y: 100 } }), - selector: (state) => Selectors.getWindowPosition(state)("main"), - expected: { x: 100, y: 100 }, - }); - - testSerialization({ - name: "window positions are relative", - action: Actions.updateWindowPositions({ main: { x: 100, y: 100 } }, true), - selector: Selectors.getPositionsAreRelative, - expected: false, - }); - - testSerialization({ - name: "focused window", - action: Actions.setFocusedWindow("equalizer"), - selector: (state) => Selectors.getFocusedWindow(state), - expected: "equalizer", - }); -}); diff --git a/packages/webamp/js/serializedStates/v1Types.ts b/packages/webamp/js/serializedStates/v1Types.ts deleted file mode 100644 index 60d301eb..00000000 --- a/packages/webamp/js/serializedStates/v1Types.ts +++ /dev/null @@ -1,72 +0,0 @@ -/** - * NOTE: This file must not import any other types - */ - -import { WindowId } from "../types"; - -export interface WindowsSerializedStateV1 { - positionsAreRelative: boolean; - genWindows: { - [windowId: string]: { - size: [number, number]; - open: boolean; - hidden: boolean; - shade: boolean; - position: { x: number; y: number }; - }; - }; - focused: WindowId | null; -} - -export interface DisplaySerializedStateV1 { - visualizerStyle: number; - doubled: boolean; - llama: boolean; - marqueeStep: number; - skinImages: { [sprite: string]: string }; - skinCursors: { [cursor: string]: string } | null; - skinRegion: { [windowName: string]: string[] }; - skinGenLetterWidths: { [letter: string]: number } | null; - skinColors: string[]; // Theoretically this could be a tuple of a specific length - skinPlaylistStyle: { - normal: string; - current: string; - normalbg: string; - selectedbg: string; - font: string; - } | null; -} - -export interface EqualizerSerializedStateV1 { - on: boolean; - auto: boolean; - sliders: Record< - | 60 - | 170 - | 310 - | 600 - | 1000 - | 3000 - | 6000 - | 12000 - | 14000 - | 16000 - | "preamp", - number - >; -} - -export interface MediaSerializedStateV1 { - volume: number; - balance: number; - shuffle: boolean; - repeat: boolean; -} - -export interface SerializedStateV1 { - version: 1; - windows: WindowsSerializedStateV1; - media: MediaSerializedStateV1; - display: DisplaySerializedStateV1; - equalizer: EqualizerSerializedStateV1; -} diff --git a/packages/webamp/js/types.ts b/packages/webamp/js/types.ts index 03f77d15..8be948ab 100644 --- a/packages/webamp/js/types.ts +++ b/packages/webamp/js/types.ts @@ -14,7 +14,6 @@ import { import { EqualizerState } from "./reducers/equalizer"; import { NetworkState } from "./reducers/network"; import { MilkdropState } from "./reducers/milkdrop"; -import { SerializedStateV1 } from "./serializedStates/v1Types"; import { TracksState } from "./reducers/tracks"; import { IAudioMetadata, IOptions } from "music-metadata-browser"; import { Store as ReduxStore } from "redux"; @@ -504,10 +503,6 @@ export type Action = type: "CLOSE_REQUESTED"; cancel: () => void; } - | { - type: "LOAD_SERIALIZED_STATE"; - serializedState: SerializedStateV1; - } | { type: "RESET_WINDOW_SIZES" } | { type: "BROWSER_WINDOW_SIZE_CHANGED"; height: number; width: number } | { type: "LOAD_DEFAULT_SKIN" } diff --git a/packages/webamp/js/utils.ts b/packages/webamp/js/utils.ts index 22ef4dd2..46719b17 100644 --- a/packages/webamp/js/utils.ts +++ b/packages/webamp/js/utils.ts @@ -314,13 +314,6 @@ export function uniqueId() { return counter++; } -export function objectForEach( - obj: { [key: string]: V }, - cb: (value: V, key: string) => void -): void { - Object.keys(obj).forEach((key) => cb(obj[key], key)); -} - export function objectMap( obj: { [key: string]: V }, cb: (value: V, key: string) => N diff --git a/packages/webamp/js/webampLazy.tsx b/packages/webamp/js/webampLazy.tsx index 2d6acc79..66ec134f 100644 --- a/packages/webamp/js/webampLazy.tsx +++ b/packages/webamp/js/webampLazy.tsx @@ -30,7 +30,6 @@ import * as FileUtils from "./fileUtils"; import Emitter from "./emitter"; -import { SerializedStateV1 } from "./serializedStates/v1Types"; import Disposable from "./Disposable"; import enableMediaSession from "./mediaSession.js"; @@ -554,14 +553,6 @@ class Webamp { this._disposable.dispose(); } - __loadSerializedState(serializedState: SerializedStateV1): void { - this.store.dispatch(Actions.loadSerializedState(serializedState)); - } - - __getSerializedState() { - return Selectors.getSerlializedState(this.store.getState()); - } - __onStateChange(cb: () => void): () => void { const unsubscribe = this.store.subscribe(cb);