Commit 54e5632
UefiHidDxeV2: Add keystroke repeat functionality (#883)
## Description
Implement keyboard repeat for held keys, matching the behavior of the
legacy C HidKeyboardDxe driver:
- 500ms initial delay before repeat begins
- 20ms repeat rate (~50 keys/sec) while key is held
- Modifier keys, toggle keys, and non-spacing (dead) keys are excluded
- Last newly pressed repeatable key wins in multi-key reports
- Timer cancelled on key release or keyboard reset
- [x] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [x] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
Included unit tests, tested on hardware at UEFI shell and confirmed
expected repeat behavior.
## Integration Instructions
None.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 153d5cb commit 54e5632
5 files changed
Lines changed: 478 additions & 5 deletions
File tree
- HidPkg/UefiHidDxeV2/src
- keyboard
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
| 83 | + | |
82 | 84 | | |
83 | 85 | | |
84 | 86 | | |
| |||
195 | 197 | | |
196 | 198 | | |
197 | 199 | | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
198 | 203 | | |
199 | 204 | | |
200 | 205 | | |
| |||
284 | 289 | | |
285 | 290 | | |
286 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
287 | 296 | | |
288 | 297 | | |
289 | 298 | | |
| |||
299 | 308 | | |
300 | 309 | | |
301 | 310 | | |
| 311 | + | |
302 | 312 | | |
303 | 313 | | |
304 | 314 | | |
| |||
373 | 383 | | |
374 | 384 | | |
375 | 385 | | |
| 386 | + | |
376 | 387 | | |
377 | 388 | | |
0 commit comments