1 //
2 //  AudioManager.h
3 //
4 //
5 //  Created by Sarah Denoux on 15/07/13.
6 //  Copyright (c) 2013 GRAME. All rights reserved.
7 //
8 
9 // AudioManager controls one or two specific audio(s) to implement a crossfade audio between 2 dsp.
10 
11 #ifndef _AudioManager_h
12 #define _AudioManager_h
13 
14 #include <string>
15 #include <QObject>
16 
17 #if defined(_WIN32) && !defined(GCC)
18 # pragma warning (disable: 4100)
19 #else
20 # pragma GCC diagnostic ignored "-Wunused-parameter"
21 #endif
22 
23 #include "AudioFactory.h"
24 #include "faust/audio/audio.h"
25 
26 using namespace std;
27 
28 class AudioSettings;
29 
30 class AudioManager : public QObject, public audio
31 {
32     Q_OBJECT
33 
34     public:
35 
36         AudioManager(AudioShutdownCallback cb = NULL, void* arg = NULL){Q_UNUSED(cb);Q_UNUSED(arg);}
~AudioManager()37         virtual ~AudioManager(){}
38 
39         virtual bool initAudio(QString& error, const char* name, bool midi) = 0;
40 
initAudio(QString & error,const char * name,const char * port_name,int numInputs,int numOutputs,bool midi)41         virtual bool initAudio(QString& error, const char* name, const char* port_name, int numInputs, int numOutputs, bool midi)
42             {Q_UNUSED(numInputs); Q_UNUSED(numOutputs); Q_UNUSED(port_name); return initAudio(error, name, midi);}
43 
44         virtual bool setDSP(QString& error, dsp* DSP, const char* port_name) = 0;
45 
46         virtual bool init_FadeAudio(QString& error, const char* name, dsp* DSP) = 0;
47         virtual void start_Fade() = 0;
48         virtual void wait_EndFade() = 0;
49 
connect_Audio(std::string homeFolder)50         virtual void connect_Audio(std::string homeFolder){Q_UNUSED(homeFolder);}
save_Connections(std::string homeFolder)51         virtual void save_Connections(std::string homeFolder){Q_UNUSED(homeFolder);}
52 
getNumInputs()53         virtual int getNumInputs() { return -1; }
getNumOutputs()54         virtual int getNumOutputs() { return -1; }
55 
56     signals:
57 
58         void errorSignal(const char*);
59 
60 };
61 
62 #endif
63