Files

50 lines
2.0 KiB
TypeScript

import fs from 'fs';
const roomPath = 'C:/X/workspace/jumpa.id/vc/components/xcuRoom.tsx';
let roomContent = fs.readFileSync(roomPath, 'utf-8');
// 1. Fix the TypeError (Crash)
roomContent = roomContent.replace(
/\$\{autoPilotMetrics\.bw\.toFixed\(1\)\}/g,
`\${Number(autoPilotMetrics.bw || 0).toFixed(1)}`
);
// 2. Fix the Handlers to support cycling to 'auto'
const oldHandlers = ` const handleToggleAudioEngine = () => {
const newMode = audioEngineMode === 'xcu-neural' ? 'pcm' : 'xcu-neural';
setAudioEngineMode(newMode);
if (matrixRef.current) {
matrixRef.current.hotSwapAudioEngine(newMode);
alert(newMode === 'xcu-neural' ? '🔊 XCU Neural Audio AKTIF! (VAD & Zero Bandwidth).' : '⚠️ Raw PCM Audio Aktif. Peringatan: Konsumsi Bandwidth Tinggi.');
}
};
const handleToggleEngine = () => {
const newMode = videoEngineMode === 'webcodecs' ? 'canvas' : 'webcodecs';
setVideoEngineMode(newMode);
if (matrixRef.current) {
matrixRef.current.hotSwapVideoEngine(newMode);
alert(newMode === 'webcodecs' ? '🚀 XCU Quantum WebCodecs (Hardware GPU Acceleration) AKTIF! Latensi dinolkan.' : '⚠️ Mode Kompatibilitas Canvas Aktif. Peringatan: Latensi 1-2 detik.');
}
};`;
const newHandlers = ` const handleToggleAudioEngine = () => {
const newMode = audioEngineMode === 'auto' ? 'xcu-neural' : (audioEngineMode === 'xcu-neural' ? 'pcm' : 'auto');
setAudioEngineMode(newMode);
if (matrixRef.current) {
matrixRef.current.hotSwapAudioEngine(newMode);
}
};
const handleToggleEngine = () => {
const newMode = videoEngineMode === 'auto' ? 'webcodecs' : (videoEngineMode === 'webcodecs' ? 'canvas' : 'auto');
setVideoEngineMode(newMode);
if (matrixRef.current) {
matrixRef.current.hotSwapVideoEngine(newMode);
}
};`;
// Safe replace
roomContent = roomContent.replace(oldHandlers, newHandlers);
fs.writeFileSync(roomPath, roomContent, 'utf-8');
console.log("Crash resolved and handlers fixed.");