Files
Blind/modules/hotkeys/base.py
T
2026-09-11 19:47:15 +03:00

30 lines
1.3 KiB
Python

"""События клавиш — контракт между бэкендом ввода и ассистентом.
Бэкенд (console / Windows-хук) только ПЕРЕДАЁТ события; вся логика
реакции — в машине состояний (modules/assistant).
"""
from __future__ import annotations
from dataclasses import dataclass
from typing import Callable, Optional
@dataclass
class KeyEvents:
"""Набор колбэков ассистента.
on_dialog_toggle — ПРОБЕЛ: начать диалог (куи «готов к диалогу») или
завершить его (куи «до новых встреч»);
on_talk_down — клавиша «Слушай» НАЖАТА (push-to-talk, резервный режим);
on_talk_up — клавиша «Слушай» ОТПУЩЕНА;
on_stop — «Замолчи»: заглушить речь / отменить;
on_repeat — «Повтори»: последнюю фразу;
on_quit — выход из программы.
"""
on_talk_down: Callable[[], None]
on_talk_up: Callable[[], None]
on_stop: Callable[[], None]
on_repeat: Callable[[], None]
on_quit: Callable[[], None]
on_dialog_toggle: Optional[Callable[[], None]] = None