sointu/audio.go

20 lines
663 B
Go

package sointu
// AudioSink represents something where we can send audio e.g. audio output.
// WriteAudio should block if not ready to accept audio e.g. buffer full.
type AudioSink interface {
WriteAudio(buffer []float32) error
Close() error
}
// AudioContext represents the low-level audio drivers. There should be at most
// one AudioContext at a time. The interface is implemented at least by
// oto.OtoContext, but in future we could also mock it.
//
// AudioContext is used to create one or more AudioSinks with Output(); each can
// be used to output separate sound & closed when done.
type AudioContext interface {
Output() AudioSink
Close() error
}