mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-12 02:51:46 +00:00
feat: run prettier
This commit is contained in:
37
src/plugins/visualizer/butterchurn.d.ts
vendored
37
src/plugins/visualizer/butterchurn.d.ts
vendored
@ -10,24 +10,43 @@ declare module 'butterchurn' {
|
||||
}
|
||||
|
||||
class Visualizer {
|
||||
constructor(audioContext: AudioContext, canvas: HTMLCanvasElement, opts: ButterchurnOptions);
|
||||
constructor(
|
||||
audioContext: AudioContext,
|
||||
canvas: HTMLCanvasElement,
|
||||
opts: ButterchurnOptions,
|
||||
);
|
||||
loseGLContext(): void;
|
||||
connectAudio(audioNode: AudioNode): void;
|
||||
disconnectAudio(audioNode: AudioNode): void;
|
||||
static overrideDefaultVars(baseValsDefaults: unknown, baseVals: unknown): unknown;
|
||||
static overrideDefaultVars(
|
||||
baseValsDefaults: unknown,
|
||||
baseVals: unknown,
|
||||
): unknown;
|
||||
createQVars(): Record<string, WebAssembly.Global>;
|
||||
createTVars(): Record<string, WebAssembly.Global>;
|
||||
createPerFramePool(baseVals: unknown): Record<string, WebAssembly.Global>;
|
||||
createPerPixelPool(baseVals: unknown): Record<string, WebAssembly.Global>;
|
||||
createCustomShapePerFramePool(baseVals: unknown): Record<string, WebAssembly.Global>;
|
||||
createCustomWavePerFramePool(baseVals: unknown): Record<string, WebAssembly.Global>;
|
||||
static makeShapeResetPool(pool: Record<string, WebAssembly.Global>, variables: string[], idx: number): Record<string, WebAssembly.Global>;
|
||||
createCustomShapePerFramePool(
|
||||
baseVals: unknown,
|
||||
): Record<string, WebAssembly.Global>;
|
||||
createCustomWavePerFramePool(
|
||||
baseVals: unknown,
|
||||
): Record<string, WebAssembly.Global>;
|
||||
static makeShapeResetPool(
|
||||
pool: Record<string, WebAssembly.Global>,
|
||||
variables: string[],
|
||||
idx: number,
|
||||
): Record<string, WebAssembly.Global>;
|
||||
static base64ToArrayBuffer(base64: string): ArrayBuffer;
|
||||
loadPreset(presetMap: unknown, blendTime?: number): Promise<void>;
|
||||
async loadWASMPreset(preset: unknown, blendTime: number): Promise<void>;
|
||||
loadJSPreset(preset: unknown, blendTime: number): void;
|
||||
loadExtraImages(imageData: unknown): void;
|
||||
setRendererSize(width: number, height: number, opts?: VisualizerOptions): void;
|
||||
setRendererSize(
|
||||
width: number,
|
||||
height: number,
|
||||
opts?: VisualizerOptions,
|
||||
): void;
|
||||
setInternalMeshSize(width: number, height: number): void;
|
||||
setOutputAA(useAA: boolean): void;
|
||||
setCanvas(canvas: HTMLCanvasElement): void;
|
||||
@ -44,7 +63,11 @@ declare module 'butterchurn' {
|
||||
}
|
||||
|
||||
export default class Butterchurn {
|
||||
static createVisualizer(audioContext: AudioContext, canvas: HTMLCanvasElement, options?: ButterchurnOptions): Visualizer;
|
||||
static createVisualizer(
|
||||
audioContext: AudioContext,
|
||||
canvas: HTMLCanvasElement,
|
||||
options?: ButterchurnOptions,
|
||||
): Visualizer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import { Visualizer } from './visualizers/visualizer';
|
||||
import {
|
||||
ButterchurnVisualizer as butterchurn,
|
||||
VudioVisualizer as vudio,
|
||||
WaveVisualizer as wave
|
||||
WaveVisualizer as wave,
|
||||
} from './visualizers';
|
||||
|
||||
type WaveColor = {
|
||||
@ -19,7 +19,7 @@ export type VisualizerPluginConfig = {
|
||||
preset: string;
|
||||
renderingFrequencyInMs: number;
|
||||
blendTimeInSeconds: number;
|
||||
},
|
||||
};
|
||||
vudio: {
|
||||
effect: string;
|
||||
accuracy: number;
|
||||
@ -35,7 +35,7 @@ export type VisualizerPluginConfig = {
|
||||
horizontalAlign: string;
|
||||
verticalAlign: string;
|
||||
dottify: boolean;
|
||||
}
|
||||
};
|
||||
};
|
||||
wave: {
|
||||
animations: {
|
||||
@ -51,7 +51,7 @@ export type VisualizerPluginConfig = {
|
||||
lineColor?: string | WaveColor;
|
||||
radius?: number;
|
||||
frequencyBand?: string;
|
||||
}
|
||||
};
|
||||
}[];
|
||||
};
|
||||
};
|
||||
@ -151,7 +151,7 @@ export default createPlugin({
|
||||
const config = await getConfig();
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let visualizerType: { new(...args: any[]): Visualizer<unknown> } = vudio;
|
||||
let visualizerType: { new (...args: any[]): Visualizer<unknown> } = vudio;
|
||||
|
||||
if (config.type === 'wave') {
|
||||
visualizerType = wave;
|
||||
@ -162,12 +162,15 @@ export default createPlugin({
|
||||
document.addEventListener(
|
||||
'audioCanPlay',
|
||||
(e) => {
|
||||
const video = document.querySelector<HTMLVideoElement & { captureStream(): MediaStream; }>('video');
|
||||
const video = document.querySelector<
|
||||
HTMLVideoElement & { captureStream(): MediaStream }
|
||||
>('video');
|
||||
if (!video) {
|
||||
return;
|
||||
}
|
||||
|
||||
const visualizerContainer = document.querySelector<HTMLElement>('#player');
|
||||
const visualizerContainer =
|
||||
document.querySelector<HTMLElement>('#player');
|
||||
if (!visualizerContainer) {
|
||||
return;
|
||||
}
|
||||
@ -210,7 +213,10 @@ export default createPlugin({
|
||||
resizeVisualizer(canvas.width, canvas.height);
|
||||
const visualizerContainerObserver = new ResizeObserver((entries) => {
|
||||
for (const entry of entries) {
|
||||
resizeVisualizer(entry.contentRect.width, entry.contentRect.height);
|
||||
resizeVisualizer(
|
||||
entry.contentRect.width,
|
||||
entry.contentRect.height,
|
||||
);
|
||||
}
|
||||
});
|
||||
visualizerContainerObserver.observe(visualizerContainer);
|
||||
|
||||
@ -30,14 +30,10 @@ class ButterchurnVisualizer extends Visualizer<Butterchurn> {
|
||||
options,
|
||||
);
|
||||
|
||||
this.visualizer = Butterchurn.createVisualizer(
|
||||
audioContext,
|
||||
canvas,
|
||||
{
|
||||
width: canvas.width,
|
||||
height: canvas.height,
|
||||
}
|
||||
);
|
||||
this.visualizer = Butterchurn.createVisualizer(audioContext, canvas, {
|
||||
width: canvas.width,
|
||||
height: canvas.height,
|
||||
});
|
||||
|
||||
const preset = ButterchurnPresets[options.butterchurn.preset];
|
||||
this.visualizer.loadPreset(preset, options.butterchurn.blendTimeInSeconds);
|
||||
|
||||
@ -45,8 +45,7 @@ class VudioVisualizer extends Visualizer<Vudio> {
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
}
|
||||
render() {}
|
||||
}
|
||||
|
||||
export default VudioVisualizer;
|
||||
|
||||
@ -3,6 +3,7 @@ import { Wave } from '@foobar404/wave';
|
||||
import { Visualizer } from './visualizer';
|
||||
|
||||
import type { VisualizerPluginConfig } from '../index';
|
||||
|
||||
class WaveVisualizer extends Visualizer<Wave> {
|
||||
name = 'wave';
|
||||
|
||||
@ -32,7 +33,10 @@ class WaveVisualizer extends Visualizer<Wave> {
|
||||
canvas,
|
||||
);
|
||||
for (const animation of options.wave.animations) {
|
||||
const TargetVisualizer = this.visualizer.animations[animation.type as keyof typeof this.visualizer.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
|
||||
@ -40,11 +44,9 @@ class WaveVisualizer extends Visualizer<Wave> {
|
||||
}
|
||||
}
|
||||
|
||||
resize(_: number, __: number) {
|
||||
}
|
||||
resize(_: number, __: number) {}
|
||||
|
||||
render() {
|
||||
}
|
||||
render() {}
|
||||
}
|
||||
|
||||
export default WaveVisualizer;
|
||||
|
||||
10
src/plugins/visualizer/vudio.d.ts
vendored
10
src/plugins/visualizer/vudio.d.ts
vendored
@ -9,7 +9,7 @@ declare module 'vudio/umd/vudio' {
|
||||
fadeSide?: boolean;
|
||||
}
|
||||
|
||||
interface WaveformOptions extends NoneWaveformOptions{
|
||||
interface WaveformOptions extends NoneWaveformOptions {
|
||||
horizontalAlign: 'left' | 'center' | 'right';
|
||||
verticalAlign: 'top' | 'middle' | 'bottom';
|
||||
}
|
||||
@ -19,11 +19,15 @@ declare module 'vudio/umd/vudio' {
|
||||
accuracy?: number;
|
||||
width?: number;
|
||||
height?: number;
|
||||
waveform?: WaveformOptions
|
||||
waveform?: WaveformOptions;
|
||||
}
|
||||
|
||||
class Vudio {
|
||||
constructor(audio: HTMLAudioElement | MediaStream, canvas: HTMLCanvasElement, options: VudioOptions = {});
|
||||
constructor(
|
||||
audio: HTMLAudioElement | MediaStream,
|
||||
canvas: HTMLCanvasElement,
|
||||
options: VudioOptions = {},
|
||||
);
|
||||
|
||||
dance(): void;
|
||||
pause(): void;
|
||||
|
||||
Reference in New Issue
Block a user