feat(microphone): Protocol + create_monitor() Factory-Skeleton
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user