go-opengl-pixel/audio/ctrl.go

32 lines
538 B
Go
Raw Normal View History

2017-07-07 11:46:20 -05:00
package audio
import "time"
type Ctrl struct {
Streamer Streamer
Paused bool
Position time.Duration
2017-07-07 11:46:20 -05:00
}
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.Position += time.Duration(n) * time.Second / time.Duration(SampleRate)
2017-07-07 11:46:20 -05:00
return n, ok
}
2017-07-11 16:42:57 -05:00
func (c *Ctrl) Err() error {
if c.Streamer == nil {
return nil
}
return c.Err()
}