18 lines
632 B
Go
18 lines
632 B
Go
|
package model
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
type Extractor interface {
|
||
|
// Reads a single "block" from a radio stream. A block can be any chunk of
|
||
|
// data, depending on the file format, for example in Ogg/Vorbis it would
|
||
|
// be equivalent to a chunk. Writes the part containing the actual music
|
||
|
// data into `w`.
|
||
|
// `isFirst` is true, if the block read was the first block of a file.
|
||
|
ReadBlock(r io.Reader, w io.Writer) (isFirst bool, err error)
|
||
|
// Potentially returns a filename using format-specific metadata. Usually
|
||
|
// available after the first few blocks of a file were read.
|
||
|
TryGetFilename() (filename string, hasFilename bool)
|
||
|
}
|