1 /* 2 * Copyright (C) 2002 - David W. Durham 3 * 4 * This file is part of ReZound, an audio editing application. 5 * 6 * ReZound is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published 8 * by the Free Software Foundation; either version 2 of the License, 9 * or (at your option) any later version. 10 * 11 * ReZound is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 19 */ 20 21 #ifndef __FilterActionDialogs_H__ 22 #define __FilterActionDialogs_H__ 23 24 #include "../../config/common.h" 25 #include "fox_compat.h" 26 27 #include "CActionParamDialog.h" 28 29 30 // --- convolution ----------------------- 31 32 class CConvolutionFilterDialog : public CActionParamDialog 33 { 34 public: 35 CConvolutionFilterDialog(FXWindow *mainWindow); ~CConvolutionFilterDialog()36 virtual ~CConvolutionFilterDialog(){} 37 }; 38 39 40 // --- arbitrary FIR filter -------------- 41 42 class CActionParamMapper_arbitraryFIRFilter_freq; 43 class CArbitraryFIRFilterDialog : public CActionParamDialog 44 { 45 FXDECLARE(CArbitraryFIRFilterDialog); 46 public: 47 CArbitraryFIRFilterDialog(FXWindow *mainWindow); ~CArbitraryFIRFilterDialog()48 virtual ~CArbitraryFIRFilterDialog(){} 49 50 long onFrequencyRangeChange(FXObject *sender,FXSelector sel,void *ptr); 51 52 enum 53 { 54 ID_BASE_FREQUENCY=CActionParamDialog::ID_LAST, 55 ID_NUMBER_OF_OCTAVES, 56 ID_LAST 57 }; 58 59 protected: CArbitraryFIRFilterDialog()60 CArbitraryFIRFilterDialog() {} 61 62 CActionParamMapper_arbitraryFIRFilter_freq *freqMapper; 63 }; 64 65 66 // --- morphing arbitrary FIR filter -------------- 67 68 class CMorphingArbitraryFIRFilterDialog : public CActionParamDialog 69 { 70 FXDECLARE(CMorphingArbitraryFIRFilterDialog); 71 public: 72 CMorphingArbitraryFIRFilterDialog(FXWindow *mainWindow); ~CMorphingArbitraryFIRFilterDialog()73 virtual ~CMorphingArbitraryFIRFilterDialog(){} 74 75 long onFrequencyRangeChange(FXObject *sender,FXSelector sel,void *ptr); 76 long onUseLFOCheckBox(FXObject *sender,FXSelector sel,void *ptr); 77 long on1To2Button(FXObject *sender,FXSelector sel,void *ptr); // handles several operations between response1 and response2 78 79 enum 80 { 81 ID_BASE_FREQUENCY=CActionParamDialog::ID_LAST, 82 ID_NUMBER_OF_OCTAVES, 83 ID_USE_LFO_CHECKBOX, 84 ID_COPY_1_TO_2, 85 ID_COPY_2_TO_1, 86 ID_SWAP_1_AND_2, 87 ID_LAST 88 }; 89 90 protected: CMorphingArbitraryFIRFilterDialog()91 CMorphingArbitraryFIRFilterDialog() {} 92 93 // gets called by FXModalDialogBox before the okay button is accepted 94 bool validateOnOkay(); 95 96 const string getExplanation() const; 97 98 CActionParamMapper_arbitraryFIRFilter_freq *freqMapper; 99 }; 100 101 102 // --- single pole lowpass --------------- 103 104 class CSinglePoleLowpassFilterDialog : public CActionParamDialog 105 { 106 public: 107 CSinglePoleLowpassFilterDialog(FXWindow *mainWindow); ~CSinglePoleLowpassFilterDialog()108 virtual ~CSinglePoleLowpassFilterDialog(){} 109 }; 110 111 112 // --- single pole highpass -------------- 113 114 class CSinglePoleHighpassFilterDialog : public CActionParamDialog 115 { 116 public: 117 CSinglePoleHighpassFilterDialog(FXWindow *mainWindow); ~CSinglePoleHighpassFilterDialog()118 virtual ~CSinglePoleHighpassFilterDialog(){} 119 }; 120 121 122 // --- bandpass -------------------------- 123 124 class CBandpassFilterDialog : public CActionParamDialog 125 { 126 public: 127 CBandpassFilterDialog(FXWindow *mainWindow); ~CBandpassFilterDialog()128 virtual ~CBandpassFilterDialog(){} 129 }; 130 131 132 // --- notch ----------------------------- 133 134 class CNotchFilterDialog : public CActionParamDialog 135 { 136 public: 137 CNotchFilterDialog(FXWindow *mainWindow); ~CNotchFilterDialog()138 virtual ~CNotchFilterDialog(){} 139 }; 140 141 142 // --- biquad resonant lowpass ----------- 143 144 class CBiquadResLowpassFilterDialog : public CActionParamDialog 145 { 146 public: 147 CBiquadResLowpassFilterDialog(FXWindow *mainWindow); ~CBiquadResLowpassFilterDialog()148 virtual ~CBiquadResLowpassFilterDialog(){} 149 }; 150 151 // --- biquad resonant highpass ---------- 152 153 class CBiquadResHighpassFilterDialog : public CActionParamDialog 154 { 155 public: 156 CBiquadResHighpassFilterDialog(FXWindow *mainWindow); ~CBiquadResHighpassFilterDialog()157 virtual ~CBiquadResHighpassFilterDialog(){} 158 }; 159 160 // --- biquad resonant bandpass ---------- 161 162 class CBiquadResBandpassFilterDialog : public CActionParamDialog 163 { 164 public: 165 CBiquadResBandpassFilterDialog(FXWindow *mainWindow); ~CBiquadResBandpassFilterDialog()166 virtual ~CBiquadResBandpassFilterDialog(){} 167 }; 168 169 170 171 #endif 172