/
/
/
1"""
2Sync Group Player provider.
3
4Create sync groups to group compatible speakers to play audio in sync.
5"""
6
7from __future__ import annotations
8
9from typing import TYPE_CHECKING
10
11from music_assistant_models.enums import ProviderFeature
12
13from .player import SyncGroupPlayer
14from .provider import SyncGroupProvider
15
16if TYPE_CHECKING:
17 from music_assistant_models.config_entries import ProviderConfig
18 from music_assistant_models.provider import ProviderManifest
19
20 from music_assistant import MusicAssistant
21 from music_assistant.models import ProviderInstanceType
22
23SUPPORTED_FEATURES = {ProviderFeature.CREATE_GROUP_PLAYER, ProviderFeature.REMOVE_GROUP_PLAYER}
24
25
26async def setup(
27 mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
28) -> ProviderInstanceType:
29 """Initialize provider(instance) with given configuration."""
30 return SyncGroupProvider(mass, manifest, config, SUPPORTED_FEATURES)
31
32
33__all__ = (
34 "SyncGroupPlayer",
35 "SyncGroupProvider",
36 "setup",
37)
38