mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-30 19:33:43 +00:00
QOL: Move source code under the src directory. (#1318)
This commit is contained in:
51
src/plugins/visualizer/visualizers/wave.ts
Normal file
51
src/plugins/visualizer/visualizers/wave.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import { Wave } from '@foobar404/wave';
|
||||
|
||||
import { Visualizer } from './visualizer';
|
||||
|
||||
import type { ConfigType } from '../../../config/dynamic';
|
||||
|
||||
class WaveVisualizer extends Visualizer<Wave> {
|
||||
name = 'wave';
|
||||
|
||||
visualizer: Wave;
|
||||
|
||||
constructor(
|
||||
audioContext: AudioContext,
|
||||
audioSource: MediaElementAudioSourceNode,
|
||||
visualizerContainer: HTMLElement,
|
||||
canvas: HTMLCanvasElement,
|
||||
audioNode: GainNode,
|
||||
stream: MediaStream,
|
||||
options: ConfigType<'visualizer'>,
|
||||
) {
|
||||
super(
|
||||
audioContext,
|
||||
audioSource,
|
||||
visualizerContainer,
|
||||
canvas,
|
||||
audioNode,
|
||||
stream,
|
||||
options,
|
||||
);
|
||||
|
||||
this.visualizer = new Wave(
|
||||
{ context: audioContext, source: audioSource },
|
||||
canvas,
|
||||
);
|
||||
for (const animation of options.wave.animations) {
|
||||
const TargetVisualizer = this.visualizer.animations[animation.type as keyof typeof this.visualizer.animations];
|
||||
|
||||
this.visualizer.addAnimation(
|
||||
new TargetVisualizer(animation.config as never), // Magic of Typescript
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
resize(_: number, __: number) {
|
||||
}
|
||||
|
||||
render() {
|
||||
}
|
||||
}
|
||||
|
||||
export default WaveVisualizer;
|
||||
Reference in New Issue
Block a user