# whisper_local/microphone/__init__.py """Mikrofon-Geräteüberwachung — plattformspezifische Backends.""" import sys from collections.abc import Awaitable, Callable from typing import Protocol class MicrophoneMonitor(Protocol): on_device_added: Callable[[str], Awaitable[None]] | None on_device_removed: Callable[[str], Awaitable[None]] | None on_configured_missing: Callable[[], Awaitable[None]] | None async def start(self) -> None: ... def stop(self) -> None: ... def create_monitor(configured_device: str | None) -> MicrophoneMonitor: """Erstellt den plattformspezifischen Mikrofon-Monitor.""" if sys.platform == "win32": from whisper_local.microphone._win32 import Win32Monitor return Win32Monitor(configured_device) from whisper_local.microphone._poll import PollMonitor return PollMonitor(configured_device)