From 3136ef52eb2c2941981e325e252a7cc9a94ea3b4 Mon Sep 17 00:00:00 2001 From: edgeeffect Date: Sat, 26 Apr 2003 07:39:17 +0000 Subject: [PATCH] Lot's of GUI updates - New Echo/Delay GUI - New Echo Functionality --- SpiralSound/Plugins/DelayPlugin/DelayPlugin.C | 33 ++- .../Plugins/DelayPlugin/DelayPluginGUI.C | 159 +++++++++--- .../Plugins/DelayPlugin/DelayPluginGUI.h | 54 ++-- SpiralSound/Plugins/EchoPlugin/EchoPlugin.C | 118 ++++----- SpiralSound/Plugins/EchoPlugin/EchoPlugin.h | 31 ++- .../Plugins/EchoPlugin/EchoPluginGUI.C | 231 +++++++++++------- .../Plugins/EchoPlugin/EchoPluginGUI.h | 67 +++-- SpiralSound/Plugins/EchoPlugin/Makefile.in | 24 +- .../Plugins/LADSPAPlugin/LADSPAPluginGUI.C | 28 ++- .../Plugins/LADSPAPlugin/LADSPAPluginGUI.h | 9 +- SpiralSound/Plugins/LADSPAPlugin/Makefile.in | 13 +- SpiralSound/Plugins/LFOPlugin/LFOPlugin.C | 4 +- SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C | 215 ++++++++-------- SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h | 57 ++--- SpiralSound/Plugins/LFOPlugin/Makefile.in | 26 +- .../Plugins/MatrixPlugin/MatrixPluginGUI.C | 2 +- .../Plugins/MeterPlugin/MeterPluginGUI.C | 53 ++-- .../Plugins/MeterPlugin/MeterPluginGUI.h | 8 +- .../MixSwitchPlugin/MixSwitchPluginGUI.C | 6 + .../Plugins/MixerPlugin/MixerPluginGUI.C | 7 + SpiralSound/Plugins/NoisePlugin/Makefile.in | 42 ++-- .../Plugins/NoisePlugin/NoisePluginGUI.C | 45 ++-- .../Plugins/NoisePlugin/NoisePluginGUI.h | 33 +-- .../SplitSwitchPlugin/SplitSwitchPluginGUI.C | 6 + 24 files changed, 724 insertions(+), 547 deletions(-) diff --git a/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C b/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C index c59473d..53faf8d 100644 --- a/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C +++ b/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C @@ -54,14 +54,13 @@ m_WriteHeadPos(0) { m_PluginInfo.Name="Delay"; m_PluginInfo.Width=120; - m_PluginInfo.Height=110; + m_PluginInfo.Height=112; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; - m_PluginInfo.PortTips.push_back("Input"); - m_PluginInfo.PortTips.push_back("Delay CV"); - m_PluginInfo.PortTips.push_back("ReadHead CV"); + m_PluginInfo.PortTips.push_back("Input"); + m_PluginInfo.PortTips.push_back("Delay CV"); + m_PluginInfo.PortTips.push_back("ReadHead CV"); m_PluginInfo.PortTips.push_back("Output"); - m_AudioCH->Register("Delay",&m_Delay); m_AudioCH->Register("Mix",&m_Mix); } @@ -71,8 +70,8 @@ DelayPlugin::~DelayPlugin() } PluginInfo &DelayPlugin::Initialise(const HostInfo *Host) -{ - PluginInfo& Info = SpiralPlugin::Initialise(Host); +{ + PluginInfo& Info = SpiralPlugin::Initialise(Host); m_Buffer.Allocate((int)(m_HostInfo->SAMPLERATE*MAX_DELAY)); return Info; } @@ -87,25 +86,25 @@ SpiralGUIType *DelayPlugin::CreateGUI() void DelayPlugin::Execute() { int Delay; - + for (int n=0; nBUFSIZE; n++) { Delay=(int)((m_Delay+GetInput(1,n)*0.5f)*(float)m_HostInfo->SAMPLERATE); - - if (Delay>=MAX_DELAY*m_HostInfo->SAMPLERATE) + + if (Delay>=MAX_DELAY*m_HostInfo->SAMPLERATE) { - Delay=(int)(MAX_DELAY*m_HostInfo->SAMPLERATE)-1; + Delay=(int)(MAX_DELAY*m_HostInfo->SAMPLERATE)-1; } - + if (Delay<0) Delay=0; - - if (m_ReadHeadPos<0 || m_ReadHeadPos>=MAX_DELAY*m_HostInfo->SAMPLERATE) + + if (m_ReadHeadPos<0 || m_ReadHeadPos>=MAX_DELAY*m_HostInfo->SAMPLERATE) cerr<<"read agh! "<=MAX_DELAY*m_HostInfo->SAMPLERATE) + if (m_WriteHeadPos<0 || m_WriteHeadPos>=MAX_DELAY*m_HostInfo->SAMPLERATE) cerr<<"write agh! "< @@ -26,50 +26,135 @@ static const int GUIBG2_COLOUR = 145; //////////////////////////////////////////// -DelayPluginGUI::DelayPluginGUI(int w, int h,DelayPlugin *o,ChannelHandler *ch,const HostInfo *Info) : -SpiralPluginGUI(w,h,o,ch) -{ - m_Delay = new Fl_Slider(15, 20, 20, 70, "Delay"); - m_Delay->type(4); - m_Delay->selection_color(GUI_COLOUR); - m_Delay->labelsize(10); - m_Delay->maximum(1); - m_Delay->step(0.001); - m_Delay->value(0.5); - m_Delay->callback((Fl_Callback*)cb_Delay); - - m_Mix = new Fl_Knob(58, 28, 45, 45, "Mix"); - m_Mix->color(GUI_COLOUR); - m_Mix->type(Fl_Knob::DOTLIN); - m_Mix->labelsize(10); - m_Mix->maximum(1); - m_Mix->step(0.01); - m_Mix->value(0); - m_Mix->callback((Fl_Callback*)cb_Mix); - - end(); +DelayPluginGUI::DelayPluginGUI(int w, int h, DelayPlugin *o, ChannelHandler *ch, const HostInfo *Info) : +SpiralPluginGUI (w, h, o, ch) +{ + m_TheTabs = new Fl_Tabs (2, 14, 118, 90, ""); + m_TheTabs->box (FL_PLASTIC_DOWN_BOX); + m_TheTabs->color (GUI_COLOUR); + add (m_TheTabs); + + m_CtlGroup = new Fl_Group (2, 28, 118, 66, "Control"); + m_CtlGroup->labelsize (10); + m_TheTabs->add (m_CtlGroup); + + m_Delay = new Fl_Knob (12, 38, 45, 45, "Delay"); + m_Delay->user_data ((void*)(this)); + m_Delay->color (GUI_COLOUR); + m_Delay->type (Fl_Knob::DOTLIN); + m_Delay->labelsize (10); + m_Delay->minimum (0); + m_Delay->maximum (1); + m_Delay->step (0.001); + m_Delay->value (0.5); + m_Delay->callback ((Fl_Callback*)cb_Delay); + m_CtlGroup->add (m_Delay); + + m_Mix = new Fl_Knob (66, 38, 45, 45, "Mix"); + m_Mix->user_data ((void*)(this)); + m_Mix->color (GUI_COLOUR); + m_Mix->type (Fl_Knob::DOTLIN); + m_Mix->labelsize (10); + m_Mix->maximum (1); + m_Mix->step (0.01); + m_Mix->value (0); + m_Mix->callback ((Fl_Callback*)cb_Mix); + m_CtlGroup->add (m_Mix); + + m_NumGroup = new Fl_Group (2, 28, 118, 66, "Numbers"); + m_NumGroup->labelsize (10); + m_TheTabs->add (m_NumGroup); + + m_NumDelay = new Fl_Counter (6, 36, 110, 20, "Delay (secs)"); + m_NumDelay->user_data ((void*)(this)); + m_NumDelay->labelsize (10); + m_NumDelay->box (FL_PLASTIC_UP_BOX); + m_NumDelay->color (GUI_COLOUR); + m_NumDelay->maximum (m_Delay->maximum()); + m_NumDelay->minimum (m_Delay->minimum()); + m_NumDelay->step (m_Delay->step()); + m_NumDelay->lstep (0.1); + m_NumDelay->value (m_Delay->value()); + m_NumDelay->callback ((Fl_Callback*)cb_NumDelay); + m_NumGroup->add (m_NumDelay); + + m_NumMix = new Fl_Counter (6, 70, 110, 20, "Mix"); + m_NumMix->user_data ((void*)(this)); + m_NumMix->labelsize (10); + m_NumMix->box (FL_PLASTIC_UP_BOX); + m_NumMix->color (GUI_COLOUR); + m_NumMix->maximum (m_Mix->maximum()); + m_NumMix->minimum (m_Mix->minimum()); + m_NumMix->step (m_Mix->step()); + m_NumMix->lstep (0.1); + m_NumMix->value (m_Mix->value()); + m_NumMix->callback ((Fl_Callback*)cb_NumMix); + m_NumGroup->add (m_NumMix); + + end(); } void DelayPluginGUI::UpdateValues(SpiralPlugin *o) { - DelayPlugin *Plugin = (DelayPlugin*)o; - - m_Delay->value(Plugin->GetDelay()-5.0f); - m_Mix->value(Plugin->GetMix()); + float value; + DelayPlugin *Plugin = (DelayPlugin*)o; + + value = Plugin->GetDelay(); + m_Delay->value (value); + m_NumDelay->value (value); + + value = Plugin->GetMix(); + m_Mix->value (value); + m_NumMix->value (value); +} + +inline void DelayPluginGUI::cb_Delay_i (Fl_Knob* o, void* v) +{ + float value = o->value(); + m_NumDelay->value (value); + m_GUICH->Set ("Delay", value); } -inline void DelayPluginGUI::cb_Delay_i(Fl_Slider* o, void* v) -{ - float value=1.0f-o->value(); - m_GUICH->Set("Delay",value); +void DelayPluginGUI::cb_Delay (Fl_Knob* o, void* v) +{ + ((DelayPluginGUI*)(o->user_data()))->cb_Delay_i (o, v); } -void DelayPluginGUI::cb_Delay(Fl_Slider* o, void* v) -{ ((DelayPluginGUI*)(o->parent()))->cb_Delay_i(o,v); } -inline void DelayPluginGUI::cb_Mix_i(Fl_Knob* o, void* v) -{ m_GUICH->Set("Mix",(float)o->value()); } -void DelayPluginGUI::cb_Mix(Fl_Knob* o, void* v) -{ ((DelayPluginGUI*)(o->parent()))->cb_Mix_i(o,v); } +inline void DelayPluginGUI::cb_Mix_i (Fl_Knob* o, void* v) +{ + float value = o->value(); + m_NumMix->value (value); + m_GUICH->Set ("Mix", value); +} + +void DelayPluginGUI::cb_Mix (Fl_Knob* o, void* v) +{ + ((DelayPluginGUI*)(o->user_data()))->cb_Mix_i (o, v); +} + +inline void DelayPluginGUI::cb_NumDelay_i (Fl_Counter* o, void* v) +{ + float value = o->value(); + m_Delay->value (value); + m_GUICH->Set ("Delay", value); +} + +void DelayPluginGUI::cb_NumDelay (Fl_Counter* o, void* v) +{ + ((DelayPluginGUI*)(o->user_data()))->cb_NumDelay_i (o, v); +} + +inline void DelayPluginGUI::cb_NumMix_i (Fl_Counter* o, void* v) +{ + float value = o->value(); + m_Mix->value (value); + m_GUICH->Set ("Mix", value); +} + +void DelayPluginGUI::cb_NumMix (Fl_Counter* o, void* v) +{ + ((DelayPluginGUI*)(o->user_data()))->cb_NumMix_i (o, v); +} const string DelayPluginGUI::GetHelpText(const string &loc){ return string("") diff --git a/SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h b/SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h index 0f279cc..f780fb2 100644 --- a/SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h +++ b/SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h @@ -14,43 +14,41 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #include #include #include -#include - -#include "DelayPlugin.h" -#include "../SpiralPluginGUI.h" +#include +#include #include "../Widgets/Fl_Knob.H" +#include "../SpiralPluginGUI.h" +#include "DelayPlugin.h" -#ifndef FilterGUI -#define FilterGUI - +#ifndef DelayGUI +#define DelayGUI class DelayPluginGUI : public SpiralPluginGUI { -public: - DelayPluginGUI(int w, int h, DelayPlugin *o,ChannelHandler *ch,const HostInfo *Info); - - virtual void UpdateValues(SpiralPlugin *o); - -protected: - const string GetHelpText(const string &loc); - -private: - - Fl_Slider *m_Delay; - Fl_Knob *m_Mix; - - //// Callbacks //// - - inline void cb_Delay_i(Fl_Slider* o, void* v); - static void cb_Delay(Fl_Slider*, void*); - inline void cb_Mix_i(Fl_Knob* o, void* v); - static void cb_Mix(Fl_Knob* o, void* v); - + public: + DelayPluginGUI (int w, int h, DelayPlugin *o, ChannelHandler *ch, const HostInfo *Info); + virtual void UpdateValues (SpiralPlugin *o); + protected: + const string GetHelpText (const string &loc); + private: + Fl_Tabs *m_TheTabs; + Fl_Group *m_CtlGroup, *m_NumGroup; + Fl_Knob *m_Delay, *m_Mix; + Fl_Counter *m_NumDelay, *m_NumMix; + //// Callbacks //// + inline void cb_Delay_i (Fl_Knob* o, void* v); + static void cb_Delay (Fl_Knob*, void* v); + inline void cb_Mix_i (Fl_Knob* o, void* v); + static void cb_Mix (Fl_Knob* o, void* v); + inline void cb_NumDelay_i (Fl_Counter* o, void* v); + static void cb_NumDelay (Fl_Counter*, void* v); + inline void cb_NumMix_i (Fl_Counter* o, void* v); + static void cb_NumMix (Fl_Counter* o, void* v); }; #endif diff --git a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C index 5f14f92..d3c813b 100644 --- a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C +++ b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C @@ -14,7 +14,7 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #include "EchoPlugin.h" #include "EchoPluginGUI.h" #include @@ -47,85 +47,85 @@ string SpiralPlugin_GetGroupName() /////////////////////////////////////////////////////// EchoPlugin::EchoPlugin() : -m_Delay(0.75), -m_Feedback(0.4), -m_HeadPos(0) +m_Delay (0.75), +m_Feedback (0.4), +m_Bounce (false), +m_HeadPos (0), +m_Buf0 (0), +m_Buf1 (1) { - m_PluginInfo.Name="Echo"; - m_PluginInfo.Width=120; - m_PluginInfo.Height=110; - m_PluginInfo.NumInputs=3; - m_PluginInfo.NumOutputs=1; - m_PluginInfo.PortTips.push_back("Input"); - m_PluginInfo.PortTips.push_back("Delay CV"); - m_PluginInfo.PortTips.push_back("Feedback CV"); - m_PluginInfo.PortTips.push_back("Output"); - - m_AudioCH->Register("Delay",&m_Delay); - m_AudioCH->Register("Feedback",&m_Feedback); + m_Version = 2; + m_PluginInfo.Name = "Echo"; + m_PluginInfo.Width = 120; + m_PluginInfo.Height = 132; + m_PluginInfo.NumInputs = 3; + m_PluginInfo.NumOutputs = 2; + m_PluginInfo.PortTips.push_back ("Input"); + m_PluginInfo.PortTips.push_back ("Delay CV"); + m_PluginInfo.PortTips.push_back ("Feedback CV"); + m_PluginInfo.PortTips.push_back ("Left/Mono Out"); + m_PluginInfo.PortTips.push_back ("Right Out"); + m_AudioCH->Register ("Delay", &m_Delay); + m_AudioCH->Register ("Feedback", &m_Feedback); + m_AudioCH->Register ("Bounce", &m_Bounce); } EchoPlugin::~EchoPlugin() { } -PluginInfo &EchoPlugin::Initialise(const HostInfo *Host) -{ - PluginInfo& Info = SpiralPlugin::Initialise(Host); - m_Buffer.Allocate((int)(m_HostInfo->SAMPLERATE*MAX_DELAY)); +PluginInfo &EchoPlugin::Initialise (const HostInfo *Host) +{ + PluginInfo& Info = SpiralPlugin::Initialise (Host); + m_Buffer[0].Allocate ((int)(m_HostInfo->SAMPLERATE * MAX_DELAY)); + m_Buffer[1].Allocate ((int)(m_HostInfo->SAMPLERATE * MAX_DELAY)); return Info; } SpiralGUIType *EchoPlugin::CreateGUI() { - return new EchoPluginGUI(m_PluginInfo.Width, - m_PluginInfo.Height, - this,m_AudioCH,m_HostInfo); + return new EchoPluginGUI (m_PluginInfo.Width, m_PluginInfo.Height, this, m_AudioCH, m_HostInfo); } void EchoPlugin::Execute() { - float Delay; - - for (int n=0; nBUFSIZE; n++) - { - Delay=(m_Delay+GetInput(1,n)*0.5)*(float)m_HostInfo->SAMPLERATE-1; - - if (Delay>=MAX_DELAY*m_HostInfo->SAMPLERATE) - { - Delay=(MAX_DELAY*m_HostInfo->SAMPLERATE)-1; - } - - if (Delay<0) Delay=0; - - if (m_HeadPos>Delay) - { - m_HeadPos=0; - } - - // Write to the buffer - m_Buffer.Set(m_HeadPos,GetInput(0,n)+(m_Buffer[m_HeadPos]*(m_Feedback+GetInput(2,n)))); - - // Read from the buffer - SetOutput(0,n,m_Buffer[m_HeadPos]); - - m_HeadPos++; - } - -} - -void EchoPlugin::Randomise() -{ + float Delay; + for (int n=0; nBUFSIZE; n++) { + Delay=( m_Delay+GetInput (1,n)*0.5 ) * (float)m_HostInfo->SAMPLERATE-1; + if (Delay >= MAX_DELAY*m_HostInfo->SAMPLERATE) + Delay = (MAX_DELAY*m_HostInfo->SAMPLERATE)-1; + if (Delay<0) Delay=0; + if (m_HeadPos>Delay) m_HeadPos=0; + if (m_Bounce && m_HeadPos==0) { + int c=m_Buf0; + m_Buf0=m_Buf1; + m_Buf1=c; + } + // Write to the buffer + m_Buffer[m_Buf0].Set (m_HeadPos, GetInput (0,n)+(m_Buffer[m_Buf0][m_HeadPos]*(m_Feedback+GetInput (2,n)))); + if (!m_Bounce) m_Buffer[m_Buf1].Set (m_HeadPos, 0); + // Read from the buffer + SetOutput(0, n, m_Buffer[m_Buf0][m_HeadPos]); + SetOutput(1, n, m_Buffer[m_Buf1][m_HeadPos]); + m_HeadPos++; + } + } - + +//void EchoPlugin::Randomise() +//{ +//} + void EchoPlugin::StreamOut(ostream &s) { - s<>version; - s>>m_Delay>>m_Feedback; + s >> version; + s >> m_Delay >> m_Feedback; + if (version>1) s >> m_Bounce; else m_Bounce = false; } + diff --git a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.h b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.h index a9deac6..71a8cc4 100644 --- a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.h +++ b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.h @@ -24,31 +24,28 @@ class EchoPlugin : public SpiralPlugin { -public: + public: EchoPlugin(); virtual ~EchoPlugin(); - - virtual PluginInfo &Initialise(const HostInfo *Host); + virtual PluginInfo &Initialise (const HostInfo *Host); virtual SpiralGUIType *CreateGUI(); virtual void Execute(); - virtual void StreamOut(ostream &s); - virtual void StreamIn(istream &s); - - float GetDelay() { return m_Delay; } + virtual void StreamOut (ostream &s); + virtual void StreamIn (istream &s); + float GetDelay() { return m_Delay; } float GetFeedback() { return m_Feedback; } - - void Randomise(); - -private: - float m_Delay; - float m_Feedback; - - int m_HeadPos; - Sample m_Buffer; - + bool GetBounce () { return m_Bounce; } + //void Randomise(); + private: + float m_Delay, m_Feedback; + bool m_Bounce; + int m_HeadPos, m_Buf0, m_Buf1; + //Sample m_Buffer1, m_Buffer2; + Sample m_Buffer[2]; friend istream &operator>>(istream &s, EchoPlugin &o); friend ostream &operator<<(ostream &s, EchoPlugin &o); }; + istream &operator>>(istream &s, EchoPlugin &o); ostream &operator<<(ostream &s, EchoPlugin &o); diff --git a/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C b/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C index ae2759f..df48fdb 100644 --- a/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C +++ b/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C @@ -14,7 +14,7 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #include "EchoPluginGUI.h" #include @@ -26,117 +26,158 @@ static const int GUIBG2_COLOUR = 145; //////////////////////////////////////////// -EchoPluginGUI::EchoPluginGUI(int w, int h,EchoPlugin *o,ChannelHandler *ch,const HostInfo *Info) : -SpiralPluginGUI(w,h,o,ch) -{ - m_Delay = new Fl_Slider(15, 20, 20, 70, "Delay"); - m_Delay->type(4); - m_Delay->selection_color(GUI_COLOUR); - m_Delay->labelsize(10); - m_Delay->maximum(1); - m_Delay->step(0.001); - m_Delay->value(0.5); - m_Delay->callback((Fl_Callback*)cb_Delay); - - m_Feedback = new Fl_Slider(75, 20, 20, 70, "Feedback"); - m_Feedback->type(4); - m_Feedback->selection_color(GUI_COLOUR); - m_Feedback->labelsize(10); - m_Feedback->maximum(1.1); - m_Feedback->step(0.01); - m_Feedback->value(0.4); - m_Feedback->callback((Fl_Callback*)cb_Feedback); - - m_pop = new Fl_Button(1,h-14, 13, 13, "@>"); - m_pop->type(1); - m_pop->box(FL_FLAT_BOX); - m_pop->down_box(FL_FLAT_BOX); - m_pop->labeltype(FL_SYMBOL_LABEL); - m_pop->labelsize(10); - m_pop->labelcolor(25); - m_pop->callback((Fl_Callback*)cb_pop); - - m_out_delay = new Fl_Output(50, h+5, 55, 15, "Delay"); - m_out_delay->box(FL_ENGRAVED_BOX); - m_out_delay->color(16); - m_out_delay->labelsize(10); - m_out_delay->textsize(10); - m_out_delay->hide(); - m_out_delay->set_output(); - - m_out_feedback = new Fl_Output(50, h+22, 55, 15, "Feedback"); - m_out_feedback->box(FL_ENGRAVED_BOX); - m_out_feedback->color(16); - m_out_feedback->labelsize(10); - m_out_feedback->textsize(10); - m_out_feedback->hide(); - m_out_feedback->set_output(); - - end(); -} +EchoPluginGUI::EchoPluginGUI(int w, int h, EchoPlugin *o, ChannelHandler *ch, const HostInfo *Info) : +SpiralPluginGUI (w, h, o, ch) +{ + m_TheTabs = new Fl_Tabs (2, 14, 118, 90, ""); + m_TheTabs->box (FL_PLASTIC_DOWN_BOX); + m_TheTabs->color (GUI_COLOUR); + add (m_TheTabs); + + m_CtlGroup = new Fl_Group (2, 28, 118, 66, "Control"); + m_CtlGroup->labelsize (10); + m_TheTabs->add (m_CtlGroup); + + m_Delay = new Fl_Knob (12, 38, 45, 45, "Delay"); + m_Delay->user_data ((void*)(this)); + m_Delay->color (GUI_COLOUR); + m_Delay->type (Fl_Knob::DOTLIN); + m_Delay->labelsize (10); + m_Delay->minimum (0); + m_Delay->maximum (1); + m_Delay->step (0.001); + m_Delay->value (0.5); + m_Delay->callback ((Fl_Callback*)cb_Delay); + m_CtlGroup->add (m_Delay); + + m_Feedback = new Fl_Knob (66, 38, 45, 45, "Feedback"); + m_Feedback->user_data ((void*)(this)); + m_Feedback->color (GUI_COLOUR); + m_Feedback->type (Fl_Knob::DOTLIN); + m_Feedback->labelsize (10); + m_Feedback->maximum (1.1); + m_Feedback->step (0.01); + m_Feedback->value (0.4); + m_Feedback->callback ((Fl_Callback*)cb_Feedback); + m_CtlGroup->add (m_Feedback); -extern "C" int sprintf(char *,const char *,...); + m_NumGroup = new Fl_Group (2, 28, 118, 66, "Numbers"); + m_NumGroup->labelsize (10); + m_TheTabs->add (m_NumGroup); -void EchoPluginGUI::UpdateValues(SpiralPlugin *o) + m_NumDelay = new Fl_Counter (6, 36, 110, 20, "Delay (secs)"); + m_NumDelay->user_data ((void*)(this)); + m_NumDelay->labelsize (10); + m_NumDelay->box (FL_PLASTIC_UP_BOX); + m_NumDelay->color (GUI_COLOUR); + m_NumDelay->maximum (m_Delay->maximum()); + m_NumDelay->minimum (m_Delay->minimum()); + m_NumDelay->step (m_Delay->step()); + m_NumDelay->lstep (0.1); + m_NumDelay->value (m_Delay->value()); + m_NumDelay->callback ((Fl_Callback*)cb_NumDelay); + m_NumGroup->add (m_NumDelay); + + m_NumFeedback = new Fl_Counter (6, 70, 110, 20, "Feedback"); + m_NumFeedback->user_data ((void*)(this)); + m_NumFeedback->labelsize (10); + m_NumFeedback->box (FL_PLASTIC_UP_BOX); + m_NumFeedback->color (GUI_COLOUR); + m_NumFeedback->maximum (m_Feedback->maximum()); + m_NumFeedback->minimum (m_Feedback->minimum()); + m_NumFeedback->step (m_Feedback->step()); + m_NumFeedback->lstep (0.1); + m_NumFeedback->value (m_Feedback->value()); + m_NumFeedback->callback ((Fl_Callback*)cb_NumFeedback); + m_NumGroup->add (m_NumFeedback); + + m_Bounce = new Fl_LED_Button (62, 106, 23, 23, "Bounce"); + m_Bounce->labelsize (10); + m_Bounce->callback ((Fl_Callback*)cb_Bounce); + add (m_Bounce); + + end(); +} + +void EchoPluginGUI::UpdateValues (SpiralPlugin *o) { EchoPlugin *Plugin = (EchoPlugin*)o; - - m_Delay->value(1.0f-Plugin->GetDelay()); - m_Feedback->value(1.1f-Plugin->GetFeedback()); - char str[10]; - sprintf(str,"%5.3f s", Plugin->GetDelay()); - m_out_delay->value(str); - sprintf(str,"%5.1f %%", 100*Plugin->GetFeedback()); - m_out_feedback->value(str); + m_Delay->value (Plugin->GetDelay()); + m_NumDelay->value (m_Delay->value()); + m_Feedback->value (Plugin->GetFeedback()); + m_NumFeedback->value (m_Feedback->value()); + m_Bounce->value (Plugin->GetBounce()); +} + +// Button Callbacks + +inline void EchoPluginGUI::cb_Bounce_i (Fl_LED_Button* o, void* v) +{ + m_GUICH->Set ("Bounce", o->value()); +} + +void EchoPluginGUI::cb_Bounce (Fl_LED_Button* o, void* v) +{ + ((EchoPluginGUI*)(o->parent()))->cb_Bounce_i (o, v); } -inline void EchoPluginGUI::cb_Delay_i(Fl_Slider* o, void* v) +// Knob Callbacks + +inline void EchoPluginGUI::cb_Delay_i (Fl_Knob* o, void* v) { -char str[10]; -float value=1.0f-o->value(); - m_GUICH->Set("Delay",value); - sprintf(str,"%5.3f s", value); - m_out_delay->value(str); + float value = o->value(); + m_NumDelay->value (value); + m_GUICH->Set ("Delay", value); } -void EchoPluginGUI::cb_Delay(Fl_Slider* o, void* v) -{ ((EchoPluginGUI*)(o->parent()))->cb_Delay_i(o,v); } +void EchoPluginGUI::cb_Delay (Fl_Knob* o, void* v) +{ + ((EchoPluginGUI*)(o->user_data()))->cb_Delay_i (o, v); +} -inline void EchoPluginGUI::cb_Feedback_i(Fl_Slider* o, void* v) +inline void EchoPluginGUI::cb_Feedback_i(Fl_Knob* o, void* v) { -char str[10]; - m_GUICH->Set("Feedback",(float)(1.1f-o->value())); - sprintf(str,"%5.1f %%", 100*(1.1f-o->value())); - m_out_feedback->value(str); + float value = o->value(); + m_NumFeedback->value (value); + m_GUICH->Set ("Feedback", value); } - -void EchoPluginGUI::cb_Feedback(Fl_Slider* o, void* v) -{ ((EchoPluginGUI*)(o->parent()))->cb_Feedback_i(o,v); } - -inline void EchoPluginGUI::cb_pop_i(Fl_Button *o, void*) { - if (o->value()) - { - o->label("@2>"); - m_out_delay->show(); - m_out_feedback->show(); - redraw(); - } - else - { - o->label("@>"); - m_out_delay->hide(); - m_out_feedback->hide(); - redraw(); - parent()->redraw(); - } + +void EchoPluginGUI::cb_Feedback(Fl_Knob* o, void* v) +{ + ((EchoPluginGUI*)(o->user_data()))->cb_Feedback_i(o,v); +} + +// Counter Callbacks + +inline void EchoPluginGUI::cb_NumDelay_i (Fl_Counter* o, void* v) +{ + float value = o->value(); + m_NumDelay->value (value); + m_GUICH->Set ("Delay", value); } -void EchoPluginGUI::cb_pop(Fl_Button* o, void* v) { - ((EchoPluginGUI*)(o->parent()))->cb_pop_i(o,v); + +void EchoPluginGUI::cb_NumDelay (Fl_Counter* o, void* v) +{ + ((EchoPluginGUI*)(o->user_data()))->cb_NumDelay_i (o, v); +} + +inline void EchoPluginGUI::cb_NumFeedback_i(Fl_Counter* o, void* v) +{ + float value = o->value(); + m_Feedback->value (value); + m_GUICH->Set ("Feedback", value); +} + +void EchoPluginGUI::cb_NumFeedback(Fl_Counter* o, void* v) +{ + ((EchoPluginGUI*)(o->user_data()))->cb_NumFeedback_i (o, v); } const string EchoPluginGUI::GetHelpText(const string &loc){ return string("") + "This plugin is a fully operational delay with feedback\n" + "- providing a no-frills echo effect. The delay and\n" - + "feedback controls can be modulated via CV inputs.\n"; + + "feedback controls can be modulated via CV inputs.\n\n" + + "Bounce mode makes the echo bounce to-and-fro between\n" + + "the 2 (stereo) outputs.\n"; } diff --git a/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h b/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h index 0acdb5c..cc59d21 100644 --- a/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h +++ b/SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h @@ -14,50 +14,45 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ + +#ifndef EchoGUI +#define EchoGUI #include #include #include -#include -#include -#include -#include - -#include "EchoPlugin.h" -#include "../SpiralPluginGUI.h" +#include +#include #include "../Widgets/Fl_Knob.H" - -#ifndef FilterGUI -#define FilterGUI - +#include "../Widgets/Fl_LED_Button.H" +#include "../SpiralPluginGUI.h" +#include "EchoPlugin.h" class EchoPluginGUI : public SpiralPluginGUI { -public: - EchoPluginGUI(int w, int h, EchoPlugin *o,ChannelHandler *ch,const HostInfo *Info); - - virtual void UpdateValues(SpiralPlugin *o); - -protected: - const string GetHelpText(const string &loc); - -private: - - Fl_Slider *m_Delay; - Fl_Slider *m_Feedback; - Fl_Button *m_pop; - Fl_Output *m_out_delay; - Fl_Output *m_out_feedback; - - //// Callbacks //// - - inline void cb_Delay_i(Fl_Slider* o, void* v); - static void cb_Delay(Fl_Slider*, void*); - inline void cb_Feedback_i(Fl_Slider* o, void* v); - static void cb_Feedback(Fl_Slider* o, void* v); - inline void cb_pop_i(Fl_Button* o, void*); - static void cb_pop(Fl_Button* o, void*); + public: + EchoPluginGUI (int w, int h, EchoPlugin *o, ChannelHandler *ch, const HostInfo *Info); + virtual void UpdateValues (SpiralPlugin *o); + protected: + const string GetHelpText (const string &loc); + private: + Fl_Tabs *m_TheTabs; + Fl_Group *m_CtlGroup, *m_NumGroup; + Fl_Knob *m_Delay, *m_Feedback; + Fl_Counter *m_NumDelay, *m_NumFeedback; + Fl_LED_Button *m_Bounce; + //// Callbacks //// + inline void cb_Delay_i (Fl_Knob* o, void* v); + static void cb_Delay (Fl_Knob* o, void* v); + inline void cb_Feedback_i (Fl_Knob* o, void* v); + static void cb_Feedback (Fl_Knob* o, void* v); + inline void cb_NumDelay_i (Fl_Counter* o, void* v); + static void cb_NumDelay (Fl_Counter* o, void* v); + inline void cb_NumFeedback_i (Fl_Counter* o, void* v); + static void cb_NumFeedback (Fl_Counter* o, void* v); + inline void cb_Bounce_i (Fl_LED_Button* o, void* v); + static void cb_Bounce (Fl_LED_Button* o, void* v); }; #endif diff --git a/SpiralSound/Plugins/EchoPlugin/Makefile.in b/SpiralSound/Plugins/EchoPlugin/Makefile.in index 053100d..7af8297 100644 --- a/SpiralSound/Plugins/EchoPlugin/Makefile.in +++ b/SpiralSound/Plugins/EchoPlugin/Makefile.in @@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ ../../Sample.h \ EchoPlugin.h \ @@ -53,6 +54,7 @@ SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ ../../ChannelHandler.C \ ../Widgets/Fl_Knob.cxx \ + ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ ../../Sample.C \ EchoPlugin.C \ @@ -62,15 +64,16 @@ OBJECTS = ../SpiralPlugin.o \ ../../ChannelHandler.o \ ../Widgets/Fl_Knob.o \ ../Widgets/Fl_DragBar.o \ + ../Widgets/Fl_LED_Button.o \ ../../Sample.o \ EchoPlugin.o \ EchoPluginGUI.o -INTERFACES = -UICDECLS = -UICIMPLS = -SRCMOC = -OBJMOC = -DIST = +INTERFACES = +UICDECLS = +UICIMPLS = +SRCMOC = +OBJMOC = +DIST = TARGET = EchoPlugin.so ####### Implicit rules @@ -97,7 +100,7 @@ TARGET = EchoPlugin.so all: $(TARGET) -$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) +$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) moc: $(SRCMOC) @@ -131,12 +134,17 @@ install: ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPlugin.h \ ../../Sample.h ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.H +../Widgets/Fl_LED_Button.o: ../Widgets/Fl_LED_Button.cxx \ + ../Widgets/Fl_LED_Button.H + ../Widgets/Fl_DragBar.o: ../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.H @@ -153,6 +161,7 @@ EchoPlugin.o: EchoPlugin.C \ EchoPluginGUI.h \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_Knob.H \ SpiralIcon.xpm @@ -165,6 +174,7 @@ EchoPluginGUI.o: EchoPluginGUI.C \ ../../Sample.h \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_Knob.H ../../ChannelHandler.o: ../../ChannelHandler.C \ diff --git a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C index 0fd3299..8faf4cb 100644 --- a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C +++ b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C @@ -73,23 +73,25 @@ SpiralPluginGUI(w,h,o,ch) m_MakerLabel->labelsize(12); add(m_MakerLabel); - m_Tab = new Fl_Tabs(5,60,490,255,""); + m_Tab = new Fl_Tabs (5, 60, 490, 250, ""); + m_Tab->box (FL_PLASTIC_DOWN_BOX); m_Tab->callback((Fl_Callback *)cb_TabChange); add(m_Tab); - m_ControlGroup = new Fl_Group(0,80,490,255,"Control"); + m_ControlGroup = new Fl_Group (5, 80, 490, 230, "Control"); + m_ControlGroup->box (FL_PLASTIC_UP_BOX); m_ControlGroup->labelsize(12); - m_ControlScroll = new Fl_Scroll(10,85,480,210,""); + m_ControlScroll = new Fl_Scroll (10, 85, 480, 220, ""); m_ControlScroll->align(FL_ALIGN_TOP_LEFT); m_ControlScroll->type(Fl_Scroll::VERTICAL); - m_ControlScroll->box(FL_DOWN_BOX); m_ControlGroup->add(m_ControlScroll); - m_ControlPack = new Fl_Pack(5,90,460,50,""); + m_ControlPack = new Fl_Pack (10, 85, 480, 220, ""); m_ControlScroll->add(m_ControlPack); - m_SetupGroup = new Fl_Group(0,80,490,255,"Setup"); + m_SetupGroup = new Fl_Group (5, 80, 490, 230, "Setup"); + m_SetupGroup->box (FL_PLASTIC_UP_BOX); m_SetupGroup->labelsize(12); m_Browser = new Fl_Choice(50,85,440,22,"Plugin:"); @@ -98,7 +100,7 @@ SpiralPluginGUI(w,h,o,ch) m_Browser->callback((Fl_Callback *)cb_Select); m_Browser->add("(None)"); - + for (vector::iterator i=m_PluginList.begin(); i!=m_PluginList.end(); i++) { @@ -168,7 +170,7 @@ SpiralPluginGUI(w,h,o,ch) m_PortLabel->labelsize(12); m_SetupGroup->add(m_PortLabel); - m_UpdateInputs = new Fl_Check_Button(10,282,120,25,"Update input values?"); + m_UpdateInputs = new Fl_LED_Button (10, 282, 25, 25, "Update input values?"); m_UpdateInputs->labelsize(12); m_UpdateInputs->value(true); m_UpdateInputs->callback((Fl_Callback *)cb_UpdateInputs); @@ -298,7 +300,7 @@ const string LADSPAPluginGUI::GetHelpText(const string &loc) + "Value\n" + " The value being input to the port from a connection.\n" + "Default\n" - + " The value used as input if there is no connection. If" + + " The value used as input if there is no connection. If\n" + " the port is connected, the default will use the value.\n" + " Upon disconnection, it will retain the last value\n" + " received.\n" @@ -307,8 +309,8 @@ const string LADSPAPluginGUI::GetHelpText(const string &loc) + " assuming the signal is in the range -1.0 to +1.0.\n" + "Clamp\n" + " Whether to scale inputs - if unchecked, the input is\n" - + " not scaled." - + "Port Name" + + " not scaled.\n" + + "Port Name\n" + " The name of the port, as supplied by the plugin.\n" + "\n" + "The Control tab will display a control knob for each port\n" @@ -630,14 +632,14 @@ void LADSPAPluginGUI::cb_Select(Fl_Choice* o) ((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_Select_i(o); } -inline void LADSPAPluginGUI::cb_UpdateInputs_i(Fl_Check_Button* o) +inline void LADSPAPluginGUI::cb_UpdateInputs_i(Fl_LED_Button* o) { m_UpdateInputState = (bool)(o->value()); m_GUICH->SetData("SetUpdateInputs", &m_UpdateInputState); m_GUICH->SetCommand(LADSPAPlugin::SETUPDATEINPUTS); } -void LADSPAPluginGUI::cb_UpdateInputs(Fl_Check_Button* o) +void LADSPAPluginGUI::cb_UpdateInputs(Fl_LED_Button* o) { // Group Tab GUI ((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_UpdateInputs_i(o); } diff --git a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h index f297088..3a68569 100644 --- a/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h +++ b/SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h @@ -14,7 +14,7 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #ifndef __ladspa_plugin_gui_h__ #define __ladspa_plugin_gui_h__ @@ -32,6 +32,7 @@ #include #include #include "../Widgets/Fl_Knob.H" +#include "../Widgets/Fl_LED_Button.H" #include #include @@ -89,7 +90,7 @@ private: Fl_Scroll *m_InputScroll; Fl_Pack *m_InputPack; - Fl_Check_Button *m_UpdateInputs; + Fl_LED_Button *m_UpdateInputs; std::vector m_PortValue; std::vector m_PortMin; std::vector m_PortMax; @@ -122,8 +123,8 @@ private: static void cb_TabChange(Fl_Tabs *o); inline void cb_Select_i(Fl_Choice* o); static void cb_Select(Fl_Choice* o); - inline void cb_UpdateInputs_i(Fl_Check_Button* o); - static void cb_UpdateInputs(Fl_Check_Button* o); + inline void cb_UpdateInputs_i(Fl_LED_Button* o); + static void cb_UpdateInputs(Fl_LED_Button* o); inline void cb_Default_i(Fl_Input* o); static void cb_Default(Fl_Input* o); inline void cb_Min_i(Fl_Input* o); diff --git a/SpiralSound/Plugins/LADSPAPlugin/Makefile.in b/SpiralSound/Plugins/LADSPAPlugin/Makefile.in index 066484a..be397d0 100644 --- a/SpiralSound/Plugins/LADSPAPlugin/Makefile.in +++ b/SpiralSound/Plugins/LADSPAPlugin/Makefile.in @@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ ../../Sample.h \ LADSPAPlugin.h \ @@ -54,6 +55,7 @@ SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ ../../ChannelHandler.C \ ../Widgets/Fl_Knob.cxx \ + ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ ../../Sample.C \ LADSPAPlugin.C \ @@ -63,6 +65,7 @@ OBJECTS = ../SpiralPlugin.o \ ../SpiralPluginGUI.o \ ../../ChannelHandler.o \ ../Widgets/Fl_Knob.o \ + ../Widgets/Fl_LED_Button.o \ ../Widgets/Fl_DragBar.o \ ../../Sample.o \ LADSPAPlugin.o \ @@ -137,12 +140,17 @@ install: ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ + ../Widgets/Fl_Knob.H \ ../SpiralPlugin.h \ ../../Sample.h ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.H +../Widgets/Fl_LED_Button.o: ../Widgets/Fl_LED_Button.cxx \ + ../Widgets/Fl_LED_Button.H + ../Widgets/Fl_DragBar.o: ../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.H @@ -157,8 +165,9 @@ LADSPAPlugin.o: LADSPAPlugin.C \ ../../SpiralInfo.h \ ../../Sample.h \ LADSPAPluginGUI.h \ - ../Widgets/Fl_Knob.H \ ../SpiralPluginGUI.h \ + ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ LADSPAInfo.h \ SpiralIcon.xpm @@ -172,6 +181,8 @@ LADSPAPluginGUI.o: LADSPAPluginGUI.C \ ../../SpiralInfo.h \ ../../Sample.h \ ../SpiralPluginGUI.h \ + ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H ../../ChannelHandler.o: ../../ChannelHandler.C \ diff --git a/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C b/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C index 7e9d37f..d73af86 100644 --- a/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C +++ b/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C @@ -43,8 +43,8 @@ m_TableLength (DEFAULT_TABLE_LEN) { m_CyclePos = 0; m_Note = 0; m_PluginInfo.Name = "LFO"; - m_PluginInfo.Width = 165; - m_PluginInfo.Height = 150; + m_PluginInfo.Width = 160; + m_PluginInfo.Height = 112; m_PluginInfo.NumInputs = 0; m_PluginInfo.NumOutputs = 3; m_PluginInfo.PortTips.push_back ("Output"); diff --git a/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C b/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C index 6f869f5..7d09dc0 100644 --- a/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C +++ b/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C @@ -124,161 +124,178 @@ static unsigned char *image_Saw[] = { (unsigned char*)" ", (unsigned char*)" "}; -LFOPluginGUI::LFOPluginGUI(int w, int h,LFOPlugin *o,ChannelHandler *ch,const HostInfo *Info) : -SpiralPluginGUI(w,h,o,ch), -pixmap_Sine(image_Sine), -pixmap_Tri(image_Tri), -pixmap_Square(image_Square), -pixmap_Saw(image_Saw) { - - ShapeSine = new Fl_Check_Button (5, 15, 55, 30); - ShapeSine->type (FL_RADIO_BUTTON); - ShapeSine->down_box (FL_DIAMOND_DOWN_BOX); - ShapeSine->selection_color (GUI_COLOUR); - pixmap_Sine.label (ShapeSine); - ShapeSine->set(); - ShapeSine->callback ((Fl_Callback*)cb_Sine); - - ShapeTri = new Fl_Check_Button (5, 46, 55, 30); - ShapeTri->type (FL_RADIO_BUTTON); - ShapeTri->down_box (FL_DIAMOND_DOWN_BOX); - ShapeTri->selection_color (GUI_COLOUR); - pixmap_Tri.label (ShapeTri); - ShapeTri->callback ((Fl_Callback*)cb_Tri); - - ShapeSquare = new Fl_Check_Button (5, 77, 55, 30); - ShapeSquare->type (FL_RADIO_BUTTON); - ShapeSquare->down_box (FL_DIAMOND_DOWN_BOX); - ShapeSquare->selection_color (GUI_COLOUR); - pixmap_Square.label (ShapeSquare); - ShapeSquare->callback ((Fl_Callback*)cb_Square); - - ShapeSaw = new Fl_Check_Button (5, 108, 55, 30); - ShapeSaw->type (FL_RADIO_BUTTON); - ShapeSaw->down_box (FL_DIAMOND_DOWN_BOX); - ShapeSaw->selection_color (GUI_COLOUR); - pixmap_Saw.label (ShapeSaw); - ShapeSaw->callback ((Fl_Callback*)cb_Saw); - - Perd = new Fl_Knob (75, 15, 60, 60, ""); - Perd->color (GUI_COLOUR); - Perd->type (Fl_Knob::LINELIN); - Perd->labelsize (10); - Perd->scaleticks (20); - Perd->maximum (120); - Perd->minimum (0.1); - Perd->step (0.001); - Perd->value (10); - Perd->callback ((Fl_Callback*)cb_Perd); - - NumPerd = new Fl_Counter (50, 80, 110, 20, "Period (Secs)"); - NumPerd->textsize (10); - NumPerd->labelsize (10); - NumPerd->value (Perd->value()); - NumPerd->step (Perd->step()); - NumPerd->lstep (0.1); - NumPerd->maximum (Perd->maximum()); - NumPerd->minimum (Perd->minimum()); - NumPerd->callback ((Fl_Callback*)cb_NumPerd); - - NumFreq = new Fl_Counter (50, 115, 110, 20, "Freq (Hz)"); - NumFreq->textsize (10); - NumFreq->labelsize (10); - NumFreq->value (1 / Perd->value()); - NumFreq->step (0.001); - NumFreq->lstep (0.1); - NumFreq->maximum (1 / Perd->minimum()); - NumFreq->minimum (1 / Perd->maximum()); - NumFreq->callback ((Fl_Callback*)cb_NumFreq); +LFOPluginGUI::LFOPluginGUI (int w, int h, LFOPlugin *o, ChannelHandler *ch, const HostInfo *Info) : +SpiralPluginGUI (w, h, o, ch), +m_PixmapSine (image_Sine), +m_PixmapTri (image_Tri), +m_PixmapSquare (image_Square), +m_PixmapSaw (image_Saw) { + + m_ShapeSine = new Fl_LED_Button (0, 15, 23, 23); + m_ShapeSine->type (FL_RADIO_BUTTON); + m_PixmapSine.label (m_ShapeSine); + m_ShapeSine->set(); + m_ShapeSine->callback ((Fl_Callback*)cb_Sine); + + m_ShapeTri = new Fl_LED_Button (0, 35, 23, 23); + m_ShapeTri->type (FL_RADIO_BUTTON); + m_PixmapTri.label (m_ShapeTri); + m_ShapeTri->callback ((Fl_Callback*)cb_Tri); + + m_ShapeSquare = new Fl_LED_Button (0, 55, 23, 23); + m_ShapeSquare->type (FL_RADIO_BUTTON); + m_PixmapSquare.label (m_ShapeSquare); + m_ShapeSquare->callback ((Fl_Callback*)cb_Square); + + m_ShapeSaw = new Fl_LED_Button (0, 75, 23, 23); + m_ShapeSaw->type (FL_RADIO_BUTTON); + m_PixmapSaw.label (m_ShapeSaw); + m_ShapeSaw->callback ((Fl_Callback*)cb_Saw); + + m_TheTabs = new Fl_Tabs (40, 14, 119, 90, ""); + m_TheTabs->box (FL_PLASTIC_DOWN_BOX); + m_TheTabs->color (GUI_COLOUR); + add (m_TheTabs); + + m_CtlGroup = new Fl_Group (40, 28, 119, 66, "Control"); + m_CtlGroup->labelsize (10); + m_TheTabs->add (m_CtlGroup); + + m_Perd = new Fl_Knob (70, 30, 60, 60, "Period"); + m_Perd->user_data ((void*)(this)); + m_Perd->color (GUI_COLOUR); + m_Perd->type (Fl_Knob::LINELIN); + m_Perd->labelsize (10); + m_Perd->scaleticks (20); + m_Perd->maximum (120); + m_Perd->minimum (0.1); + m_Perd->step (0.001); + m_Perd->value (10); + m_Perd->callback ((Fl_Callback*)cb_Perd); + m_CtlGroup->add (m_Perd); + + m_NumGroup = new Fl_Group (40, 28, 119, 66, "Numbers"); + m_NumGroup->labelsize (10); + m_TheTabs->add (m_NumGroup); + + m_NumPerd = new Fl_Counter (45, 35, 110, 20, "Period (Secs)"); + m_NumPerd->user_data ((void*)(this)); + m_NumPerd->textsize (10); + m_NumPerd->labelsize (10); + m_NumPerd->box (FL_PLASTIC_UP_BOX); + m_NumPerd->color (GUI_COLOUR); + m_NumPerd->value (m_Perd->value()); + m_NumPerd->step (m_Perd->step()); + m_NumPerd->lstep (0.1); + m_NumPerd->maximum (m_Perd->maximum()); + m_NumPerd->minimum (m_Perd->minimum()); + m_NumPerd->callback ((Fl_Callback*)cb_NumPerd); + m_NumGroup->add (m_NumPerd); + + m_NumFreq = new Fl_Counter (45, 70, 110, 20, "Freq (Hz)"); + m_NumFreq->user_data ((void*)(this)); + m_NumFreq->textsize (10); + m_NumFreq->labelsize (10); + m_NumFreq->box (FL_PLASTIC_UP_BOX); + m_NumFreq->color (GUI_COLOUR); + m_NumFreq->value (1 / m_Perd->value()); + m_NumFreq->step (0.001); + m_NumFreq->lstep (0.1); + m_NumFreq->maximum (1 / m_Perd->minimum()); + m_NumFreq->minimum (1 / m_Perd->maximum()); + m_NumFreq->callback ((Fl_Callback*)cb_NumFreq); + m_NumGroup->add (m_NumFreq); end(); } -void LFOPluginGUI::UpdateValues(SpiralPlugin *o) { - LFOPlugin* Plugin = (LFOPlugin*)o; +void LFOPluginGUI::UpdateValues (SpiralPlugin *o) { - ShapeSine->value (0); - ShapeTri->value (0); - ShapeSquare->value (0); - ShapeSaw->value (0); + LFOPlugin* Plugin = (LFOPlugin*)o; + m_ShapeSine->value (0); + m_ShapeTri->value (0); + m_ShapeSquare->value (0); + m_ShapeSaw->value (0); switch (Plugin->GetType()) { - case LFOPlugin::SINE : ShapeSine->value (1); break; - case LFOPlugin::TRIANGLE : ShapeTri->value (1); break; - case LFOPlugin::SQUARE : ShapeSquare->value (1); break; - case LFOPlugin::SAW : ShapeSaw->value (1); break; + case LFOPlugin::SINE : m_ShapeSine->value (1); break; + case LFOPlugin::TRIANGLE : m_ShapeTri->value (1); break; + case LFOPlugin::SQUARE : m_ShapeSquare->value (1); break; + case LFOPlugin::SAW : m_ShapeSaw->value (1); break; } float x = Plugin->GetFreq(); - NumFreq->value (x); + m_NumFreq->value (x); x = 1 / x; - Perd->value (x); - NumPerd->value (x); + m_Perd->value (x); + m_NumPerd->value (x); } -// Callbacks for knobs and counters +// Callbacks for Knob inline void LFOPluginGUI::cb_Perd_i (Fl_Knob* o, void* v) { - NumPerd->value ((double)o->value()); + m_NumPerd->value ((double)o->value()); float f = 1.0f / o->value(); - NumFreq->value (f); + m_NumFreq->value (f); m_GUICH->Set ("Freq", f); } + void LFOPluginGUI::cb_Perd (Fl_Knob* o, void* v) { - ((LFOPluginGUI*)(o->parent()))->cb_Perd_i (o, v); + ((LFOPluginGUI*)(o->user_data()))->cb_Perd_i (o, v); } +// Callbacks for Counters inline void LFOPluginGUI::cb_NumPerd_i (Fl_Knob* o, void* v) { - Perd->value (o->value()); + m_Perd->value (o->value()); float f = 1.0f / o->value(); - NumFreq->value (f); + m_NumFreq->value (f); m_GUICH->Set ("Freq", f); } + void LFOPluginGUI::cb_NumPerd (Fl_Knob* o, void* v) { - ((LFOPluginGUI*)(o->parent()))->cb_NumPerd_i (o, v); + ((LFOPluginGUI*)(o->user_data()))->cb_NumPerd_i (o, v); } - inline void LFOPluginGUI::cb_NumFreq_i (Fl_Knob* o, void* v) { float p = 1.0f / o->value(); - Perd->value (p); - NumPerd->value (p); + m_Perd->value (p); + m_NumPerd->value (p); m_GUICH->Set ("Freq", (float)(o->value())); } void LFOPluginGUI::cb_NumFreq (Fl_Knob* o, void* v) { - ((LFOPluginGUI*)(o->parent()))->cb_NumFreq_i (o, v); + ((LFOPluginGUI*)(o->user_data()))->cb_NumFreq_i (o, v); } // Callbacks for waveform buttons -inline void LFOPluginGUI::cb_Sine_i (Fl_Check_Button* o, void* v) { - m_GUICH->Set("Type",(char)(LFOPlugin::SINE)); +inline void LFOPluginGUI::cb_Sine_i (Fl_LED_Button* o, void* v) { + m_GUICH->Set("Type", (char)(LFOPlugin::SINE)); } -void LFOPluginGUI::cb_Sine(Fl_Check_Button* o, void* v) { +void LFOPluginGUI::cb_Sine(Fl_LED_Button* o, void* v) { ((LFOPluginGUI*)(o->parent()))->cb_Sine_i (o, v); } -inline void LFOPluginGUI::cb_Tri_i (Fl_Check_Button* o, void* v) { +inline void LFOPluginGUI::cb_Tri_i (Fl_LED_Button* o, void* v) { m_GUICH->Set("Type",(char)(LFOPlugin::TRIANGLE)); } -void LFOPluginGUI::cb_Tri (Fl_Check_Button* o, void* v) { +void LFOPluginGUI::cb_Tri (Fl_LED_Button* o, void* v) { ((LFOPluginGUI*)(o->parent()))->cb_Tri_i (o, v); } -inline void LFOPluginGUI::cb_Square_i (Fl_Check_Button* o, void* v) { +inline void LFOPluginGUI::cb_Square_i (Fl_LED_Button* o, void* v) { m_GUICH->Set("Type",(char)(LFOPlugin::SQUARE)); } -void LFOPluginGUI::cb_Square (Fl_Check_Button* o, void* v) { +void LFOPluginGUI::cb_Square (Fl_LED_Button* o, void* v) { ((LFOPluginGUI*)(o->parent()))->cb_Square_i (o, v); } -inline void LFOPluginGUI::cb_Saw_i (Fl_Check_Button* o, void* v) { +inline void LFOPluginGUI::cb_Saw_i (Fl_LED_Button* o, void* v) { m_GUICH->Set("Type",(LFOPlugin::SAW)); } -void LFOPluginGUI::cb_Saw (Fl_Check_Button* o, void* v) { +void LFOPluginGUI::cb_Saw (Fl_LED_Button* o, void* v) { ((LFOPluginGUI*)(o->parent()))->cb_Saw_i (o, v); } diff --git a/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h b/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h index 4e641c0..a793203 100644 --- a/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h +++ b/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h @@ -19,10 +19,11 @@ #ifndef LFOGUI #define LFOGUI -#include #include +#include #include #include "../Widgets/Fl_Knob.H" +#include "../Widgets/Fl_LED_Button.H" #include "../SpiralPluginGUI.h" #include "LFOPlugin.h" @@ -30,36 +31,30 @@ class LFOPluginGUI : public SpiralPluginGUI { public: LFOPluginGUI(int w, int h, LFOPlugin *o,ChannelHandler *ch,const HostInfo *Info); virtual void UpdateValues(SpiralPlugin *o); - - protected: - const string GetHelpText(const string &loc); - - private: - Fl_Check_Button* ShapeSine; - Fl_Pixmap pixmap_Sine; - Fl_Check_Button* ShapeTri; - Fl_Pixmap pixmap_Tri; - Fl_Check_Button* ShapeSquare; - Fl_Pixmap pixmap_Square; - Fl_Check_Button* ShapeSaw; - Fl_Pixmap pixmap_Saw; - Fl_Knob* Perd; - Fl_Counter* NumFreq; - Fl_Counter* NumPerd; - inline void cb_Perd_i (Fl_Knob* o, void* v); - static void cb_Perd (Fl_Knob* o, void* v); - inline void cb_NumFreq_i (Fl_Knob* o, void* v); - static void cb_NumFreq (Fl_Knob* o, void* v); - inline void cb_NumPerd_i (Fl_Knob* o, void* v); - static void cb_NumPerd (Fl_Knob* o, void* v); - inline void cb_Sine_i (Fl_Check_Button* o, void* v); - static void cb_Sine (Fl_Check_Button* o, void* v); - inline void cb_Tri_i (Fl_Check_Button* o, void* v); - static void cb_Tri (Fl_Check_Button* o, void* v); - inline void cb_Square_i (Fl_Check_Button* o, void* v); - static void cb_Square (Fl_Check_Button*, void*); - inline void cb_Saw_i (Fl_Check_Button* o, void* v); - static void cb_Saw (Fl_Check_Button*, void*); + protected: + const string GetHelpText(const string &loc); + private: + Fl_Tabs *m_TheTabs; + Fl_Group *m_CtlGroup, *m_NumGroup; + Fl_LED_Button *m_ShapeSine, *m_ShapeTri, *m_ShapeSquare, *m_ShapeSaw; + Fl_Pixmap m_PixmapSine, m_PixmapTri, m_PixmapSquare, m_PixmapSaw; + Fl_Knob *m_Perd; + Fl_Counter *m_NumFreq, *m_NumPerd; + // callbacks + inline void cb_Perd_i (Fl_Knob *o, void *v); + static void cb_Perd (Fl_Knob *o, void *v); + inline void cb_NumFreq_i (Fl_Knob *o, void *v); + static void cb_NumFreq (Fl_Knob *o, void *v); + inline void cb_NumPerd_i (Fl_Knob *o, void *v); + static void cb_NumPerd (Fl_Knob *o, void *v); + inline void cb_Sine_i (Fl_LED_Button *o, void *v); + static void cb_Sine (Fl_LED_Button *o, void *v); + inline void cb_Tri_i (Fl_LED_Button *o, void *v); + static void cb_Tri (Fl_LED_Button *o, void *v); + inline void cb_Square_i (Fl_LED_Button *o, void *v); + static void cb_Square (Fl_LED_Button *o, void *v); + inline void cb_Saw_i (Fl_LED_Button *o, void *v); + static void cb_Saw (Fl_LED_Button *o, void *v); }; #endif diff --git a/SpiralSound/Plugins/LFOPlugin/Makefile.in b/SpiralSound/Plugins/LFOPlugin/Makefile.in index c1c98f6..662e1a4 100644 --- a/SpiralSound/Plugins/LFOPlugin/Makefile.in +++ b/SpiralSound/Plugins/LFOPlugin/Makefile.in @@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ ../../Sample.h \ LFOPlugin.h \ @@ -53,6 +54,7 @@ SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ ../../ChannelHandler.C \ ../Widgets/Fl_Knob.cxx \ + ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ ../../Sample.C \ LFOPlugin.C \ @@ -61,16 +63,17 @@ OBJECTS = ../SpiralPlugin.o \ ../SpiralPluginGUI.o \ ../../ChannelHandler.o \ ../Widgets/Fl_Knob.o \ + ../Widgets/Fl_LED_Button.o \ ../Widgets/Fl_DragBar.o \ ../../Sample.o \ LFOPlugin.o \ LFOPluginGUI.o -INTERFACES = -UICDECLS = -UICIMPLS = -SRCMOC = -OBJMOC = -DIST = +INTERFACES = +UICDECLS = +UICIMPLS = +SRCMOC = +OBJMOC = +DIST = TARGET = LFOPlugin.so ####### Implicit rules @@ -97,7 +100,7 @@ TARGET = LFOPlugin.so all: $(TARGET) -$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) +$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) moc: $(SRCMOC) @@ -112,7 +115,7 @@ dist: clean: -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f *~ core - + install: $(INSTALL) $(TARGET) $(libdir)/SpiralPlugins @@ -131,12 +134,17 @@ install: ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ + ../Widgets/Fl_Knob.H \ ../SpiralPlugin.h \ ../../Sample.h ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.H +../Widgets/Fl_LED_Button.o: ../Widgets/Fl_LED_Button.cxx \ + ../Widgets/Fl_LED_Button.H + ../Widgets/Fl_DragBar.o: ../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.H @@ -152,6 +160,7 @@ LFOPlugin.o: LFOPlugin.C \ ../../Sample.h \ LFOPluginGUI.h \ ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ SpiralIcon.xpm @@ -159,6 +168,7 @@ LFOPlugin.o: LFOPlugin.C \ LFOPluginGUI.o: LFOPluginGUI.C \ LFOPluginGUI.h \ ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ LFOPlugin.h \ diff --git a/SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C b/SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C index e86058f..df3a550 100644 --- a/SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C +++ b/SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C @@ -161,7 +161,7 @@ m_LastPatSeqLight(0) m_Octave->value(0); m_Octave->callback((Fl_Callback*)cb_Octave); add(m_Octave); - + m_CopyBtn = new Fl_Button (5, 150, 40, 20, "Copy"); m_CopyBtn->labelsize (10); m_CopyBtn->callback ((Fl_Callback*)cb_CopyBtn); diff --git a/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C b/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C index 6b8e994..c57d611 100644 --- a/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C +++ b/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C @@ -34,49 +34,57 @@ m_Bypass (false) m_Data = new float[m_BufSize]; // Create the widgets and stuff! Bypass = new Fl_Button (2, 18, 54, 20, "Bypass"); - Bypass -> labelsize (10); - Bypass -> type (1); - Bypass -> callback ((Fl_Callback*)cb_Bypass); + Bypass->labelsize (10); + Bypass->type (FL_TOGGLE_BUTTON); + Bypass->box (FL_PLASTIC_UP_BOX); + Bypass->color (GUI_COLOUR); + Bypass->selection_color (GUI_COLOUR); + Bypass->callback ((Fl_Callback*)cb_Bypass); add (Bypass); - VUMode = new Fl_Check_Button (86, 18, 54, 20, "VU"); + VUMode = new Fl_Button (118, 18, 54, 20, "VU"); VUMode->type (FL_RADIO_BUTTON); - VUMode->down_box (FL_DIAMOND_DOWN_BOX); + VUMode->box (FL_PLASTIC_UP_BOX); + VUMode->color (GUI_COLOUR); VUMode->selection_color (GUI_COLOUR); + VUMode->labelsize (10); VUMode->callback ((Fl_Callback*)cb_Mode); VUMode->set(); add (VUMode); - MMMode = new Fl_Check_Button (142, 18, 54, 20, "Min/Max"); + MMMode = new Fl_Button (174, 18, 54, 20, "Min/Max"); MMMode->type (FL_RADIO_BUTTON); - MMMode->down_box (FL_DIAMOND_DOWN_BOX); + MMMode->box (FL_PLASTIC_UP_BOX); + MMMode->color (GUI_COLOUR); MMMode->selection_color (GUI_COLOUR); + MMMode->labelsize (10); MMMode->callback ((Fl_Callback*)cb_Mode); add (MMMode); for (int display=0; display<8; display++) { Digits[display] = new Fl_SevenSeg ((display*28)+2, 40, 28, 40); - Digits[display] -> bar_width (4); - Digits[display] -> color (FL_WHITE); - Digits[display] -> color2 (GUI_COLOUR); + Digits[display]->bar_width (4); + Digits[display]->color (FL_BLACK); + Digits[display]->color2 (FL_GRAY); add (Digits[display]); } MinBox = new Fl_Output (2, 104, 84, 20); - MinBox -> box (FL_ENGRAVED_BOX); - MinBox -> color (16); - MinBox -> set_output(); + MinBox->box (FL_PLASTIC_DOWN_BOX); + MinBox->set_output(); add (MinBox); Reset = new Fl_Button (88, 104, 54, 20, "Reset"); - Reset -> labelsize (10); - Reset -> type (0); - Reset -> callback ((Fl_Callback*)cb_Reset); + Reset->labelsize (10); + Reset->type (0); + Reset->box (FL_PLASTIC_UP_BOX); + Reset->color (GUI_COLOUR); + Reset->selection_color (GUI_COLOUR); + Reset->callback ((Fl_Callback*)cb_Reset); add (Reset); MaxBox = new Fl_Output (144, 104, 84, 20); MaxBox->set_output(); - MaxBox->box (FL_ENGRAVED_BOX); - MaxBox->color (16); + MaxBox->box (FL_PLASTIC_DOWN_BOX); add (MaxBox); Meter = new Fl_VU_Meter (2, 82, 226, 20); Meter->color (FL_BLACK); + Meter->vu_mode (true); cb_Reset_i (Reset, NULL); - add (Reset); end (); DoReset (); } @@ -153,7 +161,7 @@ void MeterPluginGUI::cb_Bypass (Fl_Button* o, void* v) { } void MeterPluginGUI::DoReset (void) { - MaxBox->color (16); + MaxBox->color (MinBox->color()); SetMinMax (10, -10); // Yes, I know that LOOKS the wrong way round, but it isn't! } @@ -165,13 +173,14 @@ void MeterPluginGUI::cb_Reset (Fl_Button* o, void* v) { ((MeterPluginGUI*)(o->parent()))->cb_Reset_i (o, v); } -void MeterPluginGUI::cb_Mode_i (Fl_Check_Button* o, void* v) { +void MeterPluginGUI::cb_Mode_i (Fl_Button* o, void* v) { DoReset (); if (o==VUMode) m_GUICH->SetCommand (MeterPlugin::SETVU); else m_GUICH->SetCommand (MeterPlugin::SETMM); + Meter->vu_mode (o==VUMode); } -void MeterPluginGUI::cb_Mode (Fl_Check_Button* o, void* v) { +void MeterPluginGUI::cb_Mode (Fl_Button* o, void* v) { ((MeterPluginGUI*)(o->parent()))->cb_Mode_i (o, v); } diff --git a/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h b/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h index 73e82d7..184035b 100644 --- a/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h +++ b/SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h @@ -23,7 +23,6 @@ #include "../Widgets/Fl_VU_Meter.h" #include "../Widgets/Fl_SevenSeg.H" #include -#include #include #include "MeterPlugin.h" #include "../SpiralPluginGUI.h" @@ -44,15 +43,14 @@ class MeterPluginGUI : public SpiralPluginGUI { inline void DoReset (void); Fl_SevenSeg *Digits[8]; Fl_Output *MaxBox, *MinBox; - Fl_Button *Reset, *Bypass; - Fl_Check_Button *VUMode, *MMMode; + Fl_Button *Reset, *Bypass, *VUMode, *MMMode; Fl_VU_Meter *Meter; inline void cb_Reset_i (Fl_Button* o, void* v); static void cb_Reset (Fl_Button* o, void* v); inline void cb_Bypass_i (Fl_Button* o, void* v); static void cb_Bypass (Fl_Button* o, void* v); - inline void cb_Mode_i (Fl_Check_Button* o, void* v); - static void cb_Mode (Fl_Check_Button* o, void* v); + inline void cb_Mode_i (Fl_Button* o, void* v); + static void cb_Mode (Fl_Button* o, void* v); }; #endif diff --git a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C index 1aef282..e63a297 100644 --- a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C +++ b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C @@ -35,6 +35,9 @@ SpiralPluginGUI (w, h, o, ch) m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); m_Chans->labelsize (10); m_Chans->type (FL_SIMPLE_COUNTER); + m_Chans->box (FL_PLASTIC_UP_BOX); + m_Chans->color (GUI_COLOUR); + m_Chans->selection_color (GUI_COLOUR); m_Chans->step (1); m_Chans->value (2); m_Chans->callback ((Fl_Callback*) cb_Chans); @@ -43,6 +46,9 @@ SpiralPluginGUI (w, h, o, ch) m_Switch = new Fl_Counter (49, 20, 40, 20, "Select"); m_Switch->labelsize (10); m_Switch->type (FL_SIMPLE_COUNTER); + m_Switch->box (FL_PLASTIC_UP_BOX); + m_Switch->color (GUI_COLOUR); + m_Switch->selection_color (GUI_COLOUR); m_Switch->step (1); m_Switch->value (1); m_Switch->callback ((Fl_Callback*) cb_Switch); diff --git a/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C b/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C index 7f7d741..57f59df 100644 --- a/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C +++ b/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C @@ -41,9 +41,15 @@ SpiralPluginGUI(w,h,o,ch) m_Buttons->type (FL_HORIZONTAL); add (m_Buttons); m_Delete = new Fl_Button (2, 0, 20, 20, "-"); + m_Delete->box (FL_PLASTIC_UP_BOX); + m_Delete->color (GUI_COLOUR); + m_Delete->selection_color (GUI_COLOUR); m_Delete->callback ((Fl_Callback*)cb_Delete); m_Buttons->add (m_Delete); m_Add = new Fl_Button (24, 0, 20, 20, "+"); + m_Add->box (FL_PLASTIC_UP_BOX); + m_Add->color (GUI_COLOUR); + m_Add->selection_color (GUI_COLOUR); m_Add->callback ((Fl_Callback*)cb_Add); m_Buttons->add (m_Add); } @@ -52,6 +58,7 @@ void MixerPluginGUI::AddChan (bool SendData, bool ResizeIt) { Fl_Slider *NewSlide = new Fl_Slider (0, 0, 20, 100, ""); NewSlide->type (4); NewSlide->selection_color (GUI_COLOUR); + NewSlide->box (FL_PLASTIC_DOWN_BOX); NewSlide->labelsize (10); NewSlide->maximum (2); NewSlide->step (0.01); diff --git a/SpiralSound/Plugins/NoisePlugin/Makefile.in b/SpiralSound/Plugins/NoisePlugin/Makefile.in index 63da78c..39b3b1b 100644 --- a/SpiralSound/Plugins/NoisePlugin/Makefile.in +++ b/SpiralSound/Plugins/NoisePlugin/Makefile.in @@ -1,22 +1,19 @@ ############################################################################# # Makefile for building NoisePlugin.so -# Generated by tmake at 22:13, 2001/09/17 -# Project: NoisePlugin -# Template: app ############################################################################# ####### Compiler, tools and options CC = gcc CXX = g++ -CFLAGS = @CFLAGS@ -CXXFLAGS= @CXXFLAGS@ +CFLAGS = @CFLAGS@ +CXXFLAGS= @CXXFLAGS@ INCPATH = -I/usr/X11R6/include LINK = g++ -shared -LFLAGS = +LFLAGS = LIBS = -L/usr/X11R6/lib @FLTK_LIBS@ -lGL -lXext -lX11 -ldl MOC = moc -UIC = +UIC = TAR = tar -cf GZIP = gzip -9f @@ -44,7 +41,7 @@ mandir = @mandir@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ ../../ChannelHandler.h \ - ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ ../../Sample.h \ NoisePlugin.h \ @@ -52,7 +49,7 @@ HEADERS = ../SpiralPlugin.h \ SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ ../../ChannelHandler.C \ - ../Widgets/Fl_Knob.cxx \ + ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ ../../Sample.C \ NoisePlugin.C \ @@ -60,17 +57,17 @@ SOURCES = ../SpiralPlugin.C \ OBJECTS = ../SpiralPlugin.o \ ../SpiralPluginGUI.o \ ../../ChannelHandler.o \ - ../Widgets/Fl_Knob.o \ + ../Widgets/Fl_LED_Button.o \ ../Widgets/Fl_DragBar.o \ ../../Sample.o \ NoisePlugin.o \ NoisePluginGUI.o -INTERFACES = -UICDECLS = -UICIMPLS = -SRCMOC = -OBJMOC = -DIST = +INTERFACES = +UICDECLS = +UICIMPLS = +SRCMOC = +OBJMOC = +DIST = TARGET = NoisePlugin.so ####### Implicit rules @@ -97,7 +94,7 @@ TARGET = NoisePlugin.so all: $(TARGET) -$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) +$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) moc: $(SRCMOC) @@ -112,7 +109,7 @@ dist: clean: -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f *~ core - + install: $(INSTALL) $(TARGET) $(libdir)/SpiralPlugins @@ -131,11 +128,12 @@ install: ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPlugin.h \ ../../Sample.h -../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ - ../Widgets/Fl_Knob.H +../Widgets/Fl_LED_Button.o: ../Widgets/Fl_LED_Button.cxx \ + ../Widgets/Fl_LED_Button.H ../Widgets/Fl_DragBar.o: ../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.H @@ -151,14 +149,14 @@ NoisePlugin.o: NoisePlugin.C \ ../../SpiralInfo.h \ ../../Sample.h \ NoisePluginGUI.h \ - ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ SpiralIcon.xpm NoisePluginGUI.o: NoisePluginGUI.C \ NoisePluginGUI.h \ - ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_LED_Button.H \ ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ NoisePlugin.h \ diff --git a/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C b/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C index 58ffbfd..dbfc3a4 100644 --- a/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C +++ b/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C @@ -14,7 +14,7 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ #include "NoisePluginGUI.h" #include @@ -26,22 +26,18 @@ static const int GUIBG2_COLOUR = 145; NoisePluginGUI::NoisePluginGUI(int w, int h,NoisePlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) -{ - White = new Fl_Check_Button(15, 15, 55, 30, "White"); - White->type(102); - White->labelsize(10); - White->down_box(FL_DIAMOND_DOWN_BOX); - White->selection_color(GUI_COLOUR); - White->set(); - White->callback((Fl_Callback*)cb_White); - - Pink = new Fl_Check_Button(15, 35, 55, 30, "Pink"); - Pink->type(102); - Pink->labelsize(10); - Pink->down_box(FL_DIAMOND_DOWN_BOX); - Pink->selection_color(GUI_COLOUR); - Pink->callback((Fl_Callback*)cb_Pink); - end(); +{ + White = new Fl_LED_Button (15, 12, 55, 20, "White"); + White->type (FL_RADIO_BUTTON); + White->labelsize (10); + White->set (); + White->callback ((Fl_Callback*)cb_White); + + Pink = new Fl_LED_Button (15, 34, 55, 20, "Pink"); + Pink->type (FL_RADIO_BUTTON); + Pink->labelsize (10); + Pink->callback ((Fl_Callback*)cb_Pink); + end(); } void NoisePluginGUI::UpdateValues(SpiralPlugin *o) @@ -54,21 +50,24 @@ void NoisePluginGUI::UpdateValues(SpiralPlugin *o) case NoisePlugin::PINK : Pink->value(1); break; } } - + //// Callbacks //// -inline void NoisePluginGUI::cb_White_i(Fl_Check_Button* o, void* v) + +inline void NoisePluginGUI::cb_White_i(Fl_LED_Button* o, void* v) { m_GUICH->Set("Type",(char)NoisePlugin::WHITE); } -void NoisePluginGUI::cb_White(Fl_Check_Button* o, void* v) + +void NoisePluginGUI::cb_White(Fl_LED_Button* o, void* v) { ((NoisePluginGUI*)(o->parent()))->cb_White_i(o,v); } -inline void NoisePluginGUI::cb_Pink_i(Fl_Check_Button* o, void* v) +inline void NoisePluginGUI::cb_Pink_i(Fl_LED_Button* o, void* v) { m_GUICH->Set("Type",(char)NoisePlugin::PINK); } -void NoisePluginGUI::cb_Pink(Fl_Check_Button* o, void* v) + +void NoisePluginGUI::cb_Pink(Fl_LED_Button* o, void* v) { ((NoisePluginGUI*)(o->parent()))->cb_Pink_i(o,v); } const string NoisePluginGUI::GetHelpText(const string &loc){ - return string("") + return string("") + "Makes noise, white noise is just raw randomness, pink noise\n" + "is white noise filtered to contain equal amounts of each\n" + "frequency, it should sound more natural and be more useful\n" diff --git a/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h b/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h index c2287d9..a0fc3de 100644 --- a/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h +++ b/SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h @@ -14,13 +14,12 @@ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ +*/ -#include #include -#include #include "../SpiralPluginGUI.h" +#include "../Widgets/Fl_LED_Button.H" #include "NoisePlugin.h" #ifndef PLUGINGUI @@ -28,24 +27,18 @@ class NoisePluginGUI : public SpiralPluginGUI { -public: - NoisePluginGUI(int w, int h, NoisePlugin *o,ChannelHandler *ch,const HostInfo *Info); - + public: + NoisePluginGUI(int w, int h, NoisePlugin *o, ChannelHandler *ch, const HostInfo *Info); virtual void UpdateValues(SpiralPlugin *o); - -protected: - const string GetHelpText(const string &loc); - -private: - - Fl_Check_Button *White; - Fl_Check_Button *Pink; - - //// Callbacks //// - inline void cb_White_i(Fl_Check_Button* o, void* v); - static void cb_White(Fl_Check_Button*, void*); - inline void cb_Pink_i(Fl_Check_Button* o, void* v); - static void cb_Pink(Fl_Check_Button*, void*); + protected: + const string GetHelpText(const string &loc); + private: + Fl_LED_Button *White, *Pink; + //// Callbacks //// + inline void cb_White_i (Fl_LED_Button* o, void* v); + static void cb_White (Fl_LED_Button* o, void*); + inline void cb_Pink_i (Fl_LED_Button* o, void* v); + static void cb_Pink (Fl_LED_Button* o, void*); }; #endif diff --git a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C index 3f4a876..47a1d61 100644 --- a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C +++ b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C @@ -35,6 +35,9 @@ SpiralPluginGUI (w, h, o, ch) m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); m_Chans->labelsize (10); m_Chans->type (FL_SIMPLE_COUNTER); + m_Chans->box (FL_PLASTIC_UP_BOX); + m_Chans->color (GUI_COLOUR); + m_Chans->selection_color (GUI_COLOUR); m_Chans->step (1); m_Chans->value (2); m_Chans->callback ((Fl_Callback*) cb_Chans); @@ -43,6 +46,9 @@ SpiralPluginGUI (w, h, o, ch) m_Switch = new Fl_Counter (49, 20, 40, 20, "Select"); m_Switch->labelsize (10); m_Switch->type (FL_SIMPLE_COUNTER); + m_Switch->box (FL_PLASTIC_UP_BOX); + m_Switch->color (GUI_COLOUR); + m_Switch->selection_color (GUI_COLOUR); m_Switch->step (1); m_Switch->value (1); m_Switch->callback ((Fl_Callback*) cb_Switch);