diff options
Diffstat (limited to 'app/index.php')
-rw-r--r-- | app/index.php | 68 |
1 files changed, 58 insertions, 10 deletions
diff --git a/app/index.php b/app/index.php index 31ca9aa..82b4791 100644 --- a/app/index.php +++ b/app/index.php @@ -553,7 +553,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI } } - function updateDisplay(initial) { + window.updateDisplay = (initial) => { if (initial) { if (playerDocument.getElementById("player-audio").paused) { document.title = "Mist"; @@ -740,6 +740,14 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI window.library = await (await fetch("/api/getLibrary.php?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json(); } + window.redownloadMedia = async () => { + document.getElementById("loading-text").innerText = "Downloading list of songs..."; + window.songs = await (await fetch("/assets/content/songs.json?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json(); + + document.getElementById("loading-text").innerText = "Downloading list of albums..."; + window.albums = await (await fetch("/assets/content/albums.json?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json(); + } + (async () => { document.getElementById("loading-text").innerText = "Downloading list of songs..."; window.songs = await (await fetch("/assets/content/songs.json?_=" + [...crypto.getRandomValues(new Uint8Array(40))].map(m=>('0'+m.toString(16)).slice(-2)).join(''))).json(); @@ -943,10 +951,12 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI } if (stellaCompatible) { - window.preloaded[id] = await Stella.build("/assets/content/" + id + ".stella"); - window.preloadedGains[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, 0, true); - window.preloadedGainsBoosted1[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, .05, true); - window.preloadedGainsBoosted2[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, .1, true); + if (!window.preloaded[id]) { + window.preloaded[id] = await Stella.build("/assets/content/" + id + ".stella"); + window.preloadedGains[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, 0, true); + window.preloadedGainsBoosted1[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, .05, true); + window.preloadedGainsBoosted2[id] = await normalizeAudio(window.preloaded[id].stems.vocals.buffer, .1, true); + } } else { if (!window.preloaded[id]) { window.buffering = true; @@ -971,9 +981,45 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI if (window.currentSongID !== id) return; + try { + window.currentNormalizationSource.disconnect(); + + if (playingStella) { + window.currentNormalizationSource2.disconnect(); + window.currentNormalizationSource3.disconnect(); + } + + window.preloadedGains[window.currentSongID].disconnect(); + } catch (e) { + console.error(e); + } + + if (playingStella) { + for (let player of [ + window.currentNormalizationSource2, + window.currentNormalizationSource3, + window.currentNormalizationSource4, + window.currentNormalizationSource5 + ]) { + try { + player.disconnect(); + window.preloadedGainsBoosted1[window.currentSongID].disconnect(); + } catch (e) { + console.error(e); + } + } + + try { + window.currentNormalizationSource1.disconnect(); + window.preloadedGainsBoosted2[window.currentSongID].disconnect(); + } catch (e) { + console.error(e); + } + } + if (!stellaCompatible) { if (!window.preloadedURLs[id]) { - window.preloadedURLs[id] = localStorage.getItem("data-saving") ? URL.createObjectURL(window.preloadedBlobs[id]) : URL.createObjectURL(window.preloadedBlobs[id]); + window.preloadedURLs[id] = URL.createObjectURL(window.preloadedBlobs[id]); } } else { window.playingStella = true; @@ -1079,10 +1125,12 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI } if (stellaCompatible) { - window.preloaded[id] = await Stella.build("/assets/content/" + id + ".stella"); - window.preloadedGains[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, 0, true); - window.preloadedGainsBoosted1[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, .05, true); - window.preloadedGainsBoosted2[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, .1, true); + if (!window.preloaded[id]) { + window.preloaded[id] = await Stella.build("/assets/content/" + id + ".stella"); + window.preloadedGains[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, 0, true); + window.preloadedGainsBoosted1[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, .05, true); + window.preloadedGainsBoosted2[id] = await normalizeAudio(window.preloaded[id].stems.other.buffer, .1, true); + } } else { if (!window.preloaded[id]) { if (localStorage.getItem("data-saving") === "true") { |