Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/engine/enginefilterblock.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           enginefilterblock.h  -  description
00003                              -------------------
00004     begin                : Thu Apr 4 2002
00005     copyright            : (C) 2002 by Tue and Ken Haste Andersen
00006     email                :
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef ENGINEFILTERBLOCK_H
00019 #define ENGINEFILTERBLOCK_H
00020 
00021 #include "engine/engineobject.h"
00022 
00023 class ControlLogpotmeter;
00024 class ControlPotmeter;
00025 class ControlPushButton;
00026 
00027 #define SIZE_NOISE_BUF 40
00028 //#define NOISE_FACTOR 116.415321827e-12 // 1/4 bit of noise (99db SNR)
00029 #define NOISE_FACTOR 0.25              // this is necessary to prevent denormals
00030                                        // from consuming too much CPU resources
00031                                        // and is well below being audible.
00038 class EngineFilterBlock : public EngineObject
00039 {
00040 public:
00041     EngineFilterBlock(const char *group);
00042     ~EngineFilterBlock();
00043     void process(const CSAMPLE *pIn, const CSAMPLE *pOut, const int iBufferSize);
00044 private:
00045         void setFilters(bool forceSetting = false);
00046 
00047     CSAMPLE *m_pTemp1, *m_pTemp2, *m_pTemp3;
00048     EngineObject *low, *band, *high;
00049     ControlLogpotmeter *filterpotLow, *filterpotMid, *filterpotHigh;
00050     ControlPushButton *filterKillLow, *filterKillMid, *filterKillHigh;
00051 
00052         static ControlPotmeter *s_loEqFreq, *s_hiEqFreq;
00053         static ControlPushButton *s_lofiEq;
00054 
00055         int ilowFreq, ihighFreq;
00056         bool blofi;
00057 };
00058 
00059 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines