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