1 /* SpiralSynth 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_Window.H> 21 #include <FL/Fl_Group.H> 22 #include <FL/Fl_Slider.H> 23 24 #include "GUIBase.h" 25 #include "../SpiralSound/Envelope.h" 26 27 #ifndef ENVGUI 28 #define ENVGUI 29 30 class EnvelopeGUI : public GUIBase 31 { 32 public: 33 EnvelopeGUI(Envelope *o); 34 35 virtual void CreateGUI(int xoff, int yoff, char *name); 36 virtual void UpdateValues(); 37 38 Envelope *m_env; 39 40 private: 41 42 Fl_Group *GUIEnvGroup; 43 Fl_Slider *Attack; 44 Fl_Slider *Decay; 45 Fl_Slider *Sustain; 46 Fl_Slider *Release; 47 Fl_Slider *Volume; 48 49 //// Callbacks //// 50 51 inline void cb_Attack_i(Fl_Slider* o, void* v); 52 static void cb_Attack(Fl_Slider*, void*); 53 inline void cb_Decay_i(Fl_Slider* o, void* v); 54 static void cb_Decay(Fl_Slider* o, void* v); 55 inline void cb_Sustain_i(Fl_Slider* o, void* v); 56 static void cb_Sustain(Fl_Slider* o, void* v); 57 inline void cb_Release_i(Fl_Slider* o, void* v); 58 static void cb_Release(Fl_Slider* o, void* v); 59 inline void cb_Volume_i(Fl_Slider* o, void* v); 60 static void cb_Volume(Fl_Slider* o, void* v); 61 }; 62 63 #endif 64