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