Add mnemonic mute controls
This commit is contained in:
@@ -22,4 +22,5 @@ type Hotkeys struct {
|
||||
AdminMenu *uiterm.Key
|
||||
NoiseSuppressionToggle *uiterm.Key
|
||||
AGCToggle *uiterm.Key
|
||||
SelfMuteToggle *uiterm.Key
|
||||
}
|
||||
|
||||
@@ -94,11 +94,11 @@ func (c *Config) LoadConfig() {
|
||||
var jc exportableConfig
|
||||
jc = exportableConfig{}
|
||||
jc.Hotkeys = &Hotkeys{
|
||||
Talk: key(uiterm.KeyF1),
|
||||
Talk: key(uiterm.KeyCtrlT),
|
||||
VolumeDown: key(uiterm.KeyArrowLeft),
|
||||
VolumeUp: key(uiterm.KeyArrowRight),
|
||||
VolumeReset: key(uiterm.KeyBackspace),
|
||||
MuteToggle: key(uiterm.KeyF7), // Added mute toggle hotkey
|
||||
MuteToggle: key(uiterm.KeyM),
|
||||
RecordToggle: key(uiterm.KeyCtrlR),
|
||||
Exit: key(uiterm.KeyCtrlQ),
|
||||
ToggleTimestamps: key(uiterm.KeyF3),
|
||||
@@ -111,6 +111,7 @@ func (c *Config) LoadConfig() {
|
||||
AdminMenu: key(uiterm.KeyF10),
|
||||
NoiseSuppressionToggle: key(uiterm.KeyF9),
|
||||
AGCToggle: key(uiterm.KeyF12),
|
||||
SelfMuteToggle: key(uiterm.KeyAltM),
|
||||
}
|
||||
if fileExists(c.fn) {
|
||||
var data []byte
|
||||
@@ -181,11 +182,11 @@ func (c *Config) ensureHotkeys() {
|
||||
c.config.Hotkeys = &Hotkeys{}
|
||||
}
|
||||
defaults := Hotkeys{
|
||||
Talk: key(uiterm.KeyF1),
|
||||
Talk: key(uiterm.KeyCtrlT),
|
||||
VolumeDown: key(uiterm.KeyArrowLeft),
|
||||
VolumeUp: key(uiterm.KeyArrowRight),
|
||||
VolumeReset: key(uiterm.KeyBackspace),
|
||||
MuteToggle: key(uiterm.KeyF7),
|
||||
MuteToggle: key(uiterm.KeyM),
|
||||
RecordToggle: key(uiterm.KeyCtrlR),
|
||||
Exit: key(uiterm.KeyCtrlQ),
|
||||
ToggleTimestamps: key(uiterm.KeyF3),
|
||||
@@ -198,6 +199,7 @@ func (c *Config) ensureHotkeys() {
|
||||
AdminMenu: key(uiterm.KeyF10),
|
||||
NoiseSuppressionToggle: key(uiterm.KeyF9),
|
||||
AGCToggle: key(uiterm.KeyF12),
|
||||
SelfMuteToggle: key(uiterm.KeyAltM),
|
||||
}
|
||||
hotkeys := c.config.Hotkeys
|
||||
if hotkeys.Talk == nil {
|
||||
@@ -251,6 +253,9 @@ func (c *Config) ensureHotkeys() {
|
||||
if hotkeys.AGCToggle == nil {
|
||||
hotkeys.AGCToggle = defaults.AGCToggle
|
||||
}
|
||||
if hotkeys.SelfMuteToggle == nil {
|
||||
hotkeys.SelfMuteToggle = defaults.SelfMuteToggle
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Config) findServer(address string) *server {
|
||||
|
||||
@@ -87,9 +87,12 @@ func TestNewHotkeyDefaults(t *testing.T) {
|
||||
got *uiterm.Key
|
||||
want uiterm.Key
|
||||
}{
|
||||
{name: "talk", got: hotkeys.Talk, want: uiterm.KeyCtrlT},
|
||||
{name: "volume down", got: hotkeys.VolumeDown, want: uiterm.KeyArrowLeft},
|
||||
{name: "volume up", got: hotkeys.VolumeUp, want: uiterm.KeyArrowRight},
|
||||
{name: "volume reset", got: hotkeys.VolumeReset, want: uiterm.KeyBackspace},
|
||||
{name: "tree mute", got: hotkeys.MuteToggle, want: uiterm.KeyM},
|
||||
{name: "self mute", got: hotkeys.SelfMuteToggle, want: uiterm.KeyAltM},
|
||||
{name: "actions menu", got: hotkeys.AdminMenu, want: uiterm.KeyF10},
|
||||
{name: "exit", got: hotkeys.Exit, want: uiterm.KeyCtrlQ},
|
||||
}
|
||||
@@ -102,14 +105,15 @@ func TestNewHotkeyDefaults(t *testing.T) {
|
||||
|
||||
func TestExplicitLegacyHotkeysRemainConfigured(t *testing.T) {
|
||||
configPath := filepath.Join(t.TempDir(), "barnard.toml")
|
||||
data := []byte("[hotkeys]\nvolumedown = \"f5\"\nvolumeup = \"f6\"\nvolumereset = \"f8\"\nadminmenu = \"f11\"\nexit = \"f10\"\n")
|
||||
data := []byte("[hotkeys]\ntalk = \"f1\"\nvolumedown = \"f5\"\nvolumeup = \"f6\"\nvolumereset = \"f8\"\nmutetoggle = \"f7\"\nadminmenu = \"f11\"\nexit = \"f10\"\n")
|
||||
if err := os.WriteFile(configPath, data, 0600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
hotkeys := NewConfig(&configPath).GetHotkeys()
|
||||
if *hotkeys.VolumeDown != uiterm.KeyF5 || *hotkeys.VolumeUp != uiterm.KeyF6 ||
|
||||
*hotkeys.VolumeReset != uiterm.KeyF8 || *hotkeys.AdminMenu != uiterm.KeyF11 ||
|
||||
if *hotkeys.Talk != uiterm.KeyF1 || *hotkeys.VolumeDown != uiterm.KeyF5 ||
|
||||
*hotkeys.VolumeUp != uiterm.KeyF6 || *hotkeys.VolumeReset != uiterm.KeyF8 ||
|
||||
*hotkeys.MuteToggle != uiterm.KeyF7 || *hotkeys.AdminMenu != uiterm.KeyF11 ||
|
||||
*hotkeys.Exit != uiterm.KeyF10 {
|
||||
t.Fatalf("explicit legacy hotkeys were replaced: %+v", hotkeys)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user