mirror of
https://github.com/elder-plinius/binaural-beats-generator.git
synced 2026-02-12 16:52:50 +00:00
Initial commit
This commit is contained in:
19
background.js
Normal file
19
background.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
chrome.runtime.onInstalled.addListener(() => {
|
||||||
|
chrome.storage.sync.set({frequency: '440'});
|
||||||
|
});
|
||||||
|
|
||||||
|
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
|
||||||
|
if (changeInfo.status === 'complete' && /^http/.test(tab.url)) {
|
||||||
|
chrome.scripting.executeScript({
|
||||||
|
target: {tabId: tabId},
|
||||||
|
files: ['binauralGenerator.js']
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
chrome.action.onClicked.addListener((tab) => {
|
||||||
|
chrome.scripting.executeScript({
|
||||||
|
target: {tabId: tab.id},
|
||||||
|
files: ['binauralGenerator.js']
|
||||||
|
});
|
||||||
|
});
|
||||||
18
binauralGenerator.js
Normal file
18
binauralGenerator.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
let context = new AudioContext();
|
||||||
|
let oscillator = context.createOscillator();
|
||||||
|
let gainNode = context.createGain();
|
||||||
|
|
||||||
|
oscillator.connect(gainNode);
|
||||||
|
gainNode.connect(context.destination);
|
||||||
|
|
||||||
|
chrome.storage.sync.get('frequency', (data) => {
|
||||||
|
oscillator.frequency.value = data.frequency;
|
||||||
|
});
|
||||||
|
|
||||||
|
oscillator.start();
|
||||||
|
|
||||||
|
chrome.storage.onChanged.addListener((changes, areaName) => {
|
||||||
|
if (areaName === 'sync' && changes.frequency) {
|
||||||
|
oscillator.frequency.value = changes.frequency.newValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
22
manifest.json
Normal file
22
manifest.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"manifest_version": 3,
|
||||||
|
"name": "Binaural Beats Generator",
|
||||||
|
"version": "1.0",
|
||||||
|
"permissions": ["storage", "tabs", "activeTab"],
|
||||||
|
"action": {
|
||||||
|
"default_popup": "popup.html",
|
||||||
|
"default_icon": {
|
||||||
|
"16": "images/icon16.png",
|
||||||
|
"48": "images/icon48.png",
|
||||||
|
"128": "images/icon128.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"background": {
|
||||||
|
"service_worker": "background.js"
|
||||||
|
},
|
||||||
|
"icons": {
|
||||||
|
"16": "images/icon16.png",
|
||||||
|
"48": "images/icon48.png",
|
||||||
|
"128": "images/icon128.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
13
popup.html
Normal file
13
popup.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Binaural Beats Generator</h1>
|
||||||
|
<p>Customize the frequency of the binaural beats:</p>
|
||||||
|
<input type="range" min="1" max="1000" value="440" class="slider" id="frequencySlider">
|
||||||
|
<p id="frequencyDisplay">Frequency: 440 Hz</p>
|
||||||
|
<script src="popup.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14
popup.js
Normal file
14
popup.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
let slider = document.getElementById('frequencySlider');
|
||||||
|
let display = document.getElementById('frequencyDisplay');
|
||||||
|
|
||||||
|
chrome.storage.sync.get('frequency', (data) => {
|
||||||
|
slider.value = data.frequency;
|
||||||
|
display.textContent = `Frequency: ${data.frequency} Hz`;
|
||||||
|
});
|
||||||
|
|
||||||
|
slider.oninput = () => {
|
||||||
|
display.textContent = `Frequency: ${slider.value} Hz`;
|
||||||
|
chrome.storage.sync.set({frequency: slider.value});
|
||||||
|
};
|
||||||
|
});
|
||||||
16
styles.css
Normal file
16
styles.css
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#frequencyDisplay {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user