/** * AudioSettingsPanel — v0.13.1 TASK-AUDIO-002 + TASK-AUDIO-003 * * Configurable crossfade (0-12s) and audio normalization toggle. * Appears in the expanded player and settings. */ import { usePlayerStore } from '../store/playerStore'; import { cn } from '@/lib/utils'; import { Slider } from '@/components/ui/slider'; import { Tooltip } from '@/components/ui/tooltip'; import { Volume2, AudioWaveform } from 'lucide-react'; interface AudioSettingsPanelProps { className?: string; compact?: boolean; } export function AudioSettingsPanel({ className, compact = false }: AudioSettingsPanelProps) { const crossfadeSeconds = usePlayerStore((s) => s.crossfadeSeconds); const setCrossfadeSeconds = usePlayerStore((s) => s.setCrossfadeSeconds); const normalizationEnabled = usePlayerStore((s) => s.normalizationEnabled); const setNormalizationEnabled = usePlayerStore((s) => s.setNormalizationEnabled); return (
{/* Crossfade control */}
{crossfadeSeconds === 0 ? 'Off' : `${crossfadeSeconds}s`}
setCrossfadeSeconds(val[0] ?? 0)} min={0} max={12} step={1} aria-label="Crossfade duration" className={compact ? 'w-32' : undefined} /> {!compact && (

Smooth transition between tracks. Set to 0 for gapless playback.

)}
{/* Normalization toggle */}
{!compact && (

Adjusts volume to consistent levels across all tracks (EBU R128).

)}
); }