@@ -38,9 +38,17 @@ _load_dotenv(Path(__file__).resolve().parent / ".env")
|
||||
# heos_name : the EXACT name HEOS reports for that player -- including
|
||||
# an In-Room Group like a stereo pair, which HEOS pairs at
|
||||
# the hardware level into one player, one pid, always.
|
||||
# spotify_name : only needed if a room's Spotify Connect name differs
|
||||
# from heos_name -- GET /api/spotify/devices?account=account1 shows what
|
||||
# Spotify actually calls it. Defaults to heos_name.
|
||||
# spotify_name : only needed if a room's Spotify Connect name differs
|
||||
# from heos_name -- GET /api/spotify/devices?account=account1 shows what
|
||||
# Spotify actually calls it. Defaults to heos_name.
|
||||
# in_room_group : what heos_name actually names, when it is not a single
|
||||
# speaker -- one of IN_ROOM_GROUPS below. HEOS merges any
|
||||
# of these into one player, one pid, at the hardware
|
||||
# level, the same way it does a Stereo Pair -- so, same
|
||||
# as heos_name itself, this can only be set by hand, not
|
||||
# read back from HEOS. Defaults to "none".
|
||||
IN_ROOM_GROUPS = ("none", "stereo-pair", "lcr-fronts", "surround-sound-system", "subwoofer")
|
||||
|
||||
_config_path = Path(__file__).resolve().parent / "config.json"
|
||||
try:
|
||||
_cfg = json.loads(_config_path.read_text())
|
||||
@@ -52,6 +60,14 @@ except FileNotFoundError:
|
||||
|
||||
TARGETS = _cfg["targets"]
|
||||
|
||||
for _key, _target in TARGETS.items():
|
||||
_group = _target.get("in_room_group", "none")
|
||||
if _group not in IN_ROOM_GROUPS:
|
||||
raise SystemExit(
|
||||
f"{_config_path}: '{_key}' has in_room_group '{_group}', not one "
|
||||
f"of {', '.join(IN_ROOM_GROUPS)}"
|
||||
)
|
||||
|
||||
# The AVR is always the group host: its content takes over every room
|
||||
# that joins, which is the whole point of the merge buttons.
|
||||
HOST_KEY = _cfg["host_key"]
|
||||
|
||||
Reference in New Issue
Block a user