mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-26 14:58:12 +00:00
The eight per-contact/channel notification + melody accessors were four
near-identical copies of two storage shapes. Collapse them onto two
primitives:
- maskPairGet/Set — a 3-state packed in a (presence, variant) channel-index
bitmask pair. The notif and melody uses disagree on which state the variant
bit means, so the caller passes the state value for variant-set (v_set).
- prefTableGet/Set<Entry> — the {prefix[4], value} DM table find/update/clear/
insert/overwrite-slot-0 logic, templated over the entry struct + a member
pointer to its value field (DmNotifEntry::state / DmMelodyEntry::slot).
The eight accessors are now thin wrappers; behaviour identical (verified
state↔bit mappings). QuickMsgScreen 1738 -> 1715 lines.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>