diff options
Diffstat (limited to 'noextra.go')
| -rw-r--r-- | noextra.go | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/noextra.go b/noextra.go new file mode 100644 index 0000000..2ad138c --- /dev/null +++ b/noextra.go @@ -0,0 +1,73 @@ +//go:build !extra +// +build !extra + +package main + +import ( + "gf-lt/config" + "log/slog" +) + +// Interfaces and implementations when extra modules are not included + +type Orator interface { + Speak(text string) error + Stop() + GetLogger() *slog.Logger +} + +type STT interface { + StartRecording() error + StopRecording() (string, error) + IsRecording() bool +} + +// DefaultOrator is a no-op implementation when TTS is not available +type DefaultOrator struct { + logger *slog.Logger +} + +func NewOrator(logger *slog.Logger, cfg *config.Config) Orator { + return &DefaultOrator{logger: logger} +} + +func (d *DefaultOrator) Speak(text string) error { + d.logger.Debug("TTS not available - extra modules disabled") + return nil +} + +func (d *DefaultOrator) Stop() { + // No-op +} + +func (d *DefaultOrator) GetLogger() *slog.Logger { + return d.logger +} + +// DefaultSTT is a no-op implementation when STT is not available +type DefaultSTT struct { + logger *slog.Logger +} + +func NewSTT(logger *slog.Logger, cfg *config.Config) STT { + return &DefaultSTT{logger: logger} +} + +func (d *DefaultSTT) StartRecording() error { + d.logger.Debug("STT not available - extra modules disabled") + return nil +} + +func (d *DefaultSTT) StopRecording() (string, error) { + d.logger.Debug("STT not available - extra modules disabled") + return "", nil +} + +func (d *DefaultSTT) IsRecording() bool { + return false +} + +// TTS channels - no-op when extra is not available +var TTSTextChan = make(chan string, 10000) +var TTSFlushChan = make(chan bool, 1) +var TTSDoneChan = make(chan bool, 1)
\ No newline at end of file |
