2016-01-06 20:02:06 +00:00
|
|
|
#pragma once
|
2015-09-17 19:47:58 +00:00
|
|
|
|
2016-03-07 20:28:31 +00:00
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
// A mono stream of floating-point samples.
|
2015-09-17 19:47:58 +00:00
|
|
|
class AudioStream {
|
|
|
|
public:
|
2016-03-07 20:28:31 +00:00
|
|
|
virtual ~AudioStream() {}
|
|
|
|
virtual std::unique_ptr<AudioStream> clone(bool reset) = 0;
|
|
|
|
virtual int getSampleRate() = 0;
|
|
|
|
virtual int getSampleCount() = 0;
|
|
|
|
virtual int getSampleIndex() = 0;
|
|
|
|
virtual void seek(int sampleIndex) = 0;
|
|
|
|
bool endOfStream();
|
|
|
|
virtual float readSample() = 0;
|
2015-09-17 19:47:58 +00:00
|
|
|
};
|