Browse Source

Lot's of GUI updates - New Echo/Delay GUI - New Echo Functionality

master
edgeeffect 22 years ago
parent
commit
3136ef52eb
24 changed files with 724 additions and 547 deletions
  1. +16
    -17
      SpiralSound/Plugins/DelayPlugin/DelayPlugin.C
  2. +122
    -37
      SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.C
  3. +26
    -28
      SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h
  4. +59
    -59
      SpiralSound/Plugins/EchoPlugin/EchoPlugin.C
  5. +14
    -17
      SpiralSound/Plugins/EchoPlugin/EchoPlugin.h
  6. +136
    -95
      SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C
  7. +31
    -36
      SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h
  8. +17
    -7
      SpiralSound/Plugins/EchoPlugin/Makefile.in
  9. +15
    -13
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C
  10. +5
    -4
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h
  11. +12
    -1
      SpiralSound/Plugins/LADSPAPlugin/Makefile.in
  12. +2
    -2
      SpiralSound/Plugins/LFOPlugin/LFOPlugin.C
  13. +116
    -99
      SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C
  14. +26
    -31
      SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h
  15. +18
    -8
      SpiralSound/Plugins/LFOPlugin/Makefile.in
  16. +1
    -1
      SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C
  17. +31
    -22
      SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C
  18. +3
    -5
      SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h
  19. +6
    -0
      SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C
  20. +7
    -0
      SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C
  21. +20
    -22
      SpiralSound/Plugins/NoisePlugin/Makefile.in
  22. +22
    -23
      SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C
  23. +13
    -20
      SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h
  24. +6
    -0
      SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C

+ 16
- 17
SpiralSound/Plugins/DelayPlugin/DelayPlugin.C View File

@@ -54,14 +54,13 @@ m_WriteHeadPos(0)
{ {
m_PluginInfo.Name="Delay"; m_PluginInfo.Name="Delay";
m_PluginInfo.Width=120; m_PluginInfo.Width=120;
m_PluginInfo.Height=110;
m_PluginInfo.Height=112;
m_PluginInfo.NumInputs=3; m_PluginInfo.NumInputs=3;
m_PluginInfo.NumOutputs=1; 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_PluginInfo.PortTips.push_back("Output");
m_AudioCH->Register("Delay",&m_Delay); m_AudioCH->Register("Delay",&m_Delay);
m_AudioCH->Register("Mix",&m_Mix); m_AudioCH->Register("Mix",&m_Mix);
} }
@@ -71,8 +70,8 @@ DelayPlugin::~DelayPlugin()
} }


