From e45bec4a9cf84c12b746ae9169ea5d1fc573022e Mon Sep 17 00:00:00 2001 From: Alex P Date: Fri, 5 Sep 2025 17:33:13 +0000 Subject: [PATCH] Fix: currently selected preset not coming from the API --- audio_handlers.go | 22 +++++++++++++--------- internal/audio/handlers.go | 10 ++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/audio_handlers.go b/audio_handlers.go index fbc1cbe2..707bb2dd 100644 --- a/audio_handlers.go +++ b/audio_handlers.go @@ -93,23 +93,24 @@ func handleMicrophoneReset(c *gin.Context) { // handleSubscribeAudioEvents handles WebSocket audio event subscription func handleSubscribeAudioEvents(connectionID string, wsCon *websocket.Conn, runCtx context.Context, l *zerolog.Logger) { - l.Info().Msg("client subscribing to audio events") - broadcaster := audio.GetAudioEventBroadcaster() - broadcaster.Subscribe(connectionID, wsCon, runCtx, l) + initAudioControlService() + audioControlService.SubscribeToAudioEvents(connectionID, wsCon, runCtx, l) } // handleUnsubscribeAudioEvents handles WebSocket audio event unsubscription func handleUnsubscribeAudioEvents(connectionID string, l *zerolog.Logger) { - l.Info().Msg("client unsubscribing from audio events") - broadcaster := audio.GetAudioEventBroadcaster() - broadcaster.Unsubscribe(connectionID) + initAudioControlService() + audioControlService.UnsubscribeFromAudioEvents(connectionID, l) } // handleAudioQuality handles GET requests for audio quality presets func handleAudioQuality(c *gin.Context) { - presets := audio.GetAudioQualityPresets() + initAudioControlService() + presets := audioControlService.GetAudioQualityPresets() + current := audioControlService.GetCurrentAudioQuality() c.JSON(200, gin.H{ "presets": presets, + "current": current, }) } @@ -137,9 +138,12 @@ func handleSetAudioQuality(c *gin.Context) { // handleMicrophoneQuality handles GET requests for microphone quality presets func handleMicrophoneQuality(c *gin.Context) { - presets := audio.GetMicrophoneQualityPresets() - c.JSON(http.StatusOK, gin.H{ + initAudioControlService() + presets := audioControlService.GetMicrophoneQualityPresets() + current := audioControlService.GetCurrentMicrophoneQuality() + c.JSON(200, gin.H{ "presets": presets, + "current": current, }) } diff --git a/internal/audio/handlers.go b/internal/audio/handlers.go index 1afd052a..5116e65e 100644 --- a/internal/audio/handlers.go +++ b/internal/audio/handlers.go @@ -144,6 +144,16 @@ func (s *AudioControlService) GetMicrophoneQualityPresets() map[AudioQuality]Aud return GetMicrophoneQualityPresets() } +// GetCurrentAudioQuality returns the current audio quality configuration +func (s *AudioControlService) GetCurrentAudioQuality() AudioConfig { + return GetAudioConfig() +} + +// GetCurrentMicrophoneQuality returns the current microphone quality configuration +func (s *AudioControlService) GetCurrentMicrophoneQuality() AudioConfig { + return GetMicrophoneConfig() +} + // SubscribeToAudioEvents subscribes to audio events via WebSocket func (s *AudioControlService) SubscribeToAudioEvents(connectionID string, wsCon *websocket.Conn, runCtx context.Context, logger *zerolog.Logger) { logger.Info().Msg("client subscribing to audio events")