plugin v1.0.1
This commit is contained in:
1 parent
bdfae5032b
commit
5a018c7335
2 files changed
+93
-82
No files matched your search
@@ -305,65 +305,10 @@ export async function parseMmpContent(xmlString) {
|
||||
appState.pattern.activeTrackId = appState.pattern.tracks[0]?.id || null;
|
||||
appState.pattern.activePatternIndex = 0;
|
||||
|
||||
// --- Restauração de Sessão (F5) ---
|
||||
try {
|
||||
const roomName = window.ROOM_NAME || "default_room";
|
||||
const tempStateJSON = sessionStorage.getItem(`temp_state_${roomName}`);
|
||||
|
||||
if (tempStateJSON) {
|
||||
console.log("Restaurando estado temporário da sessão...");
|
||||
const tempState = JSON.parse(tempStateJSON);
|
||||
|
||||
// 1. Restaura Pattern (mantido)
|
||||
appState.pattern.tracks.forEach((liveTrack) => {
|
||||
const savedTrack = tempState.pattern.tracks.find(
|
||||
(t) => t.id === liveTrack.id
|
||||
);
|
||||
if (savedTrack) {
|
||||
liveTrack.name = savedTrack.name;
|
||||
liveTrack.patterns = savedTrack.patterns;
|
||||
liveTrack.activePatternIndex = savedTrack.activePatternIndex;
|
||||
liveTrack.volume = savedTrack.volume;
|
||||
liveTrack.pan = savedTrack.pan;
|
||||
if (liveTrack.volumeNode) {
|
||||
liveTrack.volumeNode.volume.value = Tone.gainToDb(savedTrack.volume);
|
||||
}
|
||||
if (liveTrack.pannerNode) {
|
||||
liveTrack.pannerNode.pan.value = savedTrack.pan;
|
||||
}
|
||||
}
|
||||
});
|
||||
appState.pattern.tracks = appState.pattern.tracks.filter((liveTrack) =>
|
||||
tempState.pattern.tracks.some((t) => t.id === liveTrack.id)
|
||||
);
|
||||
|
||||
// 2. 🔥 NOVO: Restaura Áudio (Clips e Tracks) no F5
|
||||
if (tempState.audio) {
|
||||
console.log("Restaurando faixas de áudio e clips...");
|
||||
appState.audio.tracks = tempState.audio.tracks || [];
|
||||
appState.audio.clips = tempState.audio.clips || [];
|
||||
}
|
||||
|
||||
// 3. Restaura Global (mantido)
|
||||
document.getElementById("bpm-input").value = tempState.global.bpm;
|
||||
document.getElementById("compasso-a-input").value = tempState.global.compassoA;
|
||||
document.getElementById("compasso-b-input").value = tempState.global.compassoB;
|
||||
document.getElementById("bars-input").value = tempState.global.bars;
|
||||
|
||||
if (tempState.global.syncMode) {
|
||||
appState.global.syncMode = tempState.global.syncMode;
|
||||
const syncBtn = document.getElementById("sync-mode-btn");
|
||||
if (syncBtn) {
|
||||
syncBtn.classList.toggle("active", tempState.global.syncMode === "global");
|
||||
syncBtn.textContent = tempState.global.syncMode === "global" ? "Global" : "Local";
|
||||
}
|
||||
}
|
||||
|
||||
appState.pattern.activeTrackId = tempState.pattern.activeTrackId;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Erro ao restaurar sessão:", e);
|
||||
}
|
||||
// --- SUBSTUIÇÃO DO BLOCO DE RESTAURAÇÃO ---
|
||||
// Em vez daquele bloco try/catch gigante, apenas chamamos a função:
|
||||
loadStateFromSession();
|
||||
// ------------------------------------------
|
||||
|
||||
await Promise.resolve();
|
||||
renderAll();
|
||||
|
||||
Reference in new issue
Block a user