mirror of
https://github.com/Boof2015/prism.git
synced 2026-08-20 20:39:59 +02:00
Improved VU needle mode
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import type { VectorscopeMode } from '../renderer/visualizers/Vectorscope'
|
||||
import type { SpectrogramClarityMode, SpectrogramScaleMode } from './spectrogram'
|
||||
import type { VUMeterMode, VUMeterOrientation } from './vumeter'
|
||||
import type { VUMeterMode, VUMeterNeedleChannels, VUMeterOrientation } from './vumeter'
|
||||
import { DEFAULT_LUFS_METER_READOUT, type LUFSMeterMode, type LUFSMeterReadout } from './lufsmeter'
|
||||
import { DEFAULT_WAVEFORM_MODE, type WaveformMode } from './waveform'
|
||||
import { DEFAULT_SPECTRUM_PEAK_INFO_MODE, type SpectrumPeakInfoMode } from './spectrum'
|
||||
@@ -41,6 +41,7 @@ export interface ScopeSettings {
|
||||
vumeter: {
|
||||
mode: VUMeterMode
|
||||
orientation: VUMeterOrientation
|
||||
needleChannels: VUMeterNeedleChannels
|
||||
}
|
||||
lufsmeter: {
|
||||
mode: LUFSMeterMode
|
||||
@@ -66,7 +67,7 @@ export const DEFAULT_SCOPE_SETTINGS: ScopeSettings = {
|
||||
oscilloscope: { pitchLock: true, underfillEnabled: false, showGrid: true, lineWidth: 2 },
|
||||
vectorscope: { mode: 'lissajous', multiband: false, showGrid: true, persistence: 0.10, lineWidth: 1.5 },
|
||||
spectrogram: { fftSize: 2048, scrollSpeed: 2, clarityMode: 'sharper', scaleMode: 'log', colorScheme: 'heat' },
|
||||
vumeter: { mode: 'bar', orientation: 'horizontal' },
|
||||
vumeter: { mode: 'bar', orientation: 'horizontal', needleChannels: 'stereo' },
|
||||
lufsmeter: { mode: 'bar', readout: DEFAULT_LUFS_METER_READOUT },
|
||||
waveform: { mode: DEFAULT_WAVEFORM_MODE, scrollSpeed: 1, multiband: false },
|
||||
nowPlaying: {
|
||||
|
||||
@@ -100,6 +100,9 @@ export interface ThemeVUMeterTokens {
|
||||
clip?: string
|
||||
scale?: string
|
||||
labels?: string
|
||||
needleLeft?: string
|
||||
needleRight?: string
|
||||
needleCombined?: string
|
||||
}
|
||||
|
||||
export interface ThemeLUFSMeterTokens {
|
||||
@@ -285,6 +288,9 @@ export interface ResolvedVUMeterTheme {
|
||||
clip: string
|
||||
scale: string
|
||||
labels: string
|
||||
needleLeft: string
|
||||
needleRight: string
|
||||
needleCombined: string
|
||||
background: string
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
export type VUMeterMode = 'needle' | 'bar'
|
||||
export type VUMeterOrientation = 'horizontal' | 'vertical'
|
||||
export type VUMeterNeedleChannels = 'stereo' | 'combined'
|
||||
|
||||
export const VU_METER_MODES: readonly VUMeterMode[] = ['needle', 'bar']
|
||||
export const VU_METER_ORIENTATIONS: readonly VUMeterOrientation[] = ['horizontal', 'vertical']
|
||||
export const VU_METER_NEEDLE_CHANNELS: readonly VUMeterNeedleChannels[] = ['stereo', 'combined']
|
||||
|
||||
export const DEFAULT_VU_METER_MODE: VUMeterMode = 'bar'
|
||||
export const DEFAULT_VU_METER_ORIENTATION: VUMeterOrientation = 'horizontal'
|
||||
export const DEFAULT_VU_METER_NEEDLE_CHANNELS: VUMeterNeedleChannels = 'stereo'
|
||||
|
||||
export function isVUMeterMode(value: unknown): value is VUMeterMode {
|
||||
return typeof value === 'string' && VU_METER_MODES.includes(value as VUMeterMode)
|
||||
@@ -14,3 +17,7 @@ export function isVUMeterMode(value: unknown): value is VUMeterMode {
|
||||
export function isVUMeterOrientation(value: unknown): value is VUMeterOrientation {
|
||||
return typeof value === 'string' && VU_METER_ORIENTATIONS.includes(value as VUMeterOrientation)
|
||||
}
|
||||
|
||||
export function isVUMeterNeedleChannels(value: unknown): value is VUMeterNeedleChannels {
|
||||
return typeof value === 'string' && VU_METER_NEEDLE_CHANNELS.includes(value as VUMeterNeedleChannels)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user