Commit Graph
15 Commits
Author SHA1 Message Date
Tyler SpiveyandClaude Opus 5 f58d9f5dce Refresh channel tree after volume changes
Tree items render a display string snapshotted at build time, so
changing a user's volume updated the gain but left the stale
percentage on screen. Rebuild the tree and refresh after volume
change and reset, matching what the mute hotkeys already do.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 15:29:44 -07:00
Brandon McGinty (chatgpt) e9ba7f580a Synchronize connection-owned stream access 2026-08-10 11:25:08 -04:00
Brandon McGinty (chatgpt) b407a20132 Snapshot mutable tree display state 2026-08-10 10:27:12 -04:00
Brandon McGinty (chatgpt) 20c6997ab0 Synchronize muted channel state 2026-08-10 00:31:29 -04:00
Brandon McGinty (chatgpt) f629ce0359 Snapshot channel tree maps under client lock 2026-08-09 18:15:44 -04:00
Brandon McGinty (chatgpt) 5480dee0fd Sanitize names rendered in the channel tree 2026-08-09 15:12:29 -04:00
Brandon McGinty (chatgpt) 8c0887d562 Serialize OpenAL playback on a dedicated thread 2026-08-09 12:55:55 -04:00
Brandon McGinty (deepseek) 9dd0137975 fix: add synchronization to User audio fields to prevent data races
User.AudioSource, Boost, Volume, and LocallyMuted were accessed from
both the OnAudioStream audio goroutine and the UI goroutine without
synchronization, a data race under the Go memory model.

Replace direct field access with thread-safe getter/setter methods
protected by a per-user mutex:
- SetAudioSource/GetAudioSource for the OpenAL source pointer
- SetBoost/Boost for the audio boost multiplier
- SetVolume/Volume for the volume level
- SetLocallyMuted/LocallyMuted for the local mute state

Update all call sites across config/, barnard.go, client.go,
ui_tree.go, and stream.go.
2026-08-08 20:58:53 -04:00
Storm Dragon 342f934029 Improve action menu escape handling
Make the F11 action menu close through a shared close action so Escape and the explicit Close actions menu item follow the same path. Treat Escape-prefixed Up and Down events as close inputs while the action menu is active, which handles termbox InputAlt behavior after pressing Escape. Preserve and restore the user/channel tree selection across action menu open and close, and preserve selection across live tree rebuilds.

Tested with: GOCACHE=/tmp/barnard-go-cache go test ./...
2026-06-28 23:57:29 -04:00
Storm Dragon 5ed445060c Show volume for users. 2025-08-28 22:41:08 -04:00
Storm Dragon 4947b97b1d F8 resets user to default 1.0 volume. 2025-06-12 03:01:44 -04:00
Storm Dragon 356ff5a3a8 Muting a channel now stops you from transmitting, it acts sort of like deafen. 2025-01-16 17:47:39 -05:00
Storm Dragon 2e337db3c5 Updated everything for dependencies. All sub packages are now part of the project. This was a massive update, hopefully won't have to be reverted. 2025-01-16 17:03:01 -05:00
Storm Dragon a5c0e7a71c Added mute option. It can work per user or per channel, so covers deafen functionality too. 2025-01-16 13:36:46 -05:00
Storm Dragon 3f0246a4f8 Initial commit, lots of cleanup and stuff to do, it may not work. 2025-01-15 23:43:44 -05:00