From 42b1e63ebc3a7134ffaaedf70e789fcdfe56d77c Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 24 Dec 2025 13:01:22 -0800 Subject: [PATCH] Configured targets take priority over discovery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a target address is configured for a universe, use it directly instead of looking for discovered nodes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- main.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 812dbe5..9a8116b 100644 --- a/main.go +++ b/main.go @@ -257,9 +257,15 @@ func (a *App) sendOutputs(outputs []remap.Output) { } default: // ArtNet - nodes := a.discovery.GetNodesForUniverse(out.Universe) - - if len(nodes) > 0 { + // Configured target takes priority over discovery + if target, ok := a.targets[out.Universe]; ok { + if a.debug { + log.Printf("[->artnet] dst=%s universe=%s", target.IP, out.Universe) + } + if err := a.artSender.SendDMX(target, out.Universe, out.Data[:]); err != nil { + log.Printf("[->artnet] error: dst=%s err=%v", target.IP, err) + } + } else if nodes := a.discovery.GetNodesForUniverse(out.Universe); len(nodes) > 0 { for _, node := range nodes { addr := &net.UDPAddr{ IP: node.IP, @@ -272,13 +278,6 @@ func (a *App) sendOutputs(outputs []remap.Output) { log.Printf("[->artnet] error: dst=%s err=%v", node.IP, err) } } - } else if target, ok := a.targets[out.Universe]; ok { - if a.debug { - log.Printf("[->artnet] dst=%s universe=%s", target.IP, out.Universe) - } - if err := a.artSender.SendDMX(target, out.Universe, out.Data[:]); err != nil { - log.Printf("[->artnet] error: dst=%s err=%v", target.IP, err) - } } else if len(a.broadcasts) > 0 { for _, bcast := range a.broadcasts { if a.debug {