UNPKG

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
/** * 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;