From 62d4ec2f89dd09cb6acfe980634dd7d51e1dde0f Mon Sep 17 00:00:00 2001 From: Alex P Date: Fri, 22 Aug 2025 22:17:27 +0000 Subject: [PATCH] Fix: audio subprocess handling --- cmd/main.go | 3 ++- main.go | 9 +++------ web.go | 6 +++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 2292bd9..1066fac 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -11,6 +11,7 @@ import ( func main() { versionPtr := flag.Bool("version", false, "print version and exit") versionJsonPtr := flag.Bool("version-json", false, "print version as json and exit") + audioServerPtr := flag.Bool("audio-server", false, "Run as audio server subprocess") flag.Parse() if *versionPtr || *versionJsonPtr { @@ -23,5 +24,5 @@ func main() { return } - kvm.Main() + kvm.Main(*audioServerPtr) } diff --git a/main.go b/main.go index 797d1d8..4d7ba69 100644 --- a/main.go +++ b/main.go @@ -2,7 +2,6 @@ package kvm import ( "context" - "flag" "fmt" "net/http" "os" @@ -113,12 +112,10 @@ func startAudioSubprocess() error { return nil } -func Main() { - // Initialize flag and channel - flag.BoolVar(&isAudioServer, "audio-server", false, "Run as audio server subprocess") +func Main(audioServer bool) { + // Initialize channel and set audio server flag + isAudioServer = audioServer audioProcessDone = make(chan struct{}) - - flag.Parse() // If running as audio server, only initialize audio processing if isAudioServer { diff --git a/web.go b/web.go index b419472..c1361b2 100644 --- a/web.go +++ b/web.go @@ -223,7 +223,7 @@ func setupRouter() *gin.Engine { "bytes_processed": metrics.BytesProcessed, "last_frame_time": metrics.LastFrameTime, "connection_drops": metrics.ConnectionDrops, - "average_latency": metrics.AverageLatency.String(), + "average_latency": fmt.Sprintf("%.1fms", float64(metrics.AverageLatency.Nanoseconds())/1e6), }) }) @@ -410,7 +410,7 @@ func setupRouter() *gin.Engine { "bytes_processed": 0, "last_frame_time": "", "connection_drops": 0, - "average_latency": "0s", + "average_latency": "0.0ms", }) return } @@ -422,7 +422,7 @@ func setupRouter() *gin.Engine { "bytes_processed": metrics.BytesProcessed, "last_frame_time": metrics.LastFrameTime.Format("2006-01-02T15:04:05.000Z"), "connection_drops": metrics.ConnectionDrops, - "average_latency": metrics.AverageLatency.String(), + "average_latency": fmt.Sprintf("%.1fms", float64(metrics.AverageLatency.Nanoseconds())/1e6), }) })