File size: 2,480 Bytes
7312c42 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import type { MultiTrackType } from '@/types/multitrack'
export interface SegmentTrackPresentation {
backgroundColor: string
backgroundColorStrong: string
borderColor: string
textColor: string
textClassName: string
titleBackgroundColor: string | null
waveformColor: string | null
showThumbnail: boolean
showWaveform: boolean
waveformSource: 'decoded-media' | null
}
const VIDEO_PRESENTATION: SegmentTrackPresentation = {
backgroundColor: 'var(--multitrack-video-bg)',
backgroundColorStrong: 'var(--multitrack-video-bg-strong)',
borderColor: 'var(--multitrack-video-border)',
textColor: 'var(--multitrack-video-text)',
textClassName: 'text-[10px]',
titleBackgroundColor: null,
waveformColor: 'var(--multitrack-video-waveform)',
showThumbnail: true,
showWaveform: true,
waveformSource: 'decoded-media',
}
const AUDIO_PRESENTATION: SegmentTrackPresentation = {
backgroundColor: 'var(--multitrack-audio-bg)',
backgroundColorStrong: 'var(--multitrack-audio-bg-strong)',
borderColor: 'var(--multitrack-audio-border)',
textColor: 'var(--multitrack-audio-text)',
textClassName: 'text-[10px]',
titleBackgroundColor: 'var(--multitrack-audio-title-bg)',
waveformColor: 'var(--multitrack-audio-waveform)',
showThumbnail: false,
showWaveform: true,
waveformSource: 'decoded-media',
}
const TASK_PRESENTATION: SegmentTrackPresentation = {
backgroundColor: 'var(--multitrack-task-bg)',
backgroundColorStrong: 'var(--multitrack-task-bg-strong)',
borderColor: 'var(--multitrack-task-border)',
textColor: 'var(--multitrack-task-text)',
textClassName: 'text-[8px]',
titleBackgroundColor: null,
waveformColor: null,
showThumbnail: false,
showWaveform: false,
waveformSource: null,
}
const SUBTITLE_PRESENTATION: SegmentTrackPresentation = {
backgroundColor: 'var(--multitrack-subtitle-bg)',
backgroundColorStrong: 'var(--multitrack-subtitle-bg-strong)',
borderColor: 'var(--multitrack-subtitle-border)',
textColor: 'var(--multitrack-subtitle-text)',
textClassName: 'text-[8px]',
titleBackgroundColor: null,
waveformColor: null,
showThumbnail: false,
showWaveform: false,
waveformSource: null,
}
export function getSegmentTrackPresentation(trackType: MultiTrackType): SegmentTrackPresentation {
if (trackType === 'video') return VIDEO_PRESENTATION
if (trackType === 'audio') return AUDIO_PRESENTATION
if (trackType === 'subtitle') return SUBTITLE_PRESENTATION
return TASK_PRESENTATION
}
|