diff --git a/examples/2mic_service.py b/examples/2mic_service.py index 62f3866..61bcbfd 100644 --- a/examples/2mic_service.py +++ b/examples/2mic_service.py @@ -119,6 +119,7 @@ class LEDsEventHandler(AsyncEventHandler): self.color(_GREEN) await asyncio.sleep(0.3) self.color(_BLACK) + await asyncio.sleep(0.3) elif SatelliteDisconnected.is_type(event.type): self.color(_RED) diff --git a/examples/4mic_service.py b/examples/4mic_service.py index 8beb418..c567283 100644 --- a/examples/4mic_service.py +++ b/examples/4mic_service.py @@ -119,6 +119,7 @@ class LEDsEventHandler(AsyncEventHandler): self.color(_GREEN) await asyncio.sleep(0.3) self.color(_BLACK) + await asyncio.sleep(0.3) elif SatelliteDisconnected.is_type(event.type): self.color(_RED) diff --git a/installer/__main__.py b/installer/__main__.py index 87a5352..9732ed7 100644 --- a/installer/__main__.py +++ b/installer/__main__.py @@ -119,6 +119,17 @@ def apply_settings(settings: Settings) -> None: error("installing audio enhancements") return + if settings.satellite.event_service_command and (("2mic" in settings.satellite.event_service_command) or ("4mic" in settings.satellite.event_service_command)): + result = run_with_gauge( + "Installing event requirements...", + [ + pip_install("-r", str(PROGRAM_DIR / "requirements_respeaker.txt")) + ], + ) + if not result: + error("installing event requirements") + return + generate_services(settings) password = passwordbox("sudo password:") diff --git a/installer/satellite.py b/installer/satellite.py index 0a66201..cb72cdb 100644 --- a/installer/satellite.py +++ b/installer/satellite.py @@ -84,17 +84,25 @@ def configure_feedback(settings: Settings) -> None: while True: choice = menu("Main > Satellite > Feedback", [("respeaker", "ReSpeaker")]) if choice == "respeaker": + selected_service: Optional[str] = None + if settings.satellite.event_service_command: + if "2mic" in settings.satellite.event_service_command[0]: + selected_service = "2mic" + elif "4mic" in settings.satellite.event_service_command[0]: + selected_service = "4mic" + event_service = radiolist( "Event Service:", [ ("2mic", "2mic LEDs"), ("4mic", "4mic LEDs"), ], + selected_service, ) if event_service is not None: settings.satellite.event_service_command = [ - str(PROGRAM_DIR / "script" / "run_{event_service}"), + str(PROGRAM_DIR / "script" / f"run_{event_service}"), "--uri", "tcp://127.0.0.1:10500", ] diff --git a/installer/services.py b/installer/services.py index 16b453f..bca58fc 100644 --- a/installer/services.py +++ b/installer/services.py @@ -222,6 +222,9 @@ def install_services(settings: Settings, password: str): assert settings.wake.system is not None, "No wake word system" installed_services.append(WakeWordSystem(settings.wake.system).value.lower()) + if settings.satellite.event_service_command: + installed_services.append("event") + install_commands = [] for service in installed_services: service_filename = f"wyoming-{service}.service" diff --git a/requirements_respeaker.txt b/requirements_respeaker.txt new file mode 100644 index 0000000..39fa12e --- /dev/null +++ b/requirements_respeaker.txt @@ -0,0 +1,2 @@ +gpiozero +spidev