Fixed the menu, remember transmission should be there now.

This commit is contained in:
Storm Dragon
2026-09-06 18:31:04 -04:00
parent 01ca0da7ff
commit e8df68c749
5 changed files with 17 additions and 46 deletions
+2 -2
View File
@@ -55,8 +55,8 @@ agcenabled = true
``` ```
To restore the last transmit state after reconnecting or restarting Barnard, To restore the last transmit state after reconnecting or restarting Barnard,
enable the option in `barnard-ui` under **Settings**, or set it directly in open the F10 **Actions** menu, choose **Audio settings**, and toggle **Remember
`~/.barnard.toml`: transmission state**. You can also set it directly in `~/.barnard.toml`:
```toml ```toml
remembertransmissionstate = true remembertransmissionstate = true
+10
View File
@@ -194,6 +194,7 @@ func (b *Barnard) OpenKeyboardHelp() {
func (b *Barnard) audioSettingsItems() []uiterm.TreeItem { func (b *Barnard) audioSettingsItems() []uiterm.TreeItem {
agc := enabledLabel(b.UserConfig.GetAGCEnabled()) agc := enabledLabel(b.UserConfig.GetAGCEnabled())
noiseSuppression := enabledLabel(b.UserConfig.GetNoiseSuppressionEnabled()) noiseSuppression := enabledLabel(b.UserConfig.GetNoiseSuppressionEnabled())
rememberTransmissionState := enabledLabel(b.UserConfig.GetRememberTransmissionState())
micVolume := b.UserConfig.GetMicVolume() micVolume := b.UserConfig.GetMicVolume()
return []uiterm.TreeItem{ return []uiterm.TreeItem{
adminItem{label: "Automatic gain control: " + agc + "; Enter toggles", applicationAction: true, action: func() { adminItem{label: "Automatic gain control: " + agc + "; Enter toggles", applicationAction: true, action: func() {
@@ -206,6 +207,15 @@ func (b *Barnard) audioSettingsItems() []uiterm.TreeItem {
b.AddOutputLine("Settings: noise suppression " + enabledLabel(enabled)) b.AddOutputLine("Settings: noise suppression " + enabledLabel(enabled))
b.UpdateGeneralStatus("Noise suppression: "+enabledLabel(enabled), false) b.UpdateGeneralStatus("Noise suppression: "+enabledLabel(enabled), false)
}}, }},
adminItem{label: "Remember transmission state: " + rememberTransmissionState + "; Enter toggles", applicationAction: true, action: func() {
enabled := !b.UserConfig.GetRememberTransmissionState()
if err := b.UserConfig.SetRememberTransmissionState(enabled); err != nil {
b.AddOutputLine("Settings: could not save remember transmission state: " + err.Error())
return
}
b.AddOutputLine("Settings: remember transmission state " + enabledLabel(enabled))
b.UpdateGeneralStatus("Remember transmission state: "+enabledLabel(enabled), false)
}},
adminItem{label: fmt.Sprintf("Microphone level: %.0f percent", micVolume*100)}, adminItem{label: fmt.Sprintf("Microphone level: %.0f percent", micVolume*100)},
adminItem{label: "Increase microphone level by 10 percent", applicationAction: true, action: func() { adminItem{label: "Increase microphone level by 10 percent", applicationAction: true, action: func() {
volume := b.adjustMicVolume(0.1) volume := b.adjustMicVolume(0.1)
-31
View File
@@ -14,8 +14,6 @@ import (
"strconv" "strconv"
"strings" "strings"
"syscall" "syscall"
"git.stormux.org/storm/barnard/config"
) )
const ( const (
@@ -446,32 +444,6 @@ func (app *App) remove_server() error {
return app.ui.message("Removed server " + name) return app.ui.message("Removed server " + name)
} }
func settings_menu_options(rememberTransmissionState bool) []string {
state := "Off"
if rememberTransmissionState {
state = "On"
}
return []string{
"Remember transmission state: " + state,
"Go Back",
}
}
func (app *App) manage_settings() error {
cfg := config.NewConfig(&app.paths.BarnardTOML)
for {
options := settings_menu_options(cfg.GetRememberTransmissionState())
selection, cancelled, err := app.ui.menu(options)
if err != nil || cancelled || selection == len(options)-1 {
return err
}
enabled := !cfg.GetRememberTransmissionState()
if err := cfg.SetRememberTransmissionState(enabled); err != nil {
return app.ui.message("Could not save settings: " + err.Error())
}
}
}
func config_has_value(path, wantedKey string) bool { func config_has_value(path, wantedKey string) bool {
file, err := os.Open(path) file, err := os.Open(path)
if err != nil { if err != nil {
@@ -628,8 +600,6 @@ func (app *App) run() error {
err = app.manage_certificate() err = app.manage_certificate()
case "Logs": case "Logs":
err = app.manage_logs() err = app.manage_logs()
case "Settings":
err = app.manage_settings()
} }
if err != nil { if err != nil {
return err return err
@@ -644,7 +614,6 @@ func main_menu_options() []string {
"Remove server", "Remove server",
"Manage Certificate", "Manage Certificate",
"Logs", "Logs",
"Settings",
"Exit", "Exit",
} }
} }
-12
View File
@@ -209,16 +209,4 @@ func TestProgramIdentityAndMainMenuUseBarnardUI(t *testing.T) {
t.Fatalf("legacy go-ui name remains in main menu: %q", option) t.Fatalf("legacy go-ui name remains in main menu: %q", option)
} }
} }
if !slices.Contains(options, "Settings") {
t.Fatalf("main menu does not contain Settings: %v", options)
}
}
func TestSettingsMenuReportsRememberTransmissionState(t *testing.T) {
if got := settings_menu_options(false)[0]; got != "Remember transmission state: Off" {
t.Fatalf("disabled setting label = %q", got)
}
if got := settings_menu_options(true)[0]; got != "Remember transmission state: On" {
t.Fatalf("enabled setting label = %q", got)
}
} }
+5 -1
View File
@@ -32,7 +32,7 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
labels = append(labels, item.String()) labels = append(labels, item.String())
} }
joined := strings.Join(labels, "\n") joined := strings.Join(labels, "\n")
for _, wanted := range []string{"Automatic gain control: on", "Noise suppression: off", "Microphone level: 100 percent"} { for _, wanted := range []string{"Automatic gain control: on", "Noise suppression: off", "Remember transmission state: off", "Microphone level: 100 percent"} {
if !strings.Contains(joined, wanted) { if !strings.Contains(joined, wanted) {
t.Errorf("settings did not include %q:\n%s", wanted, joined) t.Errorf("settings did not include %q:\n%s", wanted, joined)
} }
@@ -40,6 +40,7 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
items[0].(adminItem).action() items[0].(adminItem).action()
items[1].(adminItem).action() items[1].(adminItem).action()
items[2].(adminItem).action()
reloaded := config.NewConfig(&configPath) reloaded := config.NewConfig(&configPath)
if reloaded.GetAGCEnabled() { if reloaded.GetAGCEnabled() {
t.Fatal("settings action did not persist disabled automatic gain control") t.Fatal("settings action did not persist disabled automatic gain control")
@@ -47,6 +48,9 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
if !reloaded.GetNoiseSuppressionEnabled() { if !reloaded.GetNoiseSuppressionEnabled() {
t.Fatal("settings action did not persist enabled noise suppression") t.Fatal("settings action did not persist enabled noise suppression")
} }
if !reloaded.GetRememberTransmissionState() {
t.Fatal("settings action did not persist enabled transmission-state remembering")
}
if got := b.adjustMicVolume(-0.1); got < 0.899 || got > 0.901 { if got := b.adjustMicVolume(-0.1); got < 0.899 || got > 0.901 {
t.Fatalf("adjusted microphone level = %v, want 0.9", got) t.Fatalf("adjusted microphone level = %v, want 0.9", got)