import type { GraphNode } from '../../core/graph'; import { SoundFxCompressor, SoundFxGain, SoundFxParametricEq } from '../../core/soundfx/nodes'; import type { NodeFace } from '../graph/nodeFace'; import type { EditorState } from '../state'; import { CompressorFace } from './CompressorFace'; import { EqFace } from './EqFace'; import { GainFace } from './GainFace'; /** The nodes drawn as a face of their own instead of rows (#380, #381, #384), by type. */ export function nodeFaceFor(state: EditorState, assetId: string, node: GraphNode): NodeFace | null { if (node.type === SoundFxCompressor.type) return new CompressorFace(state, assetId, node.id); if (node.type === SoundFxParametricEq.type) return new EqFace(state, assetId, node.id); if (node.type === SoundFxGain.type) return new GainFace(state, assetId, node.id); return null; }