Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/ladspa/ladspainstance.h

Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines