'use client'; import * as React from 'react'; import { Circle, Headphones, Waveform, MoreHorizontal } from 'lucide-react'; import { CircularKnob } from '@/components/ui/CircularKnob'; import { TrackFader } from './TrackFader'; import { cn } from '@/lib/utils/cn'; export interface TrackControlsProps { volume: number; pan: number; peakLevel: number; rmsLevel: number; isMuted?: boolean; isSolo?: boolean; isRecordEnabled?: boolean; showAutomation?: boolean; isRecording?: boolean; onVolumeChange: (volume: number) => void; onPanChange: (pan: number) => void; onMuteToggle: () => void; onSoloToggle?: () => void; onRecordToggle?: () => void; onAutomationToggle?: () => void; onEffectsClick?: () => void; onVolumeTouchStart?: () => void; onVolumeTouchEnd?: () => void; onPanTouchStart?: () => void; onPanTouchEnd?: () => void; className?: string; } export function TrackControls({ volume, pan, peakLevel, rmsLevel, isMuted = false, isSolo = false, isRecordEnabled = false, showAutomation = false, isRecording = false, onVolumeChange, onPanChange, onMuteToggle, onSoloToggle, onRecordToggle, onAutomationToggle, onEffectsClick, onVolumeTouchStart, onVolumeTouchEnd, onPanTouchStart, onPanTouchEnd, className, }: TrackControlsProps) { return (
{/* Pan Control */} { if (Math.abs(value) < 0.01) return 'C'; if (value < 0) return `${Math.abs(value * 100).toFixed(0)}L`; return `${(value * 100).toFixed(0)}R`; }} /> {/* Track Fader with Integrated Meters */} {/* Control Buttons Row 1: R/S/M */}
{/* Record Arm */} {onRecordToggle && ( )} {/* Solo Button */} {onSoloToggle && ( )} {/* Mute Button */}
{/* Control Buttons Row 2: A/E */}
{/* Automation Toggle */} {onAutomationToggle && ( )} {/* Effects Button */} {onEffectsClick && ( )}
); }