1 /*  SpiralPlugin
2  *  Copyleft (C) 2000 David Griffiths <dave@pawfal.org>
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18 
19 #include <FL/Fl.H>
20 #include <FL/Fl_Group.H>
21 #include <FL/Fl_Slider.H>
22 #include <FL/Fl_Tabs.H>
23 #include <FL/Fl_Counter.H>
24 #include "EnvelopePlugin.h"
25 #include "../SpiralPluginGUI.h"
26 
27 #ifndef EnvelopeGUI
28 #define EnvelopeGUI
29 
30 class EnvelopePluginGUI : public SpiralPluginGUI {
31    public:
32       EnvelopePluginGUI(int w, int h, EnvelopePlugin *o,ChannelHandler *ch,const HostInfo *Info);
33       virtual void UpdateValues(SpiralPlugin *o);
34    protected:
35       const std::string GetHelpText(const std::string &loc);
36    private:
37       Fl_Tabs *m_Tabs;
38       Fl_Group *m_CtlGroup, *m_NumGroup;
39       Fl_Slider *m_Thresh, *m_Attack, *m_Decay, *m_Sustain, *m_Release, *m_Volume;
40       Fl_Counter *m_NumThresh, *m_NumAttack, *m_NumDecay, *m_NumSustain, *m_NumRelease, *m_NumVolume;
41       // Slider Callbacks
42       inline void cb_Thresh_i (Fl_Slider* o, void* v);
43       static void cb_Thresh (Fl_Slider* o, void* v);
44       inline void cb_Attack_i (Fl_Slider* o, void* v);
45       static void cb_Attack (Fl_Slider* o, void* v);
46       inline void cb_Decay_i (Fl_Slider* o, void* v);
47       static void cb_Decay (Fl_Slider* o, void* v);
48       inline void cb_Sustain_i (Fl_Slider* o, void* v);
49       static void cb_Sustain (Fl_Slider* o, void* v);
50       inline void cb_Release_i (Fl_Slider* o, void* v);
51       static void cb_Release (Fl_Slider* o, void* v);
52       inline void cb_Volume_i (Fl_Slider* o, void* v);
53       static void cb_Volume (Fl_Slider* o, void* v);
54       // Counter Callbacks
55       inline void cb_NumThresh_i (Fl_Counter* o, void* v);
56       static void cb_NumThresh (Fl_Counter* o, void* v);
57       inline void cb_NumAttack_i (Fl_Counter* o, void* v);
58       static void cb_NumAttack (Fl_Counter* o, void* v);
59       inline void cb_NumDecay_i (Fl_Counter* o, void* v);
60       static void cb_NumDecay (Fl_Counter* o, void* v);
61       inline void cb_NumSustain_i (Fl_Counter* o, void* v);
62       static void cb_NumSustain (Fl_Counter* o, void* v);
63       inline void cb_NumRelease_i (Fl_Counter* o, void* v);
64       static void cb_NumRelease (Fl_Counter* o, void* v);
65       inline void cb_NumVolume_i (Fl_Counter* o, void* v);
66       static void cb_NumVolume (Fl_Counter* o, void* v);
67 };
68 
69 #endif
70