Require talk key for tone test transmission
This commit is contained in:
committed by
Brandon McGinty
parent
612db896ce
commit
1ea71b1862
@@ -34,6 +34,10 @@ func (b *Barnard) start() {
|
|||||||
b.connect(false)
|
b.connect(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *Barnard) toneTestAutoTransmit() bool {
|
||||||
|
return b.ToneTest && b.AutoTransmit
|
||||||
|
}
|
||||||
|
|
||||||
func (b *Barnard) exitWithError(err error) {
|
func (b *Barnard) exitWithError(err error) {
|
||||||
b.Ui.Close()
|
b.Ui.Close()
|
||||||
b.exitStatus = 1
|
b.exitStatus = 1
|
||||||
@@ -66,15 +70,14 @@ func (b *Barnard) connect(reconnect bool) bool {
|
|||||||
b.toneTestSaver = saver
|
b.toneTestSaver = saver
|
||||||
b.Client.Config.AttachAudio(saver)
|
b.Client.Config.AttachAudio(saver)
|
||||||
|
|
||||||
|
b.Connected = true
|
||||||
|
if b.toneTestAutoTransmit() {
|
||||||
b.toneTestStop = make(chan struct{})
|
b.toneTestStop = make(chan struct{})
|
||||||
go StartToneGenerator(b.Client, b.toneTestStop)
|
go StartToneGenerator(b.Client, b.toneTestStop)
|
||||||
b.Tx = true
|
b.Tx = true
|
||||||
// Tone mode starts transmitting immediately. Reflect that in the UI so
|
|
||||||
// the F8 toggle has a visible initial state and transition.
|
|
||||||
b.UpdateGeneralStatus(" Tx ", true)
|
b.UpdateGeneralStatus(" Tx ", true)
|
||||||
b.AddOutputLine("Tone test transmission started")
|
b.AddOutputLine("Tone test transmission started")
|
||||||
|
}
|
||||||
b.Connected = true
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,17 @@ import (
|
|||||||
|
|
||||||
// Regression: tone transmission was started before opening its output file,
|
// Regression: tone transmission was started before opening its output file,
|
||||||
// so a creation error left audio transmission running without cleanup.
|
// so a creation error left audio transmission running without cleanup.
|
||||||
|
// Regression: tone test transmitted immediately, preventing the configured
|
||||||
|
// talk key from controlling it.
|
||||||
|
func TestToneTestRequiresAutoTransmit(t *testing.T) {
|
||||||
|
if (&Barnard{ToneTest: true}).toneTestAutoTransmit() {
|
||||||
|
t.Fatal("tone test started without auto-transmit")
|
||||||
|
}
|
||||||
|
if !(&Barnard{ToneTest: true, AutoTransmit: true}).toneTestAutoTransmit() {
|
||||||
|
t.Fatal("tone test did not auto-transmit")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestNewAudioFileSaverReportsUnavailableOutputPath(t *testing.T) {
|
func TestNewAudioFileSaverReportsUnavailableOutputPath(t *testing.T) {
|
||||||
path := filepath.Join(t.TempDir(), "missing", "tone.pcm")
|
path := filepath.Join(t.TempDir(), "missing", "tone.pcm")
|
||||||
if saver, err := NewAudioFileSaver(path); err == nil || saver != nil {
|
if saver, err := NewAudioFileSaver(path); err == nil || saver != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user