/
/
/
1"""
2MilkDrop Visualizer Plugin for Music Assistant.
3
4Reads the PCM Music Assistant already decodes for a playing player and relays
5time-domain waveform frames over a WebSocket endpoint on the MA webserver. The
6MA web frontend feeds these frames to the Butterchurn (MilkDrop) renderer in
7the now-playing views.
8"""
9
10from __future__ import annotations
11
12from typing import TYPE_CHECKING
13
14if TYPE_CHECKING:
15 from music_assistant_models.config_entries import ProviderConfig
16 from music_assistant_models.enums import ProviderFeature
17 from music_assistant_models.provider import ProviderManifest
18
19 from music_assistant.mass import MusicAssistant
20 from music_assistant.models import ProviderInstanceType
21
22SUPPORTED_FEATURES: set[ProviderFeature] = set()
23
24
25async def setup(
26 mass: MusicAssistant,
27 manifest: ProviderManifest,
28 config: ProviderConfig,
29) -> ProviderInstanceType:
30 """Initialize provider(instance) with given configuration."""
31 from .provider import MilkdropVisualizerProvider # noqa: PLC0415
32
33 return MilkdropVisualizerProvider(mass, manifest, config, SUPPORTED_FEATURES)
34