/* Interface for reading and writing PCM data Copyright 2018 Ahmet Inan */ #pragma once namespace DSP { template struct WritePCM { virtual void write(const 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 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; }; }