From 54081ce90bf2b4cad803ab78db65b91c1217cc83 Mon Sep 17 00:00:00 2001 From: gbc dev Date: Sat, 4 Jul 2026 22:46:11 +0200 Subject: input: external control channel via FIFO Adds --fifo [path] opening a named pipe that accepts button commands from any process. Supports momentary taps (a, start, name:N), deterministic hold/release (+name / -name), and 'release'. Merges with keyboard input; held state carries true key-up semantics the terminal can't provide. GBC_INPUT_DEBUG traces state. --- src/render.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/render.h') diff --git a/src/render.h b/src/render.h index 93ca32a..27da080 100644 --- a/src/render.h +++ b/src/render.h @@ -7,7 +7,12 @@ void term_init(void); void term_restore(void); void render_frame(GB *gb); void render_force_full(void); // force a complete repaint next frame -// Poll keyboard, update gb->buttons. Returns false if quit requested. +// Poll keyboard + control FIFO, update gb->buttons. False if quit requested. bool input_poll(GB *gb); +// Optional external control channel: a named pipe (FIFO) that accepts button +// commands (see README). Safe to call once at startup. +void input_open_fifo(const char *path); +void input_close_fifo(void); + #endif -- cgit v1.3.1-sl0p