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