mirror of
https://github.com/aicodix/dsp.git
synced 2026-04-27 14:30:36 +00:00
38 lines
661 B
C++
38 lines
661 B
C++
/*
|
|
Interface for reading and writing PCM data
|
|
|
|
Copyright 2018 Ahmet Inan <inan@aicodix.de>
|
|
*/
|
|
|
|
#ifndef PCM_HH
|
|
#define PCM_HH
|
|
|
|
namespace DSP {
|
|
|
|
template <typename TYPE>
|
|
struct WritePCM
|
|
{
|
|
virtual void write(TYPE *, int, int = 1) = 0;
|
|
virtual bool good() = 0;
|
|
virtual void silence(int) = 0;
|
|
virtual int rate() = 0;
|
|
virtual int channels() = 0;
|
|
virtual ~WritePCM() = default;
|
|
};
|
|
|
|
template <typename TYPE>
|
|
struct ReadPCM
|
|
{
|
|
virtual void read(TYPE *, int, int = 1) = 0;
|
|
virtual bool good() = 0;
|
|
virtual void skip(int) = 0;
|
|
virtual int rate() = 0;
|
|
virtual int channels() = 0;
|
|
virtual int frames() { return -1; }
|
|
virtual ~ReadPCM() = default;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|
|
|