mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-08-01 14:16:05 +08:00
2176b42bde6cd5c435aa1941efef42e8930900d0
Moves the audio-context/Pizzicato setup, TTS fetch+playback pipeline, controller/readback speech scheduling, and the radio-check handling (RADIO_CHECK_RE/SAY_AGAIN_RE/FAREWELL_RE, answerRadioCheck, performRadioCheck, readability quick-select) out of live-atc.vue. The interrupt primitives (stopCurrentSpeech/enqueueSpeech and the audio/abort bookkeeping they tear down) live in a separate useSpeechInterrupt because useFrequencyPresets needs stopCurrentSpeech while useRadioSpeech needs frequency state — one composable owning both would be circular. useSpeechInterrupt is constructed first and threaded into both. signalStrength/speechSpeed/radioCheckLoading/radioEffectsEnabled/ readbackEnabled stay page-level refs and are passed in, because useAtisPlayback already consumes signalStrength before useRadioSpeech can be constructed (it needs handlePilotTransmission). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Languages
TypeScript
67.3%
Vue
31.8%
CSS
0.6%
JavaScript
0.3%