summaryrefslogtreecommitdiff
path: root/internal/audio
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-06 11:06:19 +0300
committerPaul Buetow <paul@buetow.org>2026-04-06 11:06:19 +0300
commit05f54cc0cb8cf3535698ab5027d200842bdb28e3 (patch)
tree30b7e778be29db63301119b7cfa8be5a5edc041e /internal/audio
parent23160bce9a18a70080a85dda6e9c654499aba7f7 (diff)
refactor: consolidate provider factory test seams into shared named types
Define audio.ProviderFactory, image.PromptAwareClient, image.OpenAIClientFactory, image.NanoBananaClientFactory, and image.ClientFactories as the single source of truth for the three injectable factory signatures that were previously duplicated across processor.Processor, gui.Application, and gui.GenerationOrchestrator. Replace all three separate function-type fields with imageFactories image.ClientFactories + newAudioProvider audio.ProviderFactory, eliminating the parallel field declarations and the local promptAwareImageClient interface in gui/generator.go. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/audio')
-rw-r--r--internal/audio/provider.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/audio/provider.go b/internal/audio/provider.go
index e4e5888..296521d 100644
--- a/internal/audio/provider.go
+++ b/internal/audio/provider.go
@@ -131,6 +131,12 @@ func DefaultProviderConfig() *Config {
}
}
+// ProviderFactory is the canonical type for functions that construct an audio
+// Provider from a Config. Using a named type avoids duplicating the raw function
+// signature in every package that needs to inject or replace the factory
+// (processor, gui). The production default is audio.NewProvider itself.
+type ProviderFactory func(*Config) (Provider, error)
+
// NewProvider creates the appropriate audio provider based on configuration.
// It extracts provider-specific sub-configs so each implementation only
// receives the fields it needs (ISP).