diff --git a/README.md b/README.md index baae845..ac29419 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ not available. ### Hotkeys +- `q` (quit): closes the app - `l` (listen): toggles audio stream playback to the default sound device This is useful for quickly listening into the audio stream coming from the @@ -161,18 +162,18 @@ not available. Some basic CAT control hotkeys are also supported: - `t`: toggles the tune process -- `+`: increase TX power -- `-`: decrease TX power -- `<`, `>`: decrease, increase frequency 1Hz -- `,`, `.`: decrease, increase frequency 10Hz -- `:`, `"`: decrease, increase frequency 100Hz -- `;`, `'`: decrease, increase frequency 1kHz -- `{`, `}`: decrease, increase frequency 10kHz -- `[`, `]`: decrease, increase frequency 100kHz -- `n`, `m`: cycle through operating modes -- `d`, `f`: cycle through filters -- `D`: toggle data mode -- `v`, `b`: cycle through bands +- `+`: increases TX power +- `-`: decreases TX power +- `<`, `>`: decreases, increases frequency 1Hz +- `,`, `.`: decreases, increases frequency 10Hz +- `:`, `"`: decreases, increases frequency 100Hz +- `;`, `'`: decreases, increases frequency 1kHz +- `{`, `}`: decreases, increases frequency 10kHz +- `[`, `]`: decreases, increases frequency 100kHz +- `n`, `m`: cycles through operating modes +- `d`, `f`: cycles through filters +- `D`: toggles data mode +- `v`, `b`: cycles through bands ## Authors diff --git a/keyboard-linux.go b/keyboard-linux.go index 6c25c30..d25a65d 100644 --- a/keyboard-linux.go +++ b/keyboard-linux.go @@ -150,6 +150,8 @@ func (s *keyboardStruct) handleKey(k byte) { log.Error("can't change band: ", err) } } + case 'q': + quitChan <- true } } diff --git a/main.go b/main.go index 995eb44..5db6b65 100644 --- a/main.go +++ b/main.go @@ -10,6 +10,7 @@ import ( ) var gotErrChan = make(chan bool) +var quitChan = make(chan bool) func getAboutStr() string { var v string @@ -43,6 +44,9 @@ func runControlStream(osSignal chan os.Signal) (shouldExit bool, exitCode int) { case <-t.C: return false, 0 case <-osSignal: + log.Print("sigterm received") + return true, 0 + case <-quitChan: return true, 0 } } @@ -63,6 +67,9 @@ func runControlStream(osSignal chan os.Signal) (shouldExit bool, exitCode int) { select { case <-t.C: case <-osSignal: + log.Print("sigterm received") + return true, 0 + case <-quitChan: return true, 0 } } @@ -71,6 +78,9 @@ func runControlStream(osSignal chan os.Signal) (shouldExit bool, exitCode int) { log.Print("sigterm received") ctrl.deinit() return true, 0 + case <-quitChan: + ctrl.deinit() + return true, 0 } } @@ -112,6 +122,8 @@ func main() { case <-osSignal: log.Print("sigterm received") shouldExit = true + case <-quitChan: + shouldExit = true default: }