From 3be4be8ec797af4d018f99453e8dd42aac001685 Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Sun, 13 Nov 2022 22:52:34 +0300 Subject: [PATCH] Add SetVolume event --- AudioController.py | 3 +++ Events.py | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/AudioController.py b/AudioController.py index 6d84841..79a59d4 100644 --- a/AudioController.py +++ b/AudioController.py @@ -250,6 +250,9 @@ class AudioController: elif isinstance(event, Events.MuteToggle): self.toggle_mute(event.PID) + elif isinstance(event, Events.SetVolume): + self.set_volume(event.PID, event.volume) + def start_blocking(self): # self.perform_discover() logger.debug(f'Starting blocking') diff --git a/Events.py b/Events.py index e34badb..a342a35 100644 --- a/Events.py +++ b/Events.py @@ -35,6 +35,10 @@ From client to server: 2. Mute toggle PID +3. Set Volume + PID + new_volume + 3. New client *Literally nothing* # Set PID to any value @@ -118,6 +122,11 @@ class VolumeIncrement(ClientToServerEvent): increment: int +@dataclass +class SetVolume(ClientToServerEvent): + volume: int + + @dataclass class MuteToggle(ClientToServerEvent): ... @@ -132,8 +141,8 @@ T = TypeVar('T') @lru_cache -def lookup_event(event_name: str) -> Event: - for cls in enumerate_subclasses(Event): +def lookup_event(event_name: str, base: type[T] = ClientToServerEvent) -> T: + for cls in enumerate_subclasses(base): if cls.__name__ == event_name: return cls