From 4b70585f1aebc77cecf7f79824441286f127e755 Mon Sep 17 00:00:00 2001 From: faiface Date: Fri, 7 Jul 2017 18:46:20 +0200 Subject: [PATCH] audio: add Ctrl decorator --- audio/ctrl.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 audio/ctrl.go diff --git a/audio/ctrl.go b/audio/ctrl.go new file mode 100644 index 0000000..b0d2fe9 --- /dev/null +++ b/audio/ctrl.go @@ -0,0 +1,24 @@ +package audio + +import "time" + +type Ctrl struct { + Streamer Streamer + Paused bool + Duration time.Duration +} + +func (c *Ctrl) Stream(samples [][2]float64) (n int, ok bool) { + if c.Streamer == nil { + return 0, false + } + if c.Paused { + for i := range samples { + samples[i] = [2]float64{} + } + return len(samples), true + } + n, ok = c.Streamer.Stream(samples) + c.Duration += time.Duration(n) * time.Second / time.Duration(SampleRate) + return n, ok +}