Reject file playback in tone-test mode

This commit is contained in:
Brandon McGinty (chatgpt)
2026-08-09 23:14:38 -04:00
committed by Brandon McGinty
parent 1081d894c9
commit 219acad951
2 changed files with 19 additions and 1 deletions
+10
View File
@@ -95,6 +95,16 @@ func TestCleanupConnectionAudioIsIdempotent(t *testing.T) {
b.cleanupConnectionAudio()
}
// Tone test mode intentionally does not create an OpenAL stream. Tree
// controls must therefore keep local mute state without trying to update one.
func TestUpdateUserGainAllowsToneTestWithoutStream(t *testing.T) {
(&Barnard{ToneTest: true}).updateUserGain(&gumble.User{})
}
func TestToneTestRejectsFilePlayback(t *testing.T) {
(&Barnard{ToneTest: true, Connected: true}).CommandPlayFile(nil, "https://example.invalid/audio")
}
func TestUserChangeNotification(t *testing.T) {
current := &gumble.Channel{ID: 1, Name: "Current"}
other := &gumble.Channel{ID: 2, Name: "Other"}
+9 -1
View File
@@ -240,11 +240,19 @@ func (b *Barnard) CommandPlayFile(ui *uiterm.Ui, cmd string) {
b.AddOutputLine("Not connected to server")
return
}
if b.ToneTest {
b.AddOutputLine("File playback is unavailable in tone test mode")
return
}
b.FileStreamMutex.Lock()
defer b.FileStreamMutex.Unlock()
if b.FileStream == nil {
b.AddOutputLine("File playback is unavailable while reconnecting")
return
}
if b.FileStream != nil && b.FileStream.IsPlaying() {
if b.FileStream.IsPlaying() {
b.AddOutputLine("Already playing a file. Use /stop first.")
return
}