Move platform specific stuff to separate files

This commit is contained in:
Nonoo 2020-10-21 09:26:21 +02:00
parent 30372d9e91
commit f2edd1a106
4 changed files with 35 additions and 18 deletions

View file

@ -16,7 +16,8 @@ type audioStruct struct {
// Send to this channel to play audio.
play chan []byte
rec chan []byte
// Read from this channel for audio.
rec chan []byte
mutex sync.Mutex
playBuf *bytes.Buffer

View file

@ -22,6 +22,7 @@ func exit(err error) {
streams.audio.sendDisconnect()
streams.serial.deinit()
streams.control.sendDisconnect()
serialPort.deinit()
audio.deinit()
log.Print("exiting")
@ -46,6 +47,7 @@ func main() {
log.Print("kappanhang by Norbert Varga HA2NON and Akos Marton ES1AKOS https://github.com/nonoo/kappanhang")
parseArgs()
serialPort.init()
audio.init()
streams.audio.init()
streams.serial.init()

31
serial-linux.go Normal file
View file

@ -0,0 +1,31 @@
package main
import (
"github.com/google/goterm/term"
"github.com/nonoo/kappanhang/log"
)
type serialPortStruct struct {
pty *term.PTY
}
var serialPort serialPortStruct
func (s *serialPortStruct) init() {
var err error
s.pty, err = term.OpenPTY()
if err != nil {
exit(err)
}
n, err := s.pty.PTSName()
if err != nil {
exit(err)
}
log.Print("opened ", n)
}
func (s *serialPortStruct) deinit() {
if s.pty != nil {
s.pty.Close()
}
}

View file

@ -1,29 +1,15 @@
package main
import (
"github.com/google/goterm/term"
"github.com/nonoo/kappanhang/log"
)
type serialStream struct {
common streamCommon
pty *term.PTY
}
func (s *serialStream) init() {
s.common.open("serial", 50002)
var err error
s.pty, err = term.OpenPTY()
if err != nil {
exit(err)
}
n, err := s.pty.PTSName()
if err != nil {
exit(err)
}
log.Print("opened ", n)
}
func (s *serialStream) handleRead(r []byte) {
@ -49,7 +35,4 @@ func (s *serialStream) start() {
func (s *serialStream) deinit() {
s.common.sendDisconnect()
if s.pty != nil {
s.pty.Close()
}
}