https://gitlab.synchro.net/main/sbbs/-/commit/1a3f9d5049b422d6aa1f18d9
Modified Files:
src/doors/syncduke/syncduke.h syncduke_io.c syncduke_node.c
Log Message:
syncduke: cross-tier who's-online/message banner overlay
Adds the banner overlay mechanism (Task 2 of the node-features plan): syncduke_node.c gains banner state (g_ov rows + expiry + change signature)
and syncduke_node_overlay_sig()/syncduke_node_draw(), a top-strip painted
via syncduke_out_put over sixel/JXL/text tiers alike and auto-clearing on expiry. present() (syncduke_io.c) folds the banner signature into its
frame de-dupe so a banner-only change is never skipped, forces a repaint (syncduke_have_last=0 + rt_invalidate()) when the banner changes, and
draws the banner after each frame emit.
Exposes syncduke_clock_ms() (syncduke_io.c) as a non-static accessor for
the same monotonic ms clock present()/pacing already use, so the banner's expiry timer shares that exact clock domain rather than a second, merely similar copy (syncduke_in_now_ms() in syncduke_input.c is static and a
separate instance).
The banner is currently unused (Tasks 3/4 wire Ctrl-U and incoming
messages as producers); a temporary self-test call was build-verified
then removed before this commit.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net