PluginInfo &DelayPlugin::Initialise(const HostInfo *Host) 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)); m_Buffer.Allocate((int)(m_HostInfo->SAMPLERATE*MAX_DELAY));
return Info; return Info;
} }
@@ -87,25 +86,25 @@ SpiralGUIType *DelayPlugin::CreateGUI()
void DelayPlugin::Execute() void DelayPlugin::Execute()
{ {
int Delay; int Delay;
for (int n=0; n<m_HostInfo->BUFSIZE; n++) for (int n=0; n<m_HostInfo->BUFSIZE; n++)
{ {
Delay=(int)((m_Delay+GetInput(1,n)*0.5f)*(float)m_HostInfo->SAMPLERATE); 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 (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! "<<m_ReadHeadPos<<endl; cerr<<"read agh! "<<m_ReadHeadPos<<endl;
if (m_WriteHeadPos<0 || m_WriteHeadPos>=MAX_DELAY*m_HostInfo->SAMPLERATE)
if (m_WriteHeadPos<0 || m_WriteHeadPos>=MAX_DELAY*m_HostInfo->SAMPLERATE)
cerr<<"write agh! "<<m_WriteHeadPos<<endl; cerr<<"write agh! "<<m_WriteHeadPos<<endl;
// Read from the buffer // Read from the buffer
SetOutput(0,n,m_Buffer[m_ReadHeadPos]+m_Mix*GetInput(0,n));
SetOutput(0,n,m_Buffer[m_ReadHeadPos]+m_Mix*GetInput(0,n));
// Write to the buffer // Write to the buffer
m_Buffer.Set((int)m_WriteHeadPos,GetInput(0,n)); m_Buffer.Set((int)m_WriteHeadPos,GetInput(0,n));


+ 122
- 37
SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.C View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/


#include "DelayPluginGUI.h" #include "DelayPluginGUI.h"
#include <FL/fl_draw.h> #include <FL/fl_draw.h>
@@ -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) 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){ const string DelayPluginGUI::GetHelpText(const string &loc){
return string("") return string("")


+ 26
- 28
SpiralSound/Plugins/DelayPlugin/DelayPluginGUI.h View File

@@ -14,43 +14,41 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/


#include <FL/Fl.H> #include <FL/Fl.H>
#include <FL/Fl_Window.H> #include <FL/Fl_Window.H>
#include <FL/Fl_Group.H> #include <FL/Fl_Group.H>
#include <FL/Fl_Slider.H>

#include "DelayPlugin.h"
#include "../SpiralPluginGUI.h"
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Counter.H>
#include "../Widgets/Fl_Knob.H" #include "../Widgets/Fl_Knob.H"
#include "../SpiralPluginGUI.h"
#include "DelayPlugin.h"


#ifndef FilterGUI
#define FilterGUI

#ifndef DelayGUI
#define DelayGUI


class DelayPluginGUI : public SpiralPluginGUI 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 #endif

+ 59
- 59
SpiralSound/Plugins/EchoPlugin/EchoPlugin.C View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/
#include "EchoPlugin.h" #include "EchoPlugin.h"
#include "EchoPluginGUI.h" #include "EchoPluginGUI.h"
#include <FL/Fl_Button.h> #include <FL/Fl_Button.h>
@@ -47,85 +47,85 @@ string SpiralPlugin_GetGroupName()
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////


EchoPlugin::EchoPlugin() : 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() 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; return Info;
} }


SpiralGUIType *EchoPlugin::CreateGUI() 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() void EchoPlugin::Execute()
{ {
float Delay;
for (int n=0; n<m_HostInfo->BUFSIZE; 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; n<m_HostInfo->BUFSIZE; 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) void EchoPlugin::StreamOut(ostream &s)
{ {
s<<m_Version<<" "<<m_Delay<<" "<<m_Feedback<<" ";
s << m_Version << " " << m_Delay << " " << m_Feedback << " " << m_Bounce << " ";
} }


void EchoPlugin::StreamIn(istream &s) void EchoPlugin::StreamIn(istream &s)
{
{
int version; int version;
s>>version;
s>>m_Delay>>m_Feedback;
s >> version;
s >> m_Delay >> m_Feedback;
if (version>1) s >> m_Bounce; else m_Bounce = false;
} }


+ 14
- 17
SpiralSound/Plugins/EchoPlugin/EchoPlugin.h View File

@@ -24,31 +24,28 @@


class EchoPlugin : public SpiralPlugin class EchoPlugin : public SpiralPlugin
{ {
public:
public:
EchoPlugin(); EchoPlugin();
virtual ~EchoPlugin(); virtual ~EchoPlugin();
virtual PluginInfo &Initialise(const HostInfo *Host);
virtual PluginInfo &Initialise (const HostInfo *Host);
virtual SpiralGUIType *CreateGUI(); virtual SpiralGUIType *CreateGUI();
virtual void Execute(); 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; } 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 istream &operator>>(istream &s, EchoPlugin &o);
friend ostream &operator<<(ostream &s, EchoPlugin &o); friend ostream &operator<<(ostream &s, EchoPlugin &o);
}; };

istream &operator>>(istream &s, EchoPlugin &o); istream &operator>>(istream &s, EchoPlugin &o);
ostream &operator<<(ostream &s, EchoPlugin &o); ostream &operator<<(ostream &s, EchoPlugin &o);




+ 136
- 95
SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.C View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/


#include "EchoPluginGUI.h" #include "EchoPluginGUI.h"
#include <FL/fl_draw.h> #include <FL/fl_draw.h>
@@ -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; 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){ const string EchoPluginGUI::GetHelpText(const string &loc){
return string("") return string("")
+ "This plugin is a fully operational delay with feedback\n" + "This plugin is a fully operational delay with feedback\n"
+ "- providing a no-frills echo effect. The delay and\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";
} }

+ 31
- 36
SpiralSound/Plugins/EchoPlugin/EchoPluginGUI.h View File

@@ -14,50 +14,45 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/

#ifndef EchoGUI
#define EchoGUI


#include <FL/Fl.H> #include <FL/Fl.H>
#include <FL/Fl_Window.H> #include <FL/Fl_Window.H>
#include <FL/Fl_Group.H> #include <FL/Fl_Group.H>
#include <FL/Fl_Slider.H>
#include <FL/Fl_Output.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Box.H>

#include "EchoPlugin.h"
#include "../SpiralPluginGUI.h"
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Counter.H>
#include "../Widgets/Fl_Knob.H" #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 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 #endif

+ 17
- 7
SpiralSound/Plugins/EchoPlugin/Makefile.in View File

@@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../../ChannelHandler.h \ ../../ChannelHandler.h \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../../Sample.h \ ../../Sample.h \
EchoPlugin.h \ EchoPlugin.h \
@@ -53,6 +54,7 @@ SOURCES = ../SpiralPlugin.C \
../SpiralPluginGUI.C \ ../SpiralPluginGUI.C \
../../ChannelHandler.C \ ../../ChannelHandler.C \
../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_LED_Button.cxx \
../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.cxx \
../../Sample.C \ ../../Sample.C \
EchoPlugin.C \ EchoPlugin.C \
@@ -62,15 +64,16 @@ OBJECTS = ../SpiralPlugin.o \
../../ChannelHandler.o \ ../../ChannelHandler.o \
../Widgets/Fl_Knob.o \ ../Widgets/Fl_Knob.o \
../Widgets/Fl_DragBar.o \ ../Widgets/Fl_DragBar.o \
../Widgets/Fl_LED_Button.o \
../../Sample.o \ ../../Sample.o \
EchoPlugin.o \ EchoPlugin.o \
EchoPluginGUI.o EchoPluginGUI.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
TARGET = EchoPlugin.so TARGET = EchoPlugin.so


####### Implicit rules ####### Implicit rules
@@ -97,7 +100,7 @@ TARGET = EchoPlugin.so


all: $(TARGET) all: $(TARGET)


$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)


moc: $(SRCMOC) moc: $(SRCMOC)
@@ -131,12 +134,17 @@ install:
../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../SpiralPlugin.h \ ../SpiralPlugin.h \
../../Sample.h ../../Sample.h


../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_Knob.H ../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.o: ../Widgets/Fl_DragBar.cxx \
../Widgets/Fl_DragBar.H ../Widgets/Fl_DragBar.H


@@ -153,6 +161,7 @@ EchoPlugin.o: EchoPlugin.C \
EchoPluginGUI.h \ EchoPluginGUI.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
SpiralIcon.xpm SpiralIcon.xpm


@@ -165,6 +174,7 @@ EchoPluginGUI.o: EchoPluginGUI.C \
../../Sample.h \ ../../Sample.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_Knob.H ../Widgets/Fl_Knob.H


../../ChannelHandler.o: ../../ChannelHandler.C \ ../../ChannelHandler.o: ../../ChannelHandler.C \


+ 15
- 13
SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C View File

@@ -73,23 +73,25 @@ SpiralPluginGUI(w,h,o,ch)
m_MakerLabel->labelsize(12); m_MakerLabel->labelsize(12);
add(m_MakerLabel); 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); m_Tab->callback((Fl_Callback *)cb_TabChange);
add(m_Tab); 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_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->align(FL_ALIGN_TOP_LEFT);
m_ControlScroll->type(Fl_Scroll::VERTICAL); m_ControlScroll->type(Fl_Scroll::VERTICAL);
m_ControlScroll->box(FL_DOWN_BOX);
m_ControlGroup->add(m_ControlScroll); 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_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_SetupGroup->labelsize(12);


m_Browser = new Fl_Choice(50,85,440,22,"Plugin:"); 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->callback((Fl_Callback *)cb_Select);


m_Browser->add("(None)"); m_Browser->add("(None)");
for (vector<LADSPAInfo::PluginEntry>::iterator i=m_PluginList.begin(); for (vector<LADSPAInfo::PluginEntry>::iterator i=m_PluginList.begin();
i!=m_PluginList.end(); i++) i!=m_PluginList.end(); i++)
{ {
@@ -168,7 +170,7 @@ SpiralPluginGUI(w,h,o,ch)
m_PortLabel->labelsize(12); m_PortLabel->labelsize(12);
m_SetupGroup->add(m_PortLabel); 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->labelsize(12);
m_UpdateInputs->value(true); m_UpdateInputs->value(true);
m_UpdateInputs->callback((Fl_Callback *)cb_UpdateInputs); m_UpdateInputs->callback((Fl_Callback *)cb_UpdateInputs);
@@ -298,7 +300,7 @@ const string LADSPAPluginGUI::GetHelpText(const string &loc)
+ "Value\n" + "Value\n"
+ " The value being input to the port from a connection.\n" + " The value being input to the port from a connection.\n"
+ "Default\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" + " the port is connected, the default will use the value.\n"
+ " Upon disconnection, it will retain the last value\n" + " Upon disconnection, it will retain the last value\n"
+ " received.\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" + " assuming the signal is in the range -1.0 to +1.0.\n"
+ "Clamp\n" + "Clamp\n"
+ " Whether to scale inputs - if unchecked, the input is\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" + " The name of the port, as supplied by the plugin.\n"
+ "\n" + "\n"
+ "The Control tab will display a control knob for each port\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); ((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_UpdateInputState = (bool)(o->value());


m_GUICH->SetData("SetUpdateInputs", &m_UpdateInputState); m_GUICH->SetData("SetUpdateInputs", &m_UpdateInputState);
m_GUICH->SetCommand(LADSPAPlugin::SETUPDATEINPUTS); m_GUICH->SetCommand(LADSPAPlugin::SETUPDATEINPUTS);
} }
void LADSPAPluginGUI::cb_UpdateInputs(Fl_Check_Button* o)
void LADSPAPluginGUI::cb_UpdateInputs(Fl_LED_Button* o)
{ // Group Tab GUI { // Group Tab GUI
((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_UpdateInputs_i(o); ((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_UpdateInputs_i(o);
} }


+ 5
- 4
SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/


#ifndef __ladspa_plugin_gui_h__ #ifndef __ladspa_plugin_gui_h__
#define __ladspa_plugin_gui_h__ #define __ladspa_plugin_gui_h__
@@ -32,6 +32,7 @@
#include <FL/Fl_Box.H> #include <FL/Fl_Box.H>
#include <FL/Fl_Output.H> #include <FL/Fl_Output.H>
#include "../Widgets/Fl_Knob.H" #include "../Widgets/Fl_Knob.H"
#include "../Widgets/Fl_LED_Button.H"


#include <vector> #include <vector>
#include <string> #include <string>
@@ -89,7 +90,7 @@ private:


Fl_Scroll *m_InputScroll; Fl_Scroll *m_InputScroll;
Fl_Pack *m_InputPack; Fl_Pack *m_InputPack;
Fl_Check_Button *m_UpdateInputs;
Fl_LED_Button *m_UpdateInputs;
std::vector<Fl_Output*> m_PortValue; std::vector<Fl_Output*> m_PortValue;
std::vector<Fl_Input*> m_PortMin; std::vector<Fl_Input*> m_PortMin;
std::vector<Fl_Input*> m_PortMax; std::vector<Fl_Input*> m_PortMax;
@@ -122,8 +123,8 @@ private:
static void cb_TabChange(Fl_Tabs *o); static void cb_TabChange(Fl_Tabs *o);
inline void cb_Select_i(Fl_Choice* o); inline void cb_Select_i(Fl_Choice* o);
static void cb_Select(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); inline void cb_Default_i(Fl_Input* o);
static void cb_Default(Fl_Input* o); static void cb_Default(Fl_Input* o);
inline void cb_Min_i(Fl_Input* o); inline void cb_Min_i(Fl_Input* o);


+ 12
- 1
SpiralSound/Plugins/LADSPAPlugin/Makefile.in View File

@@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../../ChannelHandler.h \ ../../ChannelHandler.h \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../../Sample.h \ ../../Sample.h \
LADSPAPlugin.h \ LADSPAPlugin.h \
@@ -54,6 +55,7 @@ SOURCES = ../SpiralPlugin.C \
../SpiralPluginGUI.C \ ../SpiralPluginGUI.C \
../../ChannelHandler.C \ ../../ChannelHandler.C \
../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_LED_Button.cxx \
../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.cxx \
../../Sample.C \ ../../Sample.C \
LADSPAPlugin.C \ LADSPAPlugin.C \
@@ -63,6 +65,7 @@ OBJECTS = ../SpiralPlugin.o \
../SpiralPluginGUI.o \ ../SpiralPluginGUI.o \
../../ChannelHandler.o \ ../../ChannelHandler.o \
../Widgets/Fl_Knob.o \ ../Widgets/Fl_Knob.o \
../Widgets/Fl_LED_Button.o \
../Widgets/Fl_DragBar.o \ ../Widgets/Fl_DragBar.o \
../../Sample.o \ ../../Sample.o \
LADSPAPlugin.o \ LADSPAPlugin.o \
@@ -137,12 +140,17 @@ install:
../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_Knob.H \
../SpiralPlugin.h \ ../SpiralPlugin.h \
../../Sample.h ../../Sample.h


../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_Knob.H ../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.o: ../Widgets/Fl_DragBar.cxx \
../Widgets/Fl_DragBar.H ../Widgets/Fl_DragBar.H


@@ -157,8 +165,9 @@ LADSPAPlugin.o: LADSPAPlugin.C \
../../SpiralInfo.h \ ../../SpiralInfo.h \
../../Sample.h \ ../../Sample.h \
LADSPAPluginGUI.h \ LADSPAPluginGUI.h \
../Widgets/Fl_Knob.H \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
LADSPAInfo.h \ LADSPAInfo.h \
SpiralIcon.xpm SpiralIcon.xpm
@@ -172,6 +181,8 @@ LADSPAPluginGUI.o: LADSPAPluginGUI.C \
../../SpiralInfo.h \ ../../SpiralInfo.h \
../../Sample.h \ ../../Sample.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H ../Widgets/Fl_DragBar.H


../../ChannelHandler.o: ../../ChannelHandler.C \ ../../ChannelHandler.o: ../../ChannelHandler.C \


+ 2
- 2
SpiralSound/Plugins/LFOPlugin/LFOPlugin.C View File

@@ -43,8 +43,8 @@ m_TableLength (DEFAULT_TABLE_LEN) {
m_CyclePos = 0; m_CyclePos = 0;
m_Note = 0; m_Note = 0;
m_PluginInfo.Name = "LFO"; 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.NumInputs = 0;
m_PluginInfo.NumOutputs = 3; m_PluginInfo.NumOutputs = 3;
m_PluginInfo.PortTips.push_back ("Output"); m_PluginInfo.PortTips.push_back ("Output");


+ 116
- 99
SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C View File

@@ -124,161 +124,178 @@ static unsigned char *image_Saw[] = {
(unsigned char*)" ", (unsigned char*)" ",
(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(); 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()) { 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(); float x = Plugin->GetFreq();
NumFreq->value (x);
m_NumFreq->value (x);
x = 1 / 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) { 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(); float f = 1.0f / o->value();
NumFreq->value (f);
m_NumFreq->value (f);
m_GUICH->Set ("Freq", f); m_GUICH->Set ("Freq", f);
} }
void LFOPluginGUI::cb_Perd (Fl_Knob* o, void* v) { 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) { 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(); float f = 1.0f / o->value();
NumFreq->value (f);
m_NumFreq->value (f);
m_GUICH->Set ("Freq", f); m_GUICH->Set ("Freq", f);
} }
void LFOPluginGUI::cb_NumPerd (Fl_Knob* o, void* v) { 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) { inline void LFOPluginGUI::cb_NumFreq_i (Fl_Knob* o, void* v) {
float p = 1.0f / o->value(); 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())); m_GUICH->Set ("Freq", (float)(o->value()));
} }
void LFOPluginGUI::cb_NumFreq (Fl_Knob* o, void* v) { 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 // 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); ((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)); 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); ((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)); 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); ((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)); 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); ((LFOPluginGUI*)(o->parent()))->cb_Saw_i (o, v);
} }


+ 26
- 31
SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.h View File

@@ -19,10 +19,11 @@
#ifndef LFOGUI #ifndef LFOGUI
#define LFOGUI #define LFOGUI
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Pixmap.H> #include <FL/Fl_Pixmap.H>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Counter.H> #include <FL/Fl_Counter.H>
#include "../Widgets/Fl_Knob.H" #include "../Widgets/Fl_Knob.H"
#include "../Widgets/Fl_LED_Button.H"
#include "../SpiralPluginGUI.h" #include "../SpiralPluginGUI.h"
#include "LFOPlugin.h" #include "LFOPlugin.h"
@@ -30,36 +31,30 @@ class LFOPluginGUI : public SpiralPluginGUI {
public: public:
LFOPluginGUI(int w, int h, LFOPlugin *o,ChannelHandler *ch,const HostInfo *Info); LFOPluginGUI(int w, int h, LFOPlugin *o,ChannelHandler *ch,const HostInfo *Info);
virtual void UpdateValues(SpiralPlugin *o); 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 #endif

+ 18
- 8
SpiralSound/Plugins/LFOPlugin/Makefile.in View File

@@ -45,6 +45,7 @@ HEADERS = ../SpiralPlugin.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../../ChannelHandler.h \ ../../ChannelHandler.h \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../../Sample.h \ ../../Sample.h \
LFOPlugin.h \ LFOPlugin.h \
@@ -53,6 +54,7 @@ SOURCES = ../SpiralPlugin.C \
../SpiralPluginGUI.C \ ../SpiralPluginGUI.C \
../../ChannelHandler.C \ ../../ChannelHandler.C \
../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_LED_Button.cxx \
../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.cxx \
../../Sample.C \ ../../Sample.C \
LFOPlugin.C \ LFOPlugin.C \
@@ -61,16 +63,17 @@ OBJECTS = ../SpiralPlugin.o \
../SpiralPluginGUI.o \ ../SpiralPluginGUI.o \
../../ChannelHandler.o \ ../../ChannelHandler.o \
../Widgets/Fl_Knob.o \ ../Widgets/Fl_Knob.o \
../Widgets/Fl_LED_Button.o \
../Widgets/Fl_DragBar.o \ ../Widgets/Fl_DragBar.o \
../../Sample.o \ ../../Sample.o \
LFOPlugin.o \ LFOPlugin.o \
LFOPluginGUI.o LFOPluginGUI.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
TARGET = LFOPlugin.so TARGET = LFOPlugin.so


####### Implicit rules ####### Implicit rules
@@ -97,7 +100,7 @@ TARGET = LFOPlugin.so


all: $(TARGET) all: $(TARGET)


$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)


moc: $(SRCMOC) moc: $(SRCMOC)
@@ -112,7 +115,7 @@ dist:
clean: clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
-rm -f *~ core -rm -f *~ core
install: install:
$(INSTALL) $(TARGET) $(libdir)/SpiralPlugins $(INSTALL) $(TARGET) $(libdir)/SpiralPlugins


@@ -131,12 +134,17 @@ install:
../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_Knob.H \
../SpiralPlugin.h \ ../SpiralPlugin.h \
../../Sample.h ../../Sample.h


../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \
../Widgets/Fl_Knob.H ../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.o: ../Widgets/Fl_DragBar.cxx \
../Widgets/Fl_DragBar.H ../Widgets/Fl_DragBar.H


@@ -152,6 +160,7 @@ LFOPlugin.o: LFOPlugin.C \
../../Sample.h \ ../../Sample.h \
LFOPluginGUI.h \ LFOPluginGUI.h \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
SpiralIcon.xpm SpiralIcon.xpm
@@ -159,6 +168,7 @@ LFOPlugin.o: LFOPlugin.C \
LFOPluginGUI.o: LFOPluginGUI.C \ LFOPluginGUI.o: LFOPluginGUI.C \
LFOPluginGUI.h \ LFOPluginGUI.h \
../Widgets/Fl_Knob.H \ ../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
LFOPlugin.h \ LFOPlugin.h \


+ 1
- 1
SpiralSound/Plugins/MatrixPlugin/MatrixPluginGUI.C View File

@@ -161,7 +161,7 @@ m_LastPatSeqLight(0)
m_Octave->value(0); m_Octave->value(0);
m_Octave->callback((Fl_Callback*)cb_Octave); m_Octave->callback((Fl_Callback*)cb_Octave);
add(m_Octave); add(m_Octave);
m_CopyBtn = new Fl_Button (5, 150, 40, 20, "Copy"); m_CopyBtn = new Fl_Button (5, 150, 40, 20, "Copy");
m_CopyBtn->labelsize (10); m_CopyBtn->labelsize (10);
m_CopyBtn->callback ((Fl_Callback*)cb_CopyBtn); m_CopyBtn->callback ((Fl_Callback*)cb_CopyBtn);


+ 31
- 22
SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.C View File

@@ -34,49 +34,57 @@ m_Bypass (false)
m_Data = new float[m_BufSize]; m_Data = new float[m_BufSize];
// Create the widgets and stuff! // Create the widgets and stuff!
Bypass = new Fl_Button (2, 18, 54, 20, "Bypass"); 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); 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->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->selection_color (GUI_COLOUR);
VUMode->labelsize (10);
VUMode->callback ((Fl_Callback*)cb_Mode); VUMode->callback ((Fl_Callback*)cb_Mode);
VUMode->set(); VUMode->set();
add (VUMode); 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->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->selection_color (GUI_COLOUR);
MMMode->labelsize (10);
MMMode->callback ((Fl_Callback*)cb_Mode); MMMode->callback ((Fl_Callback*)cb_Mode);
add (MMMode); add (MMMode);
for (int display=0; display<8; display++) { for (int display=0; display<8; display++) {
Digits[display] = new Fl_SevenSeg ((display*28)+2, 40, 28, 40); 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]); add (Digits[display]);
} }
MinBox = new Fl_Output (2, 104, 84, 20); 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); add (MinBox);
Reset = new Fl_Button (88, 104, 54, 20, "Reset"); 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); add (Reset);
MaxBox = new Fl_Output (144, 104, 84, 20); MaxBox = new Fl_Output (144, 104, 84, 20);
MaxBox->set_output(); MaxBox->set_output();
MaxBox->box (FL_ENGRAVED_BOX);
MaxBox->color (16);
MaxBox->box (FL_PLASTIC_DOWN_BOX);
add (MaxBox); add (MaxBox);
Meter = new Fl_VU_Meter (2, 82, 226, 20); Meter = new Fl_VU_Meter (2, 82, 226, 20);
Meter->color (FL_BLACK); Meter->color (FL_BLACK);
Meter->vu_mode (true);
cb_Reset_i (Reset, NULL); cb_Reset_i (Reset, NULL);
add (Reset);
end (); end ();
DoReset (); DoReset ();
} }
@@ -153,7 +161,7 @@ void MeterPluginGUI::cb_Bypass (Fl_Button* o, void* v) {
} }


void MeterPluginGUI::DoReset (void) { 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! 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); ((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 (); DoReset ();
if (o==VUMode) m_GUICH->SetCommand (MeterPlugin::SETVU); if (o==VUMode) m_GUICH->SetCommand (MeterPlugin::SETVU);
else m_GUICH->SetCommand (MeterPlugin::SETMM); 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); ((MeterPluginGUI*)(o->parent()))->cb_Mode_i (o, v);
} }




+ 3
- 5
SpiralSound/Plugins/MeterPlugin/MeterPluginGUI.h View File

@@ -23,7 +23,6 @@
#include "../Widgets/Fl_VU_Meter.h" #include "../Widgets/Fl_VU_Meter.h"
#include "../Widgets/Fl_SevenSeg.H" #include "../Widgets/Fl_SevenSeg.H"
#include <FL/Fl_Button.H> #include <FL/Fl_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Output.H> #include <FL/Fl_Output.H>
#include "MeterPlugin.h" #include "MeterPlugin.h"
#include "../SpiralPluginGUI.h" #include "../SpiralPluginGUI.h"
@@ -44,15 +43,14 @@ class MeterPluginGUI : public SpiralPluginGUI {
inline void DoReset (void); inline void DoReset (void);
Fl_SevenSeg *Digits[8]; Fl_SevenSeg *Digits[8];
Fl_Output *MaxBox, *MinBox; Fl_Output *MaxBox, *MinBox;
Fl_Button *Reset, *Bypass;
Fl_Check_Button *VUMode, *MMMode;
Fl_Button *Reset, *Bypass, *VUMode, *MMMode;
Fl_VU_Meter *Meter; Fl_VU_Meter *Meter;
inline void cb_Reset_i (Fl_Button* o, void* v); inline void cb_Reset_i (Fl_Button* o, void* v);
static void cb_Reset (Fl_Button* o, void* v); static void cb_Reset (Fl_Button* o, void* v);
inline void cb_Bypass_i (Fl_Button* o, void* v); inline void cb_Bypass_i (Fl_Button* o, void* v);
static void cb_Bypass (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 #endif

+ 6
- 0
SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C View File

@@ -35,6 +35,9 @@ SpiralPluginGUI (w, h, o, ch)
m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels");
m_Chans->labelsize (10); m_Chans->labelsize (10);
m_Chans->type (FL_SIMPLE_COUNTER); 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->step (1);
m_Chans->value (2); m_Chans->value (2);
m_Chans->callback ((Fl_Callback*) cb_Chans); 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 = new Fl_Counter (49, 20, 40, 20, "Select");
m_Switch->labelsize (10); m_Switch->labelsize (10);
m_Switch->type (FL_SIMPLE_COUNTER); 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->step (1);
m_Switch->value (1); m_Switch->value (1);
m_Switch->callback ((Fl_Callback*) cb_Switch); m_Switch->callback ((Fl_Callback*) cb_Switch);


+ 7
- 0
SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C View File

@@ -41,9 +41,15 @@ SpiralPluginGUI(w,h,o,ch)
m_Buttons->type (FL_HORIZONTAL); m_Buttons->type (FL_HORIZONTAL);
add (m_Buttons); add (m_Buttons);
m_Delete = new Fl_Button (2, 0, 20, 20, "-"); 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_Delete->callback ((Fl_Callback*)cb_Delete);
m_Buttons->add (m_Delete); m_Buttons->add (m_Delete);
m_Add = new Fl_Button (24, 0, 20, 20, "+"); 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_Add->callback ((Fl_Callback*)cb_Add);
m_Buttons->add (m_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, ""); Fl_Slider *NewSlide = new Fl_Slider (0, 0, 20, 100, "");
NewSlide->type (4); NewSlide->type (4);
NewSlide->selection_color (GUI_COLOUR); NewSlide->selection_color (GUI_COLOUR);
NewSlide->box (FL_PLASTIC_DOWN_BOX);
NewSlide->labelsize (10); NewSlide->labelsize (10);
NewSlide->maximum (2); NewSlide->maximum (2);
NewSlide->step (0.01); NewSlide->step (0.01);


+ 20
- 22
SpiralSound/Plugins/NoisePlugin/Makefile.in View File

@@ -1,22 +1,19 @@
############################################################################# #############################################################################
# Makefile for building NoisePlugin.so # Makefile for building NoisePlugin.so
# Generated by tmake at 22:13, 2001/09/17
# Project: NoisePlugin
# Template: app
############################################################################# #############################################################################


####### Compiler, tools and options ####### Compiler, tools and options


CC = gcc CC = gcc
CXX = g++ CXX = g++
CFLAGS = @CFLAGS@
CXXFLAGS= @CXXFLAGS@
CFLAGS = @CFLAGS@
CXXFLAGS= @CXXFLAGS@
INCPATH = -I/usr/X11R6/include INCPATH = -I/usr/X11R6/include
LINK = g++ -shared LINK = g++ -shared
LFLAGS =
LFLAGS =
LIBS = -L/usr/X11R6/lib @FLTK_LIBS@ -lGL -lXext -lX11 -ldl LIBS = -L/usr/X11R6/lib @FLTK_LIBS@ -lGL -lXext -lX11 -ldl
MOC = moc MOC = moc
UIC =
UIC =


TAR = tar -cf TAR = tar -cf
GZIP = gzip -9f GZIP = gzip -9f
@@ -44,7 +41,7 @@ mandir = @mandir@
HEADERS = ../SpiralPlugin.h \ HEADERS = ../SpiralPlugin.h \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../../ChannelHandler.h \ ../../ChannelHandler.h \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../../Sample.h \ ../../Sample.h \
NoisePlugin.h \ NoisePlugin.h \
@@ -52,7 +49,7 @@ HEADERS = ../SpiralPlugin.h \
SOURCES = ../SpiralPlugin.C \ SOURCES = ../SpiralPlugin.C \
../SpiralPluginGUI.C \ ../SpiralPluginGUI.C \
../../ChannelHandler.C \ ../../ChannelHandler.C \
../Widgets/Fl_Knob.cxx \
../Widgets/Fl_LED_Button.cxx \
../Widgets/Fl_DragBar.cxx \ ../Widgets/Fl_DragBar.cxx \
../../Sample.C \ ../../Sample.C \
NoisePlugin.C \ NoisePlugin.C \
@@ -60,17 +57,17 @@ SOURCES = ../SpiralPlugin.C \
OBJECTS = ../SpiralPlugin.o \ OBJECTS = ../SpiralPlugin.o \
../SpiralPluginGUI.o \ ../SpiralPluginGUI.o \
../../ChannelHandler.o \ ../../ChannelHandler.o \
../Widgets/Fl_Knob.o \
../Widgets/Fl_LED_Button.o \
../Widgets/Fl_DragBar.o \ ../Widgets/Fl_DragBar.o \
../../Sample.o \ ../../Sample.o \
NoisePlugin.o \ NoisePlugin.o \
NoisePluginGUI.o NoisePluginGUI.o
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
INTERFACES =
UICDECLS =
UICIMPLS =
SRCMOC =
OBJMOC =
DIST =
TARGET = NoisePlugin.so TARGET = NoisePlugin.so


####### Implicit rules ####### Implicit rules
@@ -97,7 +94,7 @@ TARGET = NoisePlugin.so


all: $(TARGET) all: $(TARGET)


$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)


moc: $(SRCMOC) moc: $(SRCMOC)
@@ -112,7 +109,7 @@ dist:
clean: clean:
-rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET)
-rm -f *~ core -rm -f *~ core
install: install:
$(INSTALL) $(TARGET) $(libdir)/SpiralPlugins $(INSTALL) $(TARGET) $(libdir)/SpiralPlugins


@@ -131,11 +128,12 @@ install:
../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
../Widgets/Fl_LED_Button.H \
../SpiralPlugin.h \ ../SpiralPlugin.h \
../../Sample.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.o: ../Widgets/Fl_DragBar.cxx \
../Widgets/Fl_DragBar.H ../Widgets/Fl_DragBar.H
@@ -151,14 +149,14 @@ NoisePlugin.o: NoisePlugin.C \
../../SpiralInfo.h \ ../../SpiralInfo.h \
../../Sample.h \ ../../Sample.h \
NoisePluginGUI.h \ NoisePluginGUI.h \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
SpiralIcon.xpm SpiralIcon.xpm


NoisePluginGUI.o: NoisePluginGUI.C \ NoisePluginGUI.o: NoisePluginGUI.C \
NoisePluginGUI.h \ NoisePluginGUI.h \
../Widgets/Fl_Knob.H \
../Widgets/Fl_LED_Button.H \
../SpiralPluginGUI.h \ ../SpiralPluginGUI.h \
../Widgets/Fl_DragBar.H \ ../Widgets/Fl_DragBar.H \
NoisePlugin.h \ NoisePlugin.h \


+ 22
- 23
SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.C View File

@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/
#include "NoisePluginGUI.h" #include "NoisePluginGUI.h"
#include <FL/fl_draw.h> #include <FL/fl_draw.h>
@@ -26,22 +26,18 @@ static const int GUIBG2_COLOUR = 145;
NoisePluginGUI::NoisePluginGUI(int w, int h,NoisePlugin *o,ChannelHandler *ch,const HostInfo *Info) : NoisePluginGUI::NoisePluginGUI(int w, int h,NoisePlugin *o,ChannelHandler *ch,const HostInfo *Info) :
SpiralPluginGUI(w,h,o,ch) 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) void NoisePluginGUI::UpdateValues(SpiralPlugin *o)
@@ -54,21 +50,24 @@ void NoisePluginGUI::UpdateValues(SpiralPlugin *o)
case NoisePlugin::PINK : Pink->value(1); break; case NoisePlugin::PINK : Pink->value(1); break;
} }
} }
//// Callbacks //// //// 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); } { 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); } { ((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); } { 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); } { ((NoisePluginGUI*)(o->parent()))->cb_Pink_i(o,v); }
const string NoisePluginGUI::GetHelpText(const string &loc){ const string NoisePluginGUI::GetHelpText(const string &loc){
return string("")
return string("")
+ "Makes noise, white noise is just raw randomness, pink noise\n" + "Makes noise, white noise is just raw randomness, pink noise\n"
+ "is white noise filtered to contain equal amounts of each\n" + "is white noise filtered to contain equal amounts of each\n"
+ "frequency, it should sound more natural and be more useful\n" + "frequency, it should sound more natural and be more useful\n"


+ 13
- 20
SpiralSound/Plugins/NoisePlugin/NoisePluginGUI.h View File

@@ -14,13 +14,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/


#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Box.H> #include <FL/Fl_Box.H>
#include <FL/Fl_Button.H>


#include "../SpiralPluginGUI.h" #include "../SpiralPluginGUI.h"
#include "../Widgets/Fl_LED_Button.H"
#include "NoisePlugin.h" #include "NoisePlugin.h"


#ifndef PLUGINGUI #ifndef PLUGINGUI
@@ -28,24 +27,18 @@


class NoisePluginGUI : public SpiralPluginGUI 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); 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 #endif

+ 6
- 0
SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C View File

@@ -35,6 +35,9 @@ SpiralPluginGUI (w, h, o, ch)
m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels");
m_Chans->labelsize (10); m_Chans->labelsize (10);
m_Chans->type (FL_SIMPLE_COUNTER); 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->step (1);
m_Chans->value (2); m_Chans->value (2);
m_Chans->callback ((Fl_Callback*) cb_Chans); 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 = new Fl_Counter (49, 20, 40, 20, "Select");
m_Switch->labelsize (10); m_Switch->labelsize (10);
m_Switch->type (FL_SIMPLE_COUNTER); 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->step (1);
m_Switch->value (1); m_Switch->value (1);
m_Switch->callback ((Fl_Callback*) cb_Switch); m_Switch->callback ((Fl_Callback*) cb_Switch);


Loading…
Cancel
Save