![]() |
Mixxx
|
00001 /*************************************************************************** 00002 * * 00003 * This program is free software; you can redistribute it and/or modify * 00004 * it under the terms of the GNU General Public License as published by * 00005 * the Free Software Foundation; either version 2 of the License, or * 00006 * (at your option) any later version. * 00007 * * 00008 ***************************************************************************/ 00009 00010 #ifndef LADSPAINSTANCE_H 00011 #define LADSPAINSTANCE_H 00012 00013 #include <QtCore> 00014 00015 #include <ladspa.h> 00016 00017 #include <defs.h> 00018 #include <controlobject.h> 00019 #include <controlobjectthreadmain.h> 00020 00021 class LADSPAInstance 00022 { 00023 public: 00024 LADSPAInstance(const LADSPA_Descriptor * descriptor, int slot); 00025 virtual ~LADSPAInstance(); 00026 00027 virtual void process(const CSAMPLE * pInLeft, const CSAMPLE * pInRight, const CSAMPLE * pOutLeft, const CSAMPLE * pOutRight, const int iBufferSize) = 0; 00028 virtual void connect(unsigned long port, LADSPA_Data * buffer) = 0; 00029 00030 const LADSPA_Descriptor * getDescriptor(); 00031 int getSampleRate(); 00032 bool isInplaceBroken(); 00033 bool isEnabled(); 00034 float getWet(); 00035 00036 bool remove; 00037 00038 00039 private: 00040 const LADSPA_Descriptor * m_pDescriptor; 00041 static ControlObjectThreadMain *m_pControlObjectSampleRate; 00042 ControlObject *m_pControlObjectEnable; 00043 ControlObject *m_pControlObjectDryWet; 00044 }; 00045 00046 typedef QList<LADSPAInstance *> LADSPAInstanceList; 00047 typedef QLinkedList<LADSPAInstance *> LADSPAInstanceLinkedList; 00048 typedef QVector<LADSPAInstance *> LADSPAInstanceVector; 00049 00050 #endif