From a8b58b5d34c4e3297be9a6602bab258e1ec2d345 Mon Sep 17 00:00:00 2001 From: Alex P Date: Tue, 16 Sep 2025 15:17:49 +0300 Subject: [PATCH] [WIP] Cleanup: removed redundant code --- internal/audio/cgo_audio.go | 15 ++++++--------- internal/audio/input_microphone_manager.go | 7 ------- internal/audio/mgmt_base_manager.go | 8 -------- internal/audio/mgmt_output_ipc_manager.go | 16 ---------------- internal/audio/output_streaming.go | 2 -- internal/audio/output_supervisor.go | 2 -- internal/audio/socket_buffer.go | 1 - 7 files changed, 6 insertions(+), 45 deletions(-) diff --git a/internal/audio/cgo_audio.go b/internal/audio/cgo_audio.go index db9ae00d..6b8186bd 100644 --- a/internal/audio/cgo_audio.go +++ b/internal/audio/cgo_audio.go @@ -298,8 +298,6 @@ func (c *AudioConfigCache) GetBufferTooLargeError() error { return c.bufferTooLargeDecodeWrite } -// Removed duplicate config caching system - using AudioConfigCache instead - // updateCacheIfNeeded updates cache only if expired to avoid overhead func updateCacheIfNeeded(cache *AudioConfigCache) { if cache.initialized.Load() { @@ -464,7 +462,6 @@ var ( batchProcessingCount atomic.Int64 batchFrameCount atomic.Int64 batchProcessingTime atomic.Int64 - // Batch time tracking removed ) // GetBufferFromPool gets a buffer from the pool with at least the specified capacity @@ -613,12 +610,12 @@ func cgoAudioDecodeWriteWithBuffers(opusData []byte, pcmBuffer []byte) (int, err // Optimized CGO function aliases - use direct function calls to reduce overhead // These are now direct function aliases instead of variable assignments -func CGOAudioInit() error { return cgoAudioInit() } -func CGOAudioClose() { cgoAudioClose() } -func CGOAudioReadEncode(buf []byte) (int, error) { return cgoAudioReadEncode(buf) } -func CGOAudioPlaybackInit() error { return cgoAudioPlaybackInit() } -func CGOAudioPlaybackClose() { cgoAudioPlaybackClose() } -func CGOAudioDecodeWriteLegacy(buf []byte) (int, error) { return cgoAudioDecodeWrite(buf) } +func CGOAudioInit() error { return cgoAudioInit() } +func CGOAudioClose() { cgoAudioClose() } +func CGOAudioReadEncode(buf []byte) (int, error) { return cgoAudioReadEncode(buf) } +func CGOAudioPlaybackInit() error { return cgoAudioPlaybackInit() } +func CGOAudioPlaybackClose() { cgoAudioPlaybackClose() } + func CGOAudioDecodeWrite(opusData []byte, pcmBuffer []byte) (int, error) { return cgoAudioDecodeWriteWithBuffers(opusData, pcmBuffer) } diff --git a/internal/audio/input_microphone_manager.go b/internal/audio/input_microphone_manager.go index 0eaa052f..f2f1fdf1 100644 --- a/internal/audio/input_microphone_manager.go +++ b/internal/audio/input_microphone_manager.go @@ -70,9 +70,6 @@ func (aim *AudioInputManager) Stop() { aim.logComponentStop(AudioInputManagerComponent) - // Flush any pending sampled metrics before stopping - aim.flushPendingMetrics() - // Stop the IPC-based audio input aim.ipcManager.Stop() @@ -120,8 +117,6 @@ func (aim *AudioInputManager) WriteOpusFrame(frame []byte) error { if err != nil { return err } - aim.recordFrameProcessed(len(frame)) - aim.updateLatency(processingTime) return nil } @@ -164,8 +159,6 @@ func (aim *AudioInputManager) WriteOpusFrameZeroCopy(frame *ZeroCopyAudioFrame) // Update metrics atomic.AddInt64(&aim.framesSent, 1) - aim.recordFrameProcessed(frame.Length()) - aim.updateLatency(processingTime) return nil } diff --git a/internal/audio/mgmt_base_manager.go b/internal/audio/mgmt_base_manager.go index fb8d0a7d..2d52883b 100644 --- a/internal/audio/mgmt_base_manager.go +++ b/internal/audio/mgmt_base_manager.go @@ -59,12 +59,6 @@ func (bam *BaseAudioManager) resetMetrics() { bam.metrics.AverageLatency = 0 } -// flushPendingMetrics is now a no-op since we use direct atomic updates -func (bam *BaseAudioManager) flushPendingMetrics() { - // No-op: metrics are now updated directly without local buffering - // This function is kept for API compatibility -} - // getBaseMetrics returns a copy of the base metrics func (bam *BaseAudioManager) getBaseMetrics() BaseAudioMetrics { return BaseAudioMetrics{ @@ -77,8 +71,6 @@ func (bam *BaseAudioManager) getBaseMetrics() BaseAudioMetrics { } } - - // logComponentStart logs component start with consistent format func (bam *BaseAudioManager) logComponentStart(component string) { bam.logger.Debug().Str("component", component).Msg("starting component") diff --git a/internal/audio/mgmt_output_ipc_manager.go b/internal/audio/mgmt_output_ipc_manager.go index 285c10df..bb80f61d 100644 --- a/internal/audio/mgmt_output_ipc_manager.go +++ b/internal/audio/mgmt_output_ipc_manager.go @@ -104,19 +104,11 @@ func (aom *AudioOutputIPCManager) WriteOpusFrame(frame *ZeroCopyAudioFrame) erro return fmt.Errorf("output frame validation failed: %w", err) } - start := time.Now() - // Send frame to IPC server if err := aom.server.SendFrame(frame.Data()); err != nil { - aom.recordFrameDropped() return err } - // Update metrics - processingTime := time.Since(start) - aom.recordFrameProcessed(frame.Length()) - aom.updateLatency(processingTime) - return nil } @@ -130,22 +122,14 @@ func (aom *AudioOutputIPCManager) WriteOpusFrameZeroCopy(frame *ZeroCopyAudioFra return fmt.Errorf("audio output server not initialized") } - start := time.Now() - // Extract frame data frameData := frame.Data() // Send frame to IPC server (zero-copy not available, use regular send) if err := aom.server.SendFrame(frameData); err != nil { - aom.recordFrameDropped() return err } - // Update metrics - processingTime := time.Since(start) - aom.recordFrameProcessed(len(frameData)) - aom.updateLatency(processingTime) - return nil } diff --git a/internal/audio/output_streaming.go b/internal/audio/output_streaming.go index f6cdea9d..c2d952ce 100644 --- a/internal/audio/output_streaming.go +++ b/internal/audio/output_streaming.go @@ -14,8 +14,6 @@ import ( "github.com/rs/zerolog" ) -// Removed unused AudioOutputStreamer struct - actual streaming uses direct functions - var ( outputStreamingRunning int32 outputStreamingCancel context.CancelFunc diff --git a/internal/audio/output_supervisor.go b/internal/audio/output_supervisor.go index 2d7a8408..fa763aa1 100644 --- a/internal/audio/output_supervisor.go +++ b/internal/audio/output_supervisor.go @@ -17,8 +17,6 @@ const ( AudioOutputSupervisorComponent = "audio-output-supervisor" ) - - // AudioOutputSupervisor manages the audio output server subprocess lifecycle type AudioOutputSupervisor struct { *BaseSupervisor diff --git a/internal/audio/socket_buffer.go b/internal/audio/socket_buffer.go index 15c861f7..e6a5512e 100644 --- a/internal/audio/socket_buffer.go +++ b/internal/audio/socket_buffer.go @@ -163,5 +163,4 @@ func RecordSocketBufferMetrics(conn net.Conn, component string) { } // Socket buffer sizes recorded for debugging if needed - // Removed detailed metrics as they weren't being used }