add deafen toggle (F1) and move voice toggle to F4

This commit is contained in:
Username
2026-02-24 09:36:56 +01:00
parent 5552874cd9
commit 147c8a774d
3 changed files with 49 additions and 8 deletions

View File

@@ -45,7 +45,8 @@ stdin.
### Key bindings ### Key bindings
- <kbd>F1</kbd>: toggle voice transmission - <kbd>F1</kbd>: toggle deafen (mute + deaf)
- <kbd>F4</kbd>: toggle voice transmission
- <kbd>Ctrl+L</kbd>: clear chat log - <kbd>Ctrl+L</kbd>: clear chat log
- <kbd>Tab</kbd>: toggle focus between chat and user tree - <kbd>Tab</kbd>: toggle focus between chat and user tree
- <kbd>Page Up</kbd>: scroll chat up - <kbd>Page Up</kbd>: scroll chat up

View File

@@ -23,7 +23,8 @@ type Barnard struct {
TreeWidth int TreeWidth int
LogFile *os.File LogFile *os.File
Stream *gumbleopenal.Stream Stream *gumbleopenal.Stream
transmitting bool
Ui *uiterm.Ui Ui *uiterm.Ui
UiOutput uiterm.Textview UiOutput uiterm.Textview

51
ui.go
View File

@@ -44,18 +44,56 @@ func (b *Barnard) AddOutputMessage(sender *gumble.User, message string) {
} }
} }
func (b *Barnard) OnVoiceToggle(ui *uiterm.Ui, key uiterm.Key) { func (b *Barnard) updateStatus() {
if b.UiStatus.Text == " Tx " { if b.Client == nil || b.Client.Self == nil {
return
}
if b.Client.Self.SelfDeafened {
b.UiStatus.Text = " Deaf "
b.UiStatus.Fg = uiterm.ColorWhite | uiterm.AttrBold
b.UiStatus.Bg = uiterm.ColorBlue
} else if b.transmitting {
b.UiStatus.Text = " Tx "
b.UiStatus.Fg = uiterm.ColorWhite | uiterm.AttrBold
b.UiStatus.Bg = uiterm.ColorRed
} else {
b.UiStatus.Text = " Idle " b.UiStatus.Text = " Idle "
b.UiStatus.Fg = uiterm.ColorBlack b.UiStatus.Fg = uiterm.ColorBlack
b.UiStatus.Bg = uiterm.ColorWhite b.UiStatus.Bg = uiterm.ColorWhite
}
}
func (b *Barnard) OnDeafenToggle(ui *uiterm.Ui, key uiterm.Key) {
if b.Client == nil || b.Client.Self == nil {
return
}
deaf := !b.Client.Self.SelfDeafened
b.Client.Self.SetSelfDeafened(deaf)
if deaf && b.transmitting {
b.transmitting = false
b.Stream.StopSource()
}
b.debugf("deafen=%v", deaf)
b.updateStatus()
ui.Refresh()
}
func (b *Barnard) OnVoiceToggle(ui *uiterm.Ui, key uiterm.Key) {
if b.Client == nil || b.Client.Self == nil {
return
}
if b.Client.Self.SelfDeafened {
return
}
if b.transmitting {
b.transmitting = false
b.Stream.StopSource() b.Stream.StopSource()
} else { } else {
b.UiStatus.Fg = uiterm.ColorWhite | uiterm.AttrBold b.transmitting = true
b.UiStatus.Bg = uiterm.ColorRed
b.UiStatus.Text = " Tx "
b.Stream.StartSource() b.Stream.StartSource()
} }
b.debugf("transmit=%v", b.transmitting)
b.updateStatus()
ui.Refresh() ui.Refresh()
} }
@@ -150,7 +188,8 @@ func (b *Barnard) OnUiInitialize(ui *uiterm.Ui) {
ui.Add(uiViewTree, &b.UiTree) ui.Add(uiViewTree, &b.UiTree)
b.Ui.AddKeyListener(b.OnFocusPress, uiterm.KeyTab) b.Ui.AddKeyListener(b.OnFocusPress, uiterm.KeyTab)
b.Ui.AddKeyListener(b.OnVoiceToggle, uiterm.KeyF1) b.Ui.AddKeyListener(b.OnDeafenToggle, uiterm.KeyF1)
b.Ui.AddKeyListener(b.OnVoiceToggle, uiterm.KeyF4)
b.Ui.AddKeyListener(b.OnQuitPress, uiterm.KeyF10) b.Ui.AddKeyListener(b.OnQuitPress, uiterm.KeyF10)
b.Ui.AddKeyListener(b.OnClearPress, uiterm.KeyCtrlL) b.Ui.AddKeyListener(b.OnClearPress, uiterm.KeyCtrlL)
b.Ui.AddKeyListener(b.OnScrollOutputUp, uiterm.KeyPgup) b.Ui.AddKeyListener(b.OnScrollOutputUp, uiterm.KeyPgup)