/** * * Copyright (c) 2013 Pascal Gauthier. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program; if not, write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. */ #ifndef PLUGINPARAM_H_INCLUDED #define PLUGINPARAM_H_INCLUDED #include "../JuceLibraryCode/JuceHeader.h" class DexedAudioProcessor; class Ctrl : public SliderListener, public ButtonListener, public ComboBoxListener { protected: /** * Binded components of the UI */ Slider *slider; Button *button; ComboBox *comboBox; public: String label; Ctrl(String name); void bind(Slider *s); void bind(Button *b); void bind(ComboBox *c); void unbind(); // use this to signal a parameter change to the host void publishValue(float value); /** * Host value is related 0.0 to 1.0 values */ virtual void setValueHost(float f) = 0; virtual float getValueHost() = 0; virtual String getValueDisplay() = 0; virtual void updateComponent() = 0; void comboBoxChanged (ComboBox* combo); void sliderValueChanged (Slider* moved); void buttonClicked (Button* buttonThatWasClicked); /** * Index of this parameter */ int idx; DexedAudioProcessor *parent; }; class CtrlFloat : public Ctrl { float *vPointer; public: CtrlFloat(String name, float *storageValue); void setValueHost(float f); float getValueHost(); String getValueDisplay(); void updateComponent(); }; // CtrlDX is a controller that is related to DX parameters class CtrlDX : public Ctrl { int dxValue; int steps; int dxOffset; int displayValue; public: CtrlDX(String name, int steps, int offset = -1, int displayValue = 0); void setValueHost(float f); float getValueHost(); void publishValue(float value); void setValue(int value); int getValue(); String getValueDisplay(); int getOffset(); void sliderValueChanged (Slider* moved); void comboBoxChanged (ComboBox* combo); void updateComponent(); }; struct OperatorCtrl { ScopedPointer egRate[4]; ScopedPointer egLevel[4]; ScopedPointer level; ScopedPointer opMode; ScopedPointer coarse; ScopedPointer fine; ScopedPointer detune; ScopedPointer sclBrkPt; ScopedPointer sclLeftDepth; ScopedPointer sclRightDepth; ScopedPointer sclLeftCurve; ScopedPointer sclRightCurve; ScopedPointer sclRate; ScopedPointer ampModSens; ScopedPointer velModSens; }; #endif // PLUGINPARAM_H_INCLUDED