Skip to content

Fix config latency get to actively query device via ARC#51

Open
stanelie wants to merge 2 commits into
chris-ritsen:masterfrom
stanelie:fix/config-latency-get-query-device
Open

Fix config latency get to actively query device via ARC#51
stanelie wants to merge 2 commits into
chris-ritsen:masterfrom
stanelie:fix/config-latency-get-query-device

Conversation

@stanelie
Copy link
Copy Markdown

@stanelie stanelie commented Apr 4, 2026

Summary

  • device config latency (get) previously read device.latency, which is only populated from the mDNS latency_ns TXT record — not advertised by most devices, including Dante VIA. The command silently produced no output.
  • Now sends a command_device_settings (opcode 0x1100) ARC request directly to the device and parses the response with DanteParser.parse_device_settings.
  • The latency_us field in DeviceSettings stores nanoseconds despite its name; the value is now divided by 1_000_000 to produce milliseconds.
  • Also fixes the --all path, which had the same issue.

Test plan

  • netaudio --name <device> device config latency returns the correct latency value
  • netaudio device config latency --all shows a table with a latency column for all devices
  • netaudio --name <device> device config latency <value> (set) still works as before

🤖 Generated with Claude Code

stanelie and others added 2 commits April 4, 2026 15:34
When a device advertises multiple IP addresses via mDNS (e.g. Dante VIA
running on a host with several interfaces), always picking addresses[0]
could return an address on the wrong interface.  Use the configured
--interface IP to select the address on the matching subnet instead,
falling back to addresses[0] when no interface is configured or only one
address is advertised.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously, the latency get command read device.latency which is only
populated from the mDNS latency_ns property — not advertised by most
devices including Dante VIA, so the command produced no output.

Now the command sends a command_device_settings (opcode 0x1100) ARC
request and parses the response with DanteParser.parse_device_settings.
The latency_us field stores nanoseconds despite its name, so the value
is divided by 1_000_000 to produce milliseconds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant