- Input handling for controller, keyboard, VMU
- Architecture: Controller Handler + Keyboard Handler → Event
Processor → Input Buffer → Terminal Core
- Data structures:
d3tui_controller_state_t (buttons +
analog sticks + triggers), d3tui_key_event_t (codepoint,
modifiers, pressed, timestamp), d3tui_input_buffer_t (ring
buffer), d3tui_key_binding_t,
d3tui_input_handler_t
- API: create/destroy, update, get_controller state, button queries
(pressed/just_pressed/just_released), input buffer
(available/get_event/clear), key bindings (set/remove/clear),
get_text
- Default controller mappings: D-pad → cursor, A=Enter, B=Backspace,
X=Space, Y=Tab, Start=Menu, L/R=Page Up/Down
- Default keyboard mappings: standard keys map to ASCII, special keys
produce escape sequences
- Event processing loop polls controller every frame (16ms), keyboard
at 100Hz
- Performance: polling < 1ms, event processing < 0.1ms, input
buffer 256 chars min