summaryrefslogtreecommitdiff
path: root/soundbox
diff options
context:
space:
mode:
Diffstat (limited to 'soundbox')
-rw-r--r--soundbox/streaming.go27
-rw-r--r--soundbox/url.go2
2 files changed, 9 insertions, 20 deletions
diff --git a/soundbox/streaming.go b/soundbox/streaming.go
index 2686f47..1a2d89e 100644
--- a/soundbox/streaming.go
+++ b/soundbox/streaming.go
@@ -2,7 +2,6 @@ package soundbox
import (
"context"
- "errors"
"io"
"net"
"time"
@@ -27,24 +26,14 @@ func streamContext(ctx context.Context, r io.Reader, targets []net.HardwareAddr)
}
}()
- for {
- buffer := make([]byte, bufferSize)
- i, readErr := r.Read(buffer)
- for _, conn := range conns {
- conn.SetDeadline(time.Now().Add(writeTimeout))
- _, writeErr := conn.Write(buffer[:i])
- if writeErr != nil {
- return writeErr
- }
- }
- if readErr != nil {
- if errors.Is(readErr, io.EOF) {
- break
- } else {
- return readErr
- }
- }
+ writers := make([]io.Writer, 0)
+ for _, conn := range conns {
+ writers = append(writers, conn)
}
- return nil
+ mw := io.MultiWriter(writers...)
+
+ _, err := io.Copy(mw, r)
+
+ return err
}
diff --git a/soundbox/url.go b/soundbox/url.go
index 6fed442..b24b05d 100644
--- a/soundbox/url.go
+++ b/soundbox/url.go
@@ -33,7 +33,7 @@ func StreamURLContext(ctx context.Context, url string, targets []net.HardwareAdd
return err
}
- streamContext(ctx, stdout, targets)
+ _ = streamContext(ctx, stdout, targets)
return cmd.Wait()
}