Attempt to make audio and speech discovery more robust.

This commit is contained in:
Storm Dragon committed 2026-11-03 13:21:50 -05:00
1 parent a27f274099
commit dc945ff392
21 files changed
+1314 -60

No files matched your search

+5 -4
View File
@@ -4,6 +4,7 @@
package app
import (
"context"
"errors"
"fmt"
"log/slog"
@@ -88,19 +89,19 @@ func settings_committed(err error) bool {
return err == nil || errors.As(err, &saved)
}
func open_speech(selected config.Speech) (speech.Transport, config.Speech, error) {
func open_speech(ctx context.Context, selected config.Speech) (speech.Transport, config.Speech, error) {
options := speech_options(selected)
if selected.Module == "" && selected.Language == "" && selected.Voice == "" {
client, err := speech.Open_driver(selected.Driver, options)
client, err := speech.Open_driver_context(ctx, selected.Driver, options)
return client, selected, err
}
client, err := prepare_speech(selected)
client, err := speech.Prepare_context(ctx, selected.Driver, options)
if err == nil {
return client, selected, nil
}
slog.Warn("saved speech selection unavailable; using server default", "error", err, "at", time.Now())
selected.Module, selected.Language, selected.Voice = "", "", ""
options.Module, options.Language, options.Voice = "", "", ""
client, err = speech.Open_driver(selected.Driver, options)
client, err = speech.Open_driver_context(ctx, selected.Driver, options)
return client, selected, err
}