From 90feac957df93216a2380770ce13e2cf0f767b5c Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Mon, 2 Mar 2020 10:48:37 +0000
Subject: [PATCH] Avoid reading input one sample at a time in radioprober

Small costly mistake.
---
 prober/decoder.go | 10 ++--------
 prober/prober.go  |  3 +--
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/prober/decoder.go b/prober/decoder.go
index b961b363..7c452662 100644
--- a/prober/decoder.go
+++ b/prober/decoder.go
@@ -48,12 +48,6 @@ type floatReader struct {
 	io.Reader
 }
 
-func (r floatReader) ReadFloats(buf []float64) (n int, err error) {
-	for n = 0; n < len(buf); n++ {
-		err = binary.Read(r.Reader, binary.LittleEndian, &buf[n])
-		if err != nil {
-			break
-		}
-	}
-	return
+func (r floatReader) ReadFloats(buf []float64) error {
+	return binary.Read(r.Reader, binary.LittleEndian, buf)
 }
diff --git a/prober/prober.go b/prober/prober.go
index dd8b6f08..8086f135 100644
--- a/prober/prober.go
+++ b/prober/prober.go
@@ -127,8 +127,7 @@ func (p *Prober) stream() {
 	fr := &floatReader{dec}
 	buf := make([]float64, bufSize)
 	for {
-		_, err := fr.ReadFloats(buf)
-		if err != nil {
+		if err := fr.ReadFloats(buf); err != nil {
 			break
 		}
 
-- 
GitLab