Adjust receiver protocol to accommodate config

This commit is contained in:
Danielle McLean 2024-07-11 12:15:34 +10:00
parent 09fe3b3e6c
commit 04859b8c8b
Signed by: 00dani
GPG key ID: 6854781A0488421C
5 changed files with 32 additions and 21 deletions

View file

@ -10,15 +10,15 @@ from .mpd.listener import MpdStateListener
from .song_receiver import (
Receiver,
choose_loop_factory,
import_receiver,
construct_receiver,
)
async def listen(
config: Config, listener: MpdStateListener, receiver_types: Iterable[type[Receiver]]
config: Config, listener: MpdStateListener, receivers: Iterable[Receiver]
) -> None:
await listener.start(config.mpd)
receivers = (rec(listener, config) for rec in receiver_types)
await asyncio.gather(*(rec.start(listener) for rec in receivers))
await listener.loop(receivers)
@ -28,11 +28,11 @@ def main() -> None:
print(config)
listener = MpdStateListener(config.cache)
receiver_types = tuple(import_receiver(rec) for rec in config.receivers)
receivers = tuple(construct_receiver(rec_config) for rec_config in config.receivers)
factory = choose_loop_factory(receivers)
factory = choose_loop_factory(receiver_types)
asyncio.run(
listen(config, listener, receiver_types),
listen(config, listener, receivers),
loop_factory=factory.make_loop,
debug=True,
)