feat: coordinate authoritative playback and audio routing
This commit is contained in:
+11
-1
@@ -31,6 +31,7 @@ class MqttConfig:
|
||||
reconnect_min_seconds: int = 1
|
||||
reconnect_max_seconds: int = 30
|
||||
command_queue_size: int = 512
|
||||
publish_ack_timeout_seconds: float = 2.0
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -195,6 +196,11 @@ def load_config(
|
||||
reconnect_min_seconds=_integer(mqtt_raw.get("reconnect_min_seconds", 1), "mqtt.reconnect_min_seconds"),
|
||||
reconnect_max_seconds=_integer(mqtt_raw.get("reconnect_max_seconds", 30), "mqtt.reconnect_max_seconds"),
|
||||
command_queue_size=_integer(mqtt_raw.get("command_queue_size", 512), "mqtt.command_queue_size"),
|
||||
publish_ack_timeout_seconds=_number(
|
||||
mqtt_raw.get("publish_ack_timeout_seconds", 2.0),
|
||||
"mqtt.publish_ack_timeout_seconds",
|
||||
minimum=0.1,
|
||||
),
|
||||
)
|
||||
if mqtt.reconnect_max_seconds < mqtt.reconnect_min_seconds:
|
||||
raise ConfigError("mqtt.reconnect_max_seconds must be >= reconnect_min_seconds")
|
||||
@@ -211,7 +217,11 @@ def load_config(
|
||||
playback_base=_text(topics_raw.get("playback_base", "youtube/media/playback"), "topics.playback_base"),
|
||||
router_mode_set=_text(topics_raw.get("router_mode_set", "audio/player/mode/set"), "topics.router_mode_set"),
|
||||
router_mode_state=_text(topics_raw.get("router_mode_state", "audio/player/mode/state"), "topics.router_mode_state"),
|
||||
controller_result=_text(topics_raw.get("controller_result"), "topics.controller_result", allow_none=True),
|
||||
controller_result=_text(
|
||||
topics_raw.get("controller_result", "youtube/controller/v2/events"),
|
||||
"topics.controller_result",
|
||||
allow_none=True,
|
||||
),
|
||||
)
|
||||
|
||||
configured_slots = _integer(storage_raw.get("slot_count", 10), "storage.slot_count")
|
||||
|
||||
Reference in New Issue
Block a user