win-stream-audio
Version:
🎧 Stream Windows system audio to Android devices over WiFi with professional audio controls, EQ, pitch shifting, and effects
97 lines (78 loc) • 3.49 kB
JavaScript
/**
* AudioPilot - Main Application
* Initializes all modules and starts the system
*/
class AudioPilot {
constructor() {
this.logger = null;
this.audioProcessor = null;
this.visualizer = null;
this.connectionManager = null;
this.uiControls = null;
this.initialize();
}
initialize() {
console.log('🎧 AudioPilot - Initializing Mission Control Systems...');
// Wait for DOM to be ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => this.initializeModules());
} else {
this.initializeModules();
}
}
initializeModules() {
try {
// Initialize logger first
const debugOutput = document.getElementById('debugOutput');
this.logger = new Logger(debugOutput);
this.logger.log('🚀 AudioPilot Systems Initializing...');
// Initialize audio processor
this.audioProcessor = new AudioProcessor();
window.audioProcessorInstance = this.audioProcessor; // For visualizer access
this.logger.log('🔊 Audio Processing System Online');
// Initialize visualizer
const waveformCanvas = document.getElementById('waveformCanvas');
const leftMeter = document.getElementById('leftMeter');
const rightMeter = document.getElementById('rightMeter');
this.visualizer = new AudioVisualizer(waveformCanvas, leftMeter, rightMeter);
this.logger.log('📊 Audio Visualization System Online');
// Initialize connection manager
this.connectionManager = new ConnectionManager(this.audioProcessor, this.logger);
this.logger.log('🛰️ Connection Management System Online');
// Initialize UI controls
this.uiControls = new UIControls(this.audioProcessor, this.connectionManager, this.logger);
this.logger.log('🎛️ UI Control System Online');
// All systems ready
this.logger.log('✅ AudioPilot Ready for Mission');
this.logger.log('🎛️ EQ, Pitch & Effects Controls Online');
this.logger.log('📱 Screen Wake System Ready');
this.logger.log('🎯 Awaiting Mission Commands...');
} catch (error) {
console.error('❌ AudioPilot Initialization Failed:', error);
if (this.logger) {
this.logger.error('System Initialization Failed: ' + error.message);
}
}
}
// Cleanup method for when the page is unloaded
destroy() {
if (this.visualizer) {
this.visualizer.destroy();
}
if (this.connectionManager && this.connectionManager.isConnected()) {
this.connectionManager.disconnectFromMissionControl();
}
if (this.uiControls && this.uiControls.screenLockActive) {
this.uiControls.deactivateScreenLock();
}
console.log('🎧 AudioPilot Systems Shutdown Complete');
}
}
// Initialize AudioPilot when script loads
const audioPilot = new AudioPilot();
// Cleanup on page unload
window.addEventListener('beforeunload', () => {
audioPilot.destroy();
});
// Export for global access if needed
window.AudioPilot = audioPilot;