1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
# Windows Interception driver implementation notes
- Interception handle is `!Send` and `!Sync`
- means a single thread should own both input and output
- `KbdOut` will need to send keyboard output events to that thread as opposed
to Linux using `uinput` and the original Windows code using `SendInput`
which are independent of the input devices.
- Maybe save channel in kanata struct as part of new kanata
- Interception can filter for only keyboard events
- should use this filter feature; don't want to intercept mouse
- Need to save previous device for sending to, in case wait/receive (with
timeout) don't return anything so that sending stuff can be sent to some
device.
- Input `ScanCode` maps to the keyberon `KeyCode`; they both use the USB
standard codes.
- For ease of integration will probably need to unfortunately convert it to
an `OsCode` even though the processing loop will soon after just convert it
back to `KeyCode`. Oh well.
|