mirror of
https://github.com/serrebidev/NVDARemoteAudioClient.git
synced 2026-10-28 15:16:18 -07:00
-
0.2.11 Stable
released this
2026-09-28 09:27:05 -07:00 | 10 commits to main since this releaseGroup calls through a RemSound V2 relay
- A RemSound relay running server v2.9 or newer can now carry a group of up to 64 devices that share one encryption password, instead of a single pair. This is the feature requested in issue #6.
- Type the relay's address into the new RemSound relay for group calls setting. The relay stays an ordinary peer too: until its member list arrives, and if the lists ever stop, everything falls back to device-to-device behavior.
- NVDA menu > Tools > NVDA Remote Audio > Choose RemSound relay members... opens a checklist of the group's members. Ticking works both ways, like the phone app: the relay only forwards audio between members that ticked each other, and a member marked "has ticked you" already has. Hear everyone returns to the whole group.
- This computer announces itself to the relay every two seconds with a persistent group identity — 16 random bytes kept for the life of the installation — so the other devices keep recognizing it after a restart, and it says goodbye when the connection closes.
- Changing the encryption password starts a new group on the relay: the saved member selections are dropped, here and there, and the next announcement hears everyone again.
- Under the hood: audio, format, heartbeat and volume packets travel in group framing (the ordinary header with version 2 and the sender's client id) while the relay's member list is fresh; heartbeats also go out in ordinary form so a phone or an older app holding one of the relay's pair slots keeps working; the relay's address check is still echoed verbatim, never in group framing; group audio is keyed per member, and a member that leaves has its streams dropped at once.
Testing
- New
TestRelayGroupsin the helper self-test: group header round trip, ordinary/wrapped rejection both ways, the legacy 40-byte hello and the ticked hello layout, name truncation on a character boundary, bye, current and legacy roster parsing, malformed roster rejection, the 240.0.0.0/5 member addresses with collision handling, the 16-byte group audio budget, and group client id persistence, damage recovery, and all-zero rejection. TestOptionsgains the relay switches:--relay-ticksabsent means the whole group, present-but-empty means an explicit empty list, and a bad id is rejected.tools/selftest_addon.py: the RemSound command-line test passes a relay and tick list through;testRelayTickNormalizationcovers the None/empty/invalid/deduplicated cases and the single-relay rule; the event test feedsrelay_membersrosters and requires joins and leaves to be announced exactly once each, and silence when nothing changed.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads