/
/
1"""
2Spotify Connect plugin for Music Assistant.
3
4We tie a single player to a single Spotify Connect daemon.
5The provider has multi instance support, so multiple players can be linked to
6multiple Spotify Connect daemons.
7
8The MA-facing logic lives in ``provider.py``; everything specific to one
9Spotify Connect implementation (currently go-librespot) lives behind the
10``SpotifyConnectBackend`` contract in ``backends/``.
11"""
12
13from __future__ import annotations
14
15from typing import TYPE_CHECKING
16
17from .provider import (
18 CONF_MASS_PLAYER_ID,
19 CONF_PUBLISH_NAME,
20 DEFAULT_PUBLISH_NAME,
21 PLAYER_ID_AUTO,
22 SUPPORTED_FEATURES,
23 SpotifyConnectProvider,
24)
25
26if TYPE_CHECKING:
27 from music_assistant_models.config_entries import ProviderConfig
28 from music_assistant_models.provider import ProviderManifest
29
30 from music_assistant.mass import MusicAssistant
31 from music_assistant.models import ProviderInstanceType
32
33__all__ = [
34 "CONF_MASS_PLAYER_ID",
35 "CONF_PUBLISH_NAME",
36 "DEFAULT_PUBLISH_NAME",
37 "PLAYER_ID_AUTO",
38 "SUPPORTED_FEATURES",
39 "SpotifyConnectProvider",
40 "setup",
41]
42
43
44async def setup(
45 mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
46) -> ProviderInstanceType:
47 """Initialize provider(instance) with given configuration."""
48 return SpotifyConnectProvider(mass, manifest, config)
49