'use client'; import * as React from 'react'; import { Play, Pause, Square, SkipBack, Circle, AlignVerticalJustifyStart, AlignVerticalJustifyEnd, Layers } from 'lucide-react'; import { Button } from '@/components/ui/Button'; import { MasterControls } from '@/components/controls/MasterControls'; import { cn } from '@/lib/utils/cn'; export interface PlaybackControlsProps { isPlaying: boolean; isPaused: boolean; currentTime: number; duration: number; volume: number; pan?: number; onPlay: () => void; onPause: () => void; onStop: () => void; onSeek: (time: number, autoPlay?: boolean) => void; onVolumeChange: (volume: number) => void; onPanChange?: (pan: number) => void; onMuteToggle?: () => void; disabled?: boolean; className?: string; currentTimeFormatted?: string; durationFormatted?: string; isRecording?: boolean; onStartRecording?: () => void; onStopRecording?: () => void; punchInEnabled?: boolean; punchInTime?: number; punchOutTime?: number; onPunchInEnabledChange?: (enabled: boolean) => void; onPunchInTimeChange?: (time: number) => void; onPunchOutTimeChange?: (time: number) => void; overdubEnabled?: boolean; onOverdubEnabledChange?: (enabled: boolean) => void; masterPeakLevel?: number; masterRmsLevel?: number; masterIsClipping?: boolean; onResetClip?: () => void; } export function PlaybackControls({ isPlaying, isPaused, currentTime, duration, volume, pan = 0, onPlay, onPause, onStop, onSeek, onVolumeChange, onPanChange, onMuteToggle, disabled = false, className, currentTimeFormatted, durationFormatted, isRecording = false, onStartRecording, onStopRecording, punchInEnabled = false, punchInTime = 0, punchOutTime = 0, onPunchInEnabledChange, onPunchInTimeChange, onPunchOutTimeChange, overdubEnabled = false, onOverdubEnabledChange, masterPeakLevel = 0, masterRmsLevel = 0, masterIsClipping = false, onResetClip, }: PlaybackControlsProps) { const handlePlayPause = () => { if (isPlaying) { onPause(); } else { onPlay(); } }; const progress = duration > 0 ? (currentTime / duration) * 100 : 0; return (