From a29078b988bf6d955445f75eb0644f8cd559d969 Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Wed, 23 Aug 2023 07:35:03 -0700 Subject: [PATCH] Update popup.js --- popup.js | 96 ++++++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/popup.js b/popup.js index 37a841e..dee4f9e 100644 --- a/popup.js +++ b/popup.js @@ -1,88 +1,46 @@ -let audioContext = new (window.AudioContext || window.webkitAudioContext)(); -let oscillatorLeft, oscillatorRight, gainNode; -let isPlaying = false; - -function startBinauralBeats() { - oscillatorLeft = audioContext.createOscillator(); - oscillatorRight = audioContext.createOscillator(); - gainNode = audioContext.createGain(); - - oscillatorLeft.type = 'sine'; - oscillatorRight.type = 'sine'; - - updateFrequencies(); - updateVolume(); - - oscillatorLeft.connect(gainNode); - oscillatorRight.connect(gainNode); - gainNode.connect(audioContext.destination); - - oscillatorLeft.start(); - oscillatorRight.start(); - - isPlaying = true; -} - -function stopBinauralBeats() { - oscillatorLeft.stop(); - oscillatorRight.stop(); - isPlaying = false; -} - -function updateFrequencies() { - let frequency = parseFloat(document.getElementById('frequencySlider').value); - let delta = parseFloat(document.getElementById('deltaSlider').value); - oscillatorLeft.frequency.setValueAtTime(frequency, audioContext.currentTime); - oscillatorRight.frequency.setValueAtTime(frequency + delta, audioContext.currentTime); -} - -function updateVolume() { - let volume = parseFloat(document.getElementById('volumeSlider').value); - gainNode.gain.setValueAtTime(volume, audioContext.currentTime); +function sendMessage(action, data) { + chrome.runtime.sendMessage({ action, ...data }); } document.getElementById('togglePlayPause').addEventListener('click', function() { - if (isPlaying) { - stopBinauralBeats(); - this.textContent = 'Play'; - } else { - startBinauralBeats(); - this.textContent = 'Pause'; - } + if (this.textContent === 'Play') { + sendMessage('start'); + this.textContent = 'Pause'; + } else { + sendMessage('stop'); + this.textContent = 'Play'; + } }); document.getElementById('frequencySlider').addEventListener('input', function() { - document.getElementById('frequencyDisplay').textContent = `Frequency: ${this.value} Hz`; - if (isPlaying) { - updateFrequencies(); - } + let frequency = parseFloat(this.value); + let delta = parseFloat(document.getElementById('deltaSlider').value); + document.getElementById('frequencyDisplay').textContent = `Frequency: ${frequency} Hz`; + sendMessage('updateFrequencies', { frequency, delta }); }); document.getElementById('deltaSlider').addEventListener('input', function() { - document.getElementById('deltaDisplay').textContent = `Delta: ${this.value} Hz`; - if (isPlaying) { - updateFrequencies(); - } + let frequency = parseFloat(document.getElementById('frequencySlider').value); + let delta = parseFloat(this.value); + document.getElementById('deltaDisplay').textContent = `Delta: ${delta} Hz`; + sendMessage('updateFrequencies', { frequency, delta }); }); document.getElementById('volumeSlider').addEventListener('input', function() { - document.getElementById('volumeDisplay').textContent = `Volume: ${Math.round(this.value * 100)}%`; - if (isPlaying) { - updateVolume(); - } + let volume = parseFloat(this.value); + document.getElementById('volumeDisplay').textContent = `Volume: ${Math.round(volume * 100)}%`; + sendMessage('updateVolume', { volume }); }); document.getElementById('randomize').addEventListener('click', function() { - let randomFrequency = Math.floor(Math.random() * 100) + 1; - let randomDelta = Math.floor(Math.random() * 30) + 1; + let randomFrequency = Math.floor(Math.random() * 100) + 1; + let randomDelta = Math.floor(Math.random() * 30) + 1; - document.getElementById('frequencySlider').value = randomFrequency; - document.getElementById('deltaSlider').value = randomDelta; + document.getElementById('frequencySlider').value = randomFrequency; + document.getElementById('deltaSlider').value = randomDelta; - document.getElementById('frequencyDisplay').textContent = `Frequency: ${randomFrequency} Hz`; - document.getElementById('deltaDisplay').textContent = `Delta: ${randomDelta} Hz`; + document.getElementById('frequencyDisplay').textContent = `Frequency: ${randomFrequency} Hz`; + document.getElementById('deltaDisplay').textContent = `Delta: ${randomDelta} Hz`; - if (isPlaying) { - updateFrequencies(); - } + sendMessage('updateFrequencies', { frequency: randomFrequency, delta: randomDelta }); });