1 /* 2 * Cantata 3 * 4 * Copyright (c) 2011-2020 Craig Drummond <craig.p.drummond@gmail.com> 5 * 6 */ 7 /* This class is a C++/Qt version of input_mpg123.c from libebur128 8 */ 9 10 #ifndef _INPUT_H_ 11 #define _INPUT_H_ 12 13 class QString; 14 15 class Input 16 { 17 public: Input()18 Input() { 19 } ~Input()20 virtual ~Input() { 21 } 22 23 virtual operator bool() const=0; 24 25 virtual size_t totalFrames() const=0; 26 virtual unsigned int channels() const=0; 27 virtual unsigned long sampleRate() const=0; allocateBuffer()28 virtual bool allocateBuffer() { 29 return true; 30 } 31 virtual float * buffer() const=0; 32 virtual bool setChannelMap(int *st) const=0; 33 virtual size_t readFrames()=0; 34 }; 35 36 #endif 37