-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheffectbuffer.h
More file actions
62 lines (44 loc) · 1.25 KB
/
effectbuffer.h
File metadata and controls
62 lines (44 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef EFFECTBUFFER_H
#define EFFECTBUFFER_H
#include <QObject>
#include <QIODevice>
QT_BEGIN_NAMESPACE
class Audio;
class Effect;
class EffectMap;
class InPort;
class InputEffect;
class OutPort;
class OutputEffect;
class QtMath;
class QDebug;
class QAudioBuffer;
QT_END_NAMESPACE
class EffectBuffer : public QIODevice
{
Q_OBJECT
public:
EffectBuffer(Audio *parent);
qint64 readData(char* data, qint64 maxlen) override;
qint64 writeData(const char* data, qint64 maxlen) override;
void setEffectMap(EffectMap*);
void addInputEffect(InputEffect* e);
void addOutputEffect(OutputEffect* e);
void deleteInputEffect(InputEffect* e);
void deleteOutputEffect(OutputEffect* e);
QList<InputEffect *> getInputEffects() const;
QList<OutputEffect *> getOutputEffects() const;
EffectMap *getEffectMap() const;
bool runJackAudio();
void stopJackAudio();
private:
QByteArray buffer; //TODO investigate using QAudioBuffer instead. Same for effectBuffer
EffectMap* effectMap;
qint64 bufferUsed;
qint64 bufferCurrent;
//New implementation
QList<InputEffect*> inputEffects;
QList<OutputEffect*> outputEffects;
void applyEffect(char* in, char* out, int readLength);
};
#endif // EFFECTBUFFER_H