import { Mic, Square, X, Radio } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils'; export type DVKMsg = { slot: number; label: string; has_audio: boolean; duration_sec: number }; export type DVKStat = { recording: boolean; playing: boolean; rec_slot: number }; type Props = { messages: DVKMsg[]; status: DVKStat; onPlay: (slot: number) => void; onStop: () => void; onClose: () => void; }; // Operating panel for the Digital Voice Keyer — transmits the recorded F1–F6 // voice messages to the rig ("To Radio"). Mirrors the WinKeyer panel's slot in // the reserved area. Recording/labeling lives in Settings → Audio. export function DvkPanel({ messages, status, onPlay, onStop, onClose }: Props) { const anyAudio = messages.some((m) => m.has_audio); return (
Voice keyer {status.playing && transmitting…}
{!anyAudio ? (
No messages recorded yet. Open Settings → Audio devices & voice keyer to record F1–F6.
) : (
{messages.map((m) => ( ))}
)}
); }