diff --git a/audiostream.go b/audiostream.go index 5647052..cb5943c 100644 --- a/audiostream.go +++ b/audiostream.go @@ -134,27 +134,18 @@ func (s *audioStream) start(devName string) error { return err } - if err := s.common.sendPkt3(); err != nil { + if err := s.common.start(); err != nil { return err } - if err := s.common.waitForPkt4Answer(); err != nil { - return err - } - if err := s.common.sendPkt6(); err != nil { - return err - } - if err := s.common.waitForPkt6Answer(); err != nil { - return err - } - - log.Print("stream started") - - s.timeoutTimer = time.NewTimer(audioTimeoutDuration) s.common.pkt7.startPeriodicSend(&s.common, 1, false) // This stream does not use periodic pkt0 idle packets. s.audioSendSeq = 1 + log.Print("stream started") + + s.timeoutTimer = time.NewTimer(audioTimeoutDuration) + s.deinitNeededChan = make(chan bool) s.deinitFinishedChan = make(chan bool) go s.loop() diff --git a/controlstream.go b/controlstream.go index 64eea4a..4eee645 100644 --- a/controlstream.go +++ b/controlstream.go @@ -261,21 +261,11 @@ func (s *controlStream) start() error { return err } + if err := s.common.start(); err != nil { + return err + } + s.common.pkt7.startPeriodicSend(&s.common, 2, false) - - if err := s.common.sendPkt3(); err != nil { - return err - } - if err := s.common.waitForPkt4Answer(); err != nil { - return err - } - if err := s.common.sendPkt6(); err != nil { - return err - } - if err := s.common.waitForPkt6Answer(); err != nil { - return err - } - s.common.pkt0.startPeriodicSend(&s.common) if err := s.sendPktLogin(); err != nil { diff --git a/serialstream.go b/serialstream.go index 0b6a6c3..10734e3 100644 --- a/serialstream.go +++ b/serialstream.go @@ -218,20 +218,9 @@ func (s *serialStream) start(devName string) error { } } - if err := s.common.sendPkt3(); err != nil { + if err := s.common.start(); err != nil { return err } - if err := s.common.waitForPkt4Answer(); err != nil { - return err - } - if err := s.common.sendPkt6(); err != nil { - return err - } - if err := s.common.waitForPkt6Answer(); err != nil { - return err - } - - log.Print("stream started") s.common.pkt7.startPeriodicSend(&s.common, 1, false) s.common.pkt0.startPeriodicSend(&s.common) @@ -240,6 +229,8 @@ func (s *serialStream) start(devName string) error { return err } + log.Print("stream started") + if err := s.tcpsrv.start(); err != nil { return err } diff --git a/streamcommon.go b/streamcommon.go index 20e4611..6dd60cb 100644 --- a/streamcommon.go +++ b/streamcommon.go @@ -218,6 +218,19 @@ func (s *streamCommon) sendDisconnect() error { return nil } +func (s *streamCommon) start() error { + if err := s.sendPkt3(); err != nil { + return err + } + if err := s.waitForPkt4Answer(); err != nil { + return err + } + if err := s.sendPkt6(); err != nil { + return err + } + return s.waitForPkt6Answer() +} + func (s *streamCommon) init(name string, portNumber int) error { s.name = name hostPort := fmt.Sprint(connectAddress, ":", portNumber)