https://gitlab.synchro.net/main/sbbs/-/commit/e07e848092877fecbb7d5e67
Added Files:
src/doors/termgfx/sst_plat.c sst_plat.h termgfx_termio.c
Modified Files:
src/doors/termgfx/CMakeLists.txt
Log Message:
termgfx: move syncscumm's sst_io.c into the shared termgfx_termio.c
Relocate the terminal-session engine (fd resolution, output-staging
FIFO, probe/reply parser, present/pacing bookkeeping, input-event queue
and the audio output seam) out of syncscumm's door and into libtermgfx,
so syncscumm and the coming syncrpg door share one canonical renderer/input/socket engine. This is a pure move: no behavior change, byte-identical wire output (verified separately against the captured
baseline).
git mv door/sst_io.c -> termgfx/termgfx_termio.c and rename only the
PUBLIC C symbols to the shared namespace: sst_io_ -> termgfx_termio_,
SST_KEY_ -> TERMGFX_KEY_, SST_EV_ -> TERMGFX_EV_, sst_input_event_t -> termgfx_input_event_t, sst_ev_type_t -> termgfx_ev_type_t, and the
modifier bits SST_MOD_* onto keymode.h's existing TERMGFX_MOD_* (the
event's mods field is a producer/consumer-private bitmask, so the
different bit values are opaque). File-local static helpers keep their
names. Strings, env-var names (SYNCSCUMM_SIXELOUT/_TRACE/_AUDIODUMP...), SBBSDATA paths, and every numeric constant are unchanged.
The framebuffer geometry and audio-tuning defaults the shared header deliberately did not export (SST_AUDIO_RATE/_CHUNK_MS/_PREBUFFER_CHUNKS/ _HEADROOM, and SST_FB_W/H) are re-declared internal to the .c with their
exact former values -- FB_W/H aliased to the header's TERMGFX_TERMIO_FB_*
so the value has one source.
Bring sst_plat.{c,h} -- the module's pure platform layer (monotonic
clock, non-blocking sockets, isatty/getpid, no ScummVM coupling) that termgfx_termio depends on -- along into termgfx too, so the library is self-contained and a shared lib never reaches into syncscumm/door for
its own platform header. Both new sources join the termgfx CMake target.
The door's own use of these headers is repointed when syncscumm is wired
onto the module in the next step.
Hand-formatted files: uncrustify deliberately not run, to preserve the byte-identical move.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net