diff --git a/audiostream.go b/audiostream.go index 71db60e..2b39c41 100644 --- a/audiostream.go +++ b/audiostream.go @@ -127,7 +127,11 @@ func (s *audioStream) loop() { } } -func (s *audioStream) start(devName string) error { +func (s *audioStream) init(devName string) error { + if err := s.common.init("audio", 50003); err != nil { + return err + } + if err := s.audio.init(devName); err != nil { return err } @@ -142,6 +146,9 @@ func (s *audioStream) start(devName string) error { log.Print("stream started") + s.rxSeqBufEntryChan = make(chan seqBufEntry) + s.rxSeqBuf.init(audioRxSeqBufLength, 0xffff, 0, s.rxSeqBufEntryChan) + s.timeoutTimer = time.NewTimer(audioTimeoutDuration) s.deinitNeededChan = make(chan bool) @@ -150,15 +157,6 @@ func (s *audioStream) start(devName string) error { return nil } -func (s *audioStream) init() error { - if err := s.common.init("audio", 50003); err != nil { - return err - } - s.rxSeqBufEntryChan = make(chan seqBufEntry) - s.rxSeqBuf.init(audioRxSeqBufLength, 0xffff, 0, s.rxSeqBufEntryChan) - return nil -} - func (s *audioStream) deinit() { if s.deinitNeededChan != nil { s.deinitNeededChan <- true diff --git a/controlstream.go b/controlstream.go index 23c715c..cbb13bf 100644 --- a/controlstream.go +++ b/controlstream.go @@ -204,11 +204,11 @@ func (s *controlStream) handleRead(r []byte) error { copy(s.authID[:], r[26:32]) s.gotAuthID = true - if err := s.serial.start(devName); err != nil { + if err := s.serial.init(devName); err != nil { return errors.New("serial/" + err.Error()) } - if err := s.audio.start(devName); err != nil { + if err := s.audio.init(devName); err != nil { return errors.New("audio/" + err.Error()) } @@ -254,7 +254,9 @@ func (s *controlStream) loop() { } } -func (s *controlStream) start() error { +func (s *controlStream) init() error { + log.Debug("init") + if err := s.common.init("control", 50001); err != nil { return err } @@ -308,18 +310,6 @@ func (s *controlStream) start() error { return nil } -func (s *controlStream) init() error { - log.Debug("init") - - if err := s.serial.init(); err != nil { - return err - } - if err := s.audio.init(); err != nil { - return err - } - return nil -} - func (s *controlStream) deinit() { s.deinitializing = true s.serialAndAudioStreamOpened = false diff --git a/main.go b/main.go index f8cad5f..f356d48 100644 --- a/main.go +++ b/main.go @@ -32,11 +32,6 @@ func runControlStream(osSignal chan os.Signal) (shouldExit bool, exitCode int) { c.deinit() return true, 1 } - if err := c.start(); err != nil { - log.Error(err) - c.deinit() - return - } select { case <-gotErrChan: diff --git a/serialstream.go b/serialstream.go index f352dce..477e9e6 100644 --- a/serialstream.go +++ b/serialstream.go @@ -209,7 +209,11 @@ func (s *serialStream) loop() { } } -func (s *serialStream) start(devName string) error { +func (s *serialStream) init(devName string) error { + if err := s.common.init("serial", 50002); err != nil { + return err + } + if enableSerialDevice { if err := s.serialPort.init(devName); err != nil { return err @@ -233,6 +237,9 @@ func (s *serialStream) start(devName string) error { return err } + s.rxSeqBufEntryChan = make(chan seqBufEntry) + s.rxSeqBuf.init(serialRxSeqBufLength, 0xffff, 0, s.rxSeqBufEntryChan) + s.deinitNeededChan = make(chan bool) s.deinitFinishedChan = make(chan bool) @@ -243,15 +250,6 @@ func (s *serialStream) start(devName string) error { return nil } -func (s *serialStream) init() error { - if err := s.common.init("serial", 50002); err != nil { - return err - } - s.rxSeqBufEntryChan = make(chan seqBufEntry) - s.rxSeqBuf.init(serialRxSeqBufLength, 0xffff, 0, s.rxSeqBufEntryChan) - return nil -} - func (s *serialStream) deinit() { if s.common.conn != nil { _ = s.sendOpenClose(true)