From 8aeaef972467c1a06f795ecc9e0c9b129ab4fad0 Mon Sep 17 00:00:00 2001 From: Anirudh Sevugan Date: Tue, 3 Jun 2025 19:17:48 -0500 Subject: [PATCH] Update renderer.js --- simpliplay/renderer.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/simpliplay/renderer.js b/simpliplay/renderer.js index d9a087f..e214034 100644 --- a/simpliplay/renderer.js +++ b/simpliplay/renderer.js @@ -1,4 +1,8 @@ let mediaElement = document.getElementById("mediaPlayer"); +let midiPlayerElement = document.getElementById("midiPlayer"); +let midiVisualizerElement = document.getElementById("myVisualizer"); + + mediaElement.style.display = 'flex'; function loadMedia(fileURL) { @@ -34,6 +38,14 @@ function isSafeURL(fileURL) { } } +function isMidi(fileURL) { + try { + const url = new URL(fileURL); + return (url.toLowerCase().endsWith('.mid') || url.toLowerCase().endsWith('.midi')) + } catch (error) { + return false; + } +} // ✅ Listen for "play-media" event from main process securely window.electron.receive("play-media", (fileURL) => { @@ -43,4 +55,19 @@ window.electron.receive("play-media", (fileURL) => { } else { console.warn("Blocked unsafe media URL:", fileURL); } + + if (isMidi(fileURL)) { + midiPlayerElement.src = fileURL; + midiPlayerElement.style.display = 'flex'; + midiPlayerVisualizer.style.display = 'flex'; + mediaElement.style.display = 'none'; + mediaElement.pause(); + if (autoplayCheckbox && autoplayCheckbox.checked) { + midiPlayerElement.play().catch(error => console.warn("Playback issue:", error)); + } + } else { + midiPlayerElement.style.display = 'none'; + midiPlayerVisualizer.style.display = 'none'; + mediaElement.style.display = 'flex'; + } });