![]() |
Mixxx
|
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