events.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # -*- coding: utf-8 -*-
  2. """
  3. HID Event-Definitionen.
  4. """
  5. from dataclasses import dataclass
  6. from enum import Enum
  7. class HIDKeyType(Enum):
  8. """Unterstuetzte HID-Media-Tasten."""
  9. VOLUME_UP = "volume_up"
  10. VOLUME_DOWN = "volume_down"
  11. MUTE = "mute" # Lautsprecher-Mute
  12. MIC_MUTE = "mic_mute" # Mikrofon-Mute (KEY_MICMUTE)
  13. HOOK = "hook" # Anruf annehmen/beenden (Call/Answer)
  14. PLAY_PAUSE = "play_pause" # Musik Abspielen/Pausieren
  15. PLAY = "play" # Nur Abspielen (KEY_PLAY)
  16. NEXT_TRACK = "next_track" # Naechster Track
  17. PREV_TRACK = "prev_track" # Vorheriger Track
  18. class HIDLedType(Enum):
  19. """Steuerbare LEDs auf HID-Geraeten."""
  20. MUTE = "mute"
  21. MAIL = "mail" # Wird von manchen Geraeten als Status-LED genutzt
  22. @dataclass
  23. class HIDEvent:
  24. """Ein HID-Eingabe-Event."""
  25. key_type: HIDKeyType
  26. device_name: str = ""
  27. pressed: bool = True # True = gedrueckt, False = losgelassen
  28. hold_seconds: float = 0.0 # Wie lange die Taste gehalten wurde (nur bei release)