From d4c1b560d59f215e401bf3ee61886c8b95ac3c8e Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Tue, 18 Mar 2025 18:11:58 -0700 Subject: [PATCH] do fast scan for remote players on startup --- backend/app.go | 4 ++-- backend/playbackmanager.go | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/app.go b/backend/app.go index d2486bb..55ca333 100644 --- a/backend/app.go +++ b/backend/app.go @@ -153,7 +153,7 @@ func StartupApp(appName, displayAppName, appVersion, appVersionTag, latestReleas } // Periodically scan for remote players - go a.PlaybackManager.ScanRemotePlayers(a.bgrndCtx, 5 /*waitSec*/) + go a.PlaybackManager.ScanRemotePlayers(a.bgrndCtx, true /*fastScan*/) go func() { t := time.NewTicker(5 * time.Minute) for { @@ -162,7 +162,7 @@ func StartupApp(appName, displayAppName, appVersion, appVersionTag, latestReleas t.Stop() return case <-t.C: - a.PlaybackManager.ScanRemotePlayers(a.bgrndCtx, 10 /*waitSec*/) + a.PlaybackManager.ScanRemotePlayers(a.bgrndCtx, false) } } }() diff --git a/backend/playbackmanager.go b/backend/playbackmanager.go index bf24a9a..4d27e5f 100644 --- a/backend/playbackmanager.go +++ b/backend/playbackmanager.go @@ -96,7 +96,15 @@ func (p *PlaybackManager) addOnTrackChangeHook() { }) } -func (p *PlaybackManager) ScanRemotePlayers(ctx context.Context, waitSec int) { +func (p *PlaybackManager) ScanRemotePlayers(ctx context.Context, fastScan bool) { + if fastScan { + p.scanRemotePlayers(ctx, 1 /*waitSec*/) + // continue to slow scan to detect players that take longer to respond + } + p.scanRemotePlayers(ctx, 10 /*waitSec*/) +} + +func (p *PlaybackManager) scanRemotePlayers(ctx context.Context, waitSec int) { devices, _ := device.SearchMediaRenderers(ctx, waitSec, services.AVTransport, services.RenderingControl) var discovered []remotePlayer