diff --git a/SpiralSound/Plugins/AmpPlugin/AmpPlugin.C b/SpiralSound/Plugins/AmpPlugin/AmpPlugin.C index 63db640..acf34c5 100644 --- a/SpiralSound/Plugins/AmpPlugin/AmpPlugin.C +++ b/SpiralSound/Plugins/AmpPlugin/AmpPlugin.C @@ -53,7 +53,7 @@ m_DC(0.0f) { m_PluginInfo.Name="Amp"; m_PluginInfo.Width = 120; - m_PluginInfo.Height = 146; + m_PluginInfo.Height = 140; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; m_PluginInfo.PortTips.push_back("Input"); diff --git a/SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C b/SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C index 45b4ca8..4e012d3 100644 --- a/SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C +++ b/SpiralSound/Plugins/AmpPlugin/AmpPluginGUI.C @@ -90,7 +90,7 @@ SpiralPluginGUI(w,h,o,ch) m_NumDC->callback ((Fl_Callback*)cb_NumDC); m_NumGroup->add (m_NumDC); - m_Reset = new Fl_Button (64, 120, 56, 20, "Reset"); + m_Reset = new Fl_Button (64, 119, 56, 18, "Reset"); m_Reset->user_data ((void*)(this)); m_Reset->labelsize (10); m_Reset->box (FL_PLASTIC_UP_BOX); diff --git a/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPlugin.C b/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPlugin.C index 9d307ac..d100601 100644 --- a/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPlugin.C +++ b/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPlugin.C @@ -54,7 +54,7 @@ m_OutputLevel(1.0f), m_Sensitivity(0.5f) { m_PluginInfo.Name="BeatMatch"; - m_PluginInfo.Width=90; + m_PluginInfo.Width=80; m_PluginInfo.Height=80; m_PluginInfo.NumInputs=1; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPluginGUI.C b/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPluginGUI.C index 349b899..231fd0a 100644 --- a/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPluginGUI.C +++ b/SpiralSound/Plugins/BeatMatchPlugin/BeatMatchPluginGUI.C @@ -25,7 +25,7 @@ BeatMatchPluginGUI::BeatMatchPluginGUI(int w, int h,BeatMatchPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_Sense = new Fl_Knob(20, 15, 50, 50, "Sensitivity"); + m_Sense = new Fl_Knob (15, 15, 50, 50, "Sensitivity"); m_Sense->color(Info->GUI_COLOUR); m_Sense->labelsize(8); m_Sense->callback((Fl_Callback*)cb_Sense); diff --git a/SpiralSound/Plugins/CounterPlugin/CounterPlugin.C b/SpiralSound/Plugins/CounterPlugin/CounterPlugin.C index 7d5f43c..2a2d32c 100644 --- a/SpiralSound/Plugins/CounterPlugin/CounterPlugin.C +++ b/SpiralSound/Plugins/CounterPlugin/CounterPlugin.C @@ -52,7 +52,7 @@ m_Triggered(false), m_CurrentLevel(1.0f) { m_PluginInfo.Name="Counter"; - m_PluginInfo.Width=60; + m_PluginInfo.Width=80; m_PluginInfo.Height=50; m_PluginInfo.NumInputs=1; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/CounterPlugin/CounterPluginGUI.C b/SpiralSound/Plugins/CounterPlugin/CounterPluginGUI.C index 86c629a..146ab25 100644 --- a/SpiralSound/Plugins/CounterPlugin/CounterPluginGUI.C +++ b/SpiralSound/Plugins/CounterPlugin/CounterPluginGUI.C @@ -26,7 +26,7 @@ CounterPluginGUI::CounterPluginGUI(int w, int h,CounterPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_Count = new Fl_Input(5, 20, 50, 20, "Count"); + m_Count = new Fl_Input(15, 20, 50, 20, "Count"); m_Count->color(Info->GUI_COLOUR); m_Count->labelsize(8); m_Count->align(FL_ALIGN_BOTTOM|FL_ALIGN_CENTER); diff --git a/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C b/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C index 53faf8d..108de34 100644 --- a/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C +++ b/SpiralSound/Plugins/DelayPlugin/DelayPlugin.C @@ -54,7 +54,7 @@ m_WriteHeadPos(0) { m_PluginInfo.Name="Delay"; m_PluginInfo.Width=120; - m_PluginInfo.Height=112; + m_PluginInfo.Height=110; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; m_PluginInfo.PortTips.push_back("Input"); diff --git a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C index d3c813b..9f2a1eb 100644 --- a/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C +++ b/SpiralSound/Plugins/EchoPlugin/EchoPlugin.C @@ -57,7 +57,7 @@ m_Buf1 (1) m_Version = 2; m_PluginInfo.Name = "Echo"; m_PluginInfo.Width = 120; - m_PluginInfo.Height = 132; + m_PluginInfo.Height = 140; m_PluginInfo.NumInputs = 3; m_PluginInfo.NumOutputs = 2; m_PluginInfo.PortTips.push_back ("Input"); diff --git a/SpiralSound/Plugins/FlipflopPlugin/FlipflopPlugin.C b/SpiralSound/Plugins/FlipflopPlugin/FlipflopPlugin.C index 3219aea..7a16e50 100644 --- a/SpiralSound/Plugins/FlipflopPlugin/FlipflopPlugin.C +++ b/SpiralSound/Plugins/FlipflopPlugin/FlipflopPlugin.C @@ -55,7 +55,7 @@ m_TriggerSamples(0) { m_Version = 2; m_PluginInfo.Name="Flipflop"; - m_PluginInfo.Width=70; + m_PluginInfo.Width=80; m_PluginInfo.Height=100; m_PluginInfo.NumInputs=1; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/FlipflopPlugin/FlipflopPluginGUI.C b/SpiralSound/Plugins/FlipflopPlugin/FlipflopPluginGUI.C index 45d78b4..739450c 100644 --- a/SpiralSound/Plugins/FlipflopPlugin/FlipflopPluginGUI.C +++ b/SpiralSound/Plugins/FlipflopPlugin/FlipflopPluginGUI.C @@ -25,7 +25,7 @@ FlipflopPluginGUI::FlipflopPluginGUI(int w, int h,FlipflopPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_TriggerTime = new Fl_Knob (15, 15, 40, 40, "Trigger Time"); + m_TriggerTime = new Fl_Knob (20, 15, 40, 40, "Trigger Time"); m_TriggerTime->color (Info->GUI_COLOUR); m_TriggerTime->labelsize(8); m_TriggerTime->maximum(1.0f); @@ -34,7 +34,7 @@ SpiralPluginGUI(w,h,o,ch) m_TriggerTime->labelsize(8); m_TriggerTime->callback((Fl_Callback*)cb_TriggerTime); - m_Monostable = new Fl_Button (5, 70, 60, 20, "Monostable"); + m_Monostable = new Fl_Button (10, 70, 60, 20, "Monostable"); m_Monostable->color (Info->GUI_COLOUR); m_Monostable->selection_color (Info->GUI_COLOUR); m_Monostable->box (FL_PLASTIC_UP_BOX); diff --git a/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C b/SpiralSound/Plugins/LFOPlugin/LFOPlugin.C index d73af86..4eea341 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 = 160; - m_PluginInfo.Height = 112; + m_PluginInfo.Width = 180; + m_PluginInfo.Height = 100; 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 372a8df..e4da8aa 100644 --- a/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C +++ b/SpiralSound/Plugins/LFOPlugin/LFOPluginGUI.C @@ -19,106 +19,10 @@ #include "LFOPluginGUI.h" #include #include - -static unsigned char *image_Sine[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Tri[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" . ", -(unsigned char*)" . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . ", -(unsigned char*)" . ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Square[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ...... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . ... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ...... ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Saw[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . .... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; +#include "../GUI/WS_Sine.h" +#include "../GUI/WS_Tri.h" +#include "../GUI/WS_Square.h" +#include "../GUI/WS_Saw.h" LFOPluginGUI::LFOPluginGUI (int w, int h, LFOPlugin *o, ChannelHandler *ch, const HostInfo *Info) : SpiralPluginGUI (w, h, o, ch), @@ -127,37 +31,37 @@ m_PixmapTri (image_Tri), m_PixmapSquare (image_Square), m_PixmapSaw (image_Saw) { - m_ShapeSine = new Fl_LED_Button (0, 15, 23, 23); + m_ShapeSine = new Fl_LED_Button (0, 10, 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 = new Fl_LED_Button (0, 31, 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 = new Fl_LED_Button (0, 53, 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 = new Fl_LED_Button (0, 74, 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 = new Fl_Tabs (50, 10, 119, 88, ""); m_TheTabs->box (FL_PLASTIC_DOWN_BOX); m_TheTabs->color (Info->GUI_COLOUR); add (m_TheTabs); - m_CtlGroup = new Fl_Group (40, 28, 119, 66, "Control"); + m_CtlGroup = new Fl_Group (50, 24, 119, 64, "Control"); m_CtlGroup->labelsize (10); m_TheTabs->add (m_CtlGroup); - m_Perd = new Fl_Knob (70, 30, 60, 60, "Period"); + m_Perd = new Fl_Knob (85, 30, 50, 50, "Period"); m_Perd->user_data ((void*)(this)); m_Perd->color (Info->GUI_COLOUR); m_Perd->type (Fl_Knob::LINELIN); @@ -170,11 +74,11 @@ m_PixmapSaw (image_Saw) { m_Perd->callback ((Fl_Callback*)cb_Perd); m_CtlGroup->add (m_Perd); - m_NumGroup = new Fl_Group (40, 28, 119, 66, "Numbers"); + m_NumGroup = new Fl_Group (50, 24, 119, 64, "Numbers"); m_NumGroup->labelsize (10); m_TheTabs->add (m_NumGroup); - m_NumPerd = new Fl_Counter (45, 35, 110, 20, "Period (Secs)"); + m_NumPerd = new Fl_Counter (55, 30, 110, 20, "Period (Secs)"); m_NumPerd->user_data ((void*)(this)); m_NumPerd->textsize (10); m_NumPerd->labelsize (10); @@ -188,7 +92,7 @@ m_PixmapSaw (image_Saw) { 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 = new Fl_Counter (55, 64, 110, 20, "Freq (Hz)"); m_NumFreq->user_data ((void*)(this)); m_NumFreq->textsize (10); m_NumFreq->labelsize (10); diff --git a/SpiralSound/Plugins/LFOPlugin/Makefile.in b/SpiralSound/Plugins/LFOPlugin/Makefile.in index c1aa770..c6e89e2 100644 --- a/SpiralSound/Plugins/LFOPlugin/Makefile.in +++ b/SpiralSound/Plugins/LFOPlugin/Makefile.in @@ -6,14 +6,14 @@ 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 @@ -40,28 +40,32 @@ mandir = @mandir@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ - ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ ../Widgets/Fl_LED_Button.H \ ../Widgets/Fl_DragBar.H \ - ../../Sample.h \ + ../GUI/WS_Sine.h \ + ../GUI/WS_Tri.h \ + ../GUI/WS_Square.h \ + ../GUI/WS_Saw.h \ + ../../Sample.h \ + ../../ChannelHandler.h \ LFOPlugin.h \ LFOPluginGUI.h SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ - ../../ChannelHandler.C \ ../Widgets/Fl_Knob.cxx \ ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ + ../../ChannelHandler.C \ ../../Sample.C \ LFOPlugin.C \ LFOPluginGUI.C OBJECTS = ../SpiralPlugin.o \ ../SpiralPluginGUI.o \ - ../../ChannelHandler.o \ ../Widgets/Fl_Knob.o \ ../Widgets/Fl_LED_Button.o \ ../Widgets/Fl_DragBar.o \ + ../../ChannelHandler.o \ ../../Sample.o \ LFOPlugin.o \ LFOPluginGUI.o @@ -130,10 +134,8 @@ install: ../SpiralPluginGUI.o: ../SpiralPluginGUI.C \ ../SpiralPluginGUI.h \ - ../Widgets/Fl_DragBar.H \ - ../Widgets/Fl_LED_Button.H \ - ../Widgets/Fl_Knob.H \ ../SpiralPlugin.h \ + ../Widgets/Fl_DragBar.H \ ../../Sample.h ../Widgets/Fl_Knob.o: ../Widgets/Fl_Knob.cxx \ @@ -151,25 +153,26 @@ install: LFOPlugin.o: LFOPlugin.C \ LFOPlugin.h \ + LFOPluginGUI.h \ + ../SpiralPluginGUI.h \ ../SpiralPlugin.h \ ../../Sample.h \ ../../SpiralInfo.h \ ../../Sample.h \ - LFOPluginGUI.h \ - ../Widgets/Fl_Knob.H \ - ../Widgets/Fl_LED_Button.H \ - ../SpiralPluginGUI.h \ - ../Widgets/Fl_DragBar.H \ SpiralIcon.xpm LFOPluginGUI.o: LFOPluginGUI.C \ LFOPluginGUI.h \ - ../Widgets/Fl_Knob.H \ - ../Widgets/Fl_LED_Button.H \ - ../SpiralPluginGUI.h \ - ../Widgets/Fl_DragBar.H \ LFOPlugin.h \ ../SpiralPlugin.h \ + ../SpiralPluginGUI.h \ + ../Widgets/Fl_DragBar.H \ + ../Widgets/Fl_LED_Button.H \ + ../Widgets/Fl_Knob.H \ + ../GUI/WS_Sine.h \ + ../GUI/WS_Tri.h \ + ../GUI/WS_Square.h \ + ../GUI/WS_Saw.h \ ../../Sample.h \ ../../SpiralInfo.h \ ../../Sample.h diff --git a/SpiralSound/Plugins/LogicPlugin/LogicPlugin.C b/SpiralSound/Plugins/LogicPlugin/LogicPlugin.C index b566ed7..d107cd1 100644 --- a/SpiralSound/Plugins/LogicPlugin/LogicPlugin.C +++ b/SpiralSound/Plugins/LogicPlugin/LogicPlugin.C @@ -51,8 +51,8 @@ m_Operator(AND) { m_Version = 2; m_PluginInfo.Name="Logic"; - m_PluginInfo.Width=75; - m_PluginInfo.Height=130; + m_PluginInfo.Width=80; + m_PluginInfo.Height=140; CreatePorts (); m_AudioCH->Register("Operator",(int*)&m_Operator); diff --git a/SpiralSound/Plugins/LogicPlugin/LogicPluginGUI.C b/SpiralSound/Plugins/LogicPlugin/LogicPluginGUI.C index 8481b1a..633273a 100644 --- a/SpiralSound/Plugins/LogicPlugin/LogicPluginGUI.C +++ b/SpiralSound/Plugins/LogicPlugin/LogicPluginGUI.C @@ -26,7 +26,7 @@ LogicPluginGUI::LogicPluginGUI(int w, int h,LogicPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - int Width=36, Depth=20/*, Pos=0, Count=0*/; + int Width=38, Depth=20; m_AND = new Fl_Button (2, 15, Width, Depth, "AND"); m_AND->type (FL_TOGGLE_BUTTON); @@ -37,7 +37,7 @@ SpiralPluginGUI(w,h,o,ch) m_AND->selection_color (Info->GUI_COLOUR); m_AND->callback ((Fl_Callback*)cb_AND); - m_OR = new Fl_Button(2, 35, Width, Depth, "OR"); + m_OR = new Fl_Button(2, 36, Width, Depth, "OR"); m_OR->type (FL_TOGGLE_BUTTON); m_OR->labelsize (10); m_OR->box (FL_PLASTIC_UP_BOX); @@ -45,7 +45,7 @@ SpiralPluginGUI(w,h,o,ch) m_OR->selection_color (Info->GUI_COLOUR); m_OR->callback ((Fl_Callback*)cb_OR); - m_NOT = new Fl_Button (2, 55, Width, Depth, "NOT"); + m_NOT = new Fl_Button (2, 57, Width, Depth, "NOT"); m_NOT->type (FL_TOGGLE_BUTTON); m_NOT->labelsize (10); m_NOT->box (FL_PLASTIC_UP_BOX); @@ -53,7 +53,7 @@ SpiralPluginGUI(w,h,o,ch) m_NOT->selection_color (Info->GUI_COLOUR); m_NOT->callback ((Fl_Callback*)cb_NOT); - m_NAND = new Fl_Button(2, 75, Width, Depth, "NAND"); + m_NAND = new Fl_Button(2, 78, Width, Depth, "NAND"); m_NAND->type (FL_TOGGLE_BUTTON); m_NAND->labelsize (10); m_NAND->box (FL_PLASTIC_UP_BOX); @@ -61,7 +61,7 @@ SpiralPluginGUI(w,h,o,ch) m_NAND->selection_color (Info->GUI_COLOUR); m_NAND->callback ((Fl_Callback*)cb_NAND); - m_NOR = new Fl_Button (38, 15, Width, Depth, "NOR"); + m_NOR = new Fl_Button (41, 15, Width, Depth, "NOR"); m_NOR->type (FL_TOGGLE_BUTTON); m_NOR->labelsize (10); m_NOR->box (FL_PLASTIC_UP_BOX); @@ -69,7 +69,7 @@ SpiralPluginGUI(w,h,o,ch) m_NOR->selection_color (Info->GUI_COLOUR); m_NOR->callback ((Fl_Callback*)cb_NOR); - m_XOR = new Fl_Button (38, 35, Width, Depth, "XOR"); + m_XOR = new Fl_Button (41, 36, Width, Depth, "XOR"); m_XOR->type (FL_TOGGLE_BUTTON); m_XOR->labelsize (10); m_XOR->box (FL_PLASTIC_UP_BOX); @@ -77,7 +77,7 @@ SpiralPluginGUI(w,h,o,ch) m_XOR->selection_color (Info->GUI_COLOUR); m_XOR->callback ((Fl_Callback*)cb_XOR); - m_XNOR = new Fl_Button (38, 55, Width, Depth, "XNOR"); + m_XNOR = new Fl_Button (41, 57, Width, Depth, "XNOR"); m_XNOR->type (FL_TOGGLE_BUTTON); m_XNOR->labelsize (10); m_XNOR->box (FL_PLASTIC_UP_BOX); @@ -85,7 +85,7 @@ SpiralPluginGUI(w,h,o,ch) m_XNOR->selection_color (Info->GUI_COLOUR); m_XNOR->callback ((Fl_Callback*)cb_XNOR); - m_Inputs = new Fl_Counter (7, 97, 60, 20, "Inputs"); + m_Inputs = new Fl_Counter (10, 104, 60, 20, "Inputs"); m_Inputs->labelsize (10); m_Inputs->type (FL_SIMPLE_COUNTER); m_Inputs->box (FL_PLASTIC_UP_BOX); diff --git a/SpiralSound/Plugins/MasherPlugin/MasherPlugin.C b/SpiralSound/Plugins/MasherPlugin/MasherPlugin.C index a065b90..cc4239d 100644 --- a/SpiralSound/Plugins/MasherPlugin/MasherPlugin.C +++ b/SpiralSound/Plugins/MasherPlugin/MasherPlugin.C @@ -62,7 +62,7 @@ m_WriteGrain(0) { m_PluginInfo.Name="Masher"; m_PluginInfo.Width=120; - m_PluginInfo.Height=130; + m_PluginInfo.Height=140; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; m_PluginInfo.PortTips.push_back("Input"); diff --git a/SpiralSound/Plugins/MasherPlugin/MasherPluginGUI.C b/SpiralSound/Plugins/MasherPlugin/MasherPluginGUI.C index 1928062..e9a21a5 100644 --- a/SpiralSound/Plugins/MasherPlugin/MasherPluginGUI.C +++ b/SpiralSound/Plugins/MasherPlugin/MasherPluginGUI.C @@ -26,8 +26,8 @@ MasherPluginGUI::MasherPluginGUI(int w, int h,MasherPlugin *o,ChannelHandler *ch SpiralPluginGUI(w,h,o,ch) { m_Plugin=o; - - m_Pitch = new Fl_Knob(5,15,40,40,"GrainPitch"); + + m_Pitch = new Fl_Knob (5, 20, 40, 40, "GrainPitch"); m_Pitch->type(Fl_Knob::DOTLIN); m_Pitch->color(Info->GUI_COLOUR); m_Pitch->labelsize(10); @@ -35,8 +35,8 @@ SpiralPluginGUI(w,h,o,ch) m_Pitch->step(0.001); m_Pitch->value(1); m_Pitch->callback((Fl_Callback*)cb_Pitch); - - m_Random = new Fl_Knob(70,15,40,40,"Randomness"); + + m_Random = new Fl_Knob (70, 20, 40, 40, "Randomness"); m_Random->type(Fl_Knob::DOTLIN); m_Random->color(Info->GUI_COLOUR); m_Random->labelsize(10); @@ -45,7 +45,7 @@ SpiralPluginGUI(w,h,o,ch) m_Random->value(1); m_Random->callback((Fl_Callback*)cb_Random); - m_GrainStoreSize = new Fl_Knob(5,70,40,40,"Num Grains"); + m_GrainStoreSize = new Fl_Knob (5, 80, 40, 40, "Num Grains"); m_GrainStoreSize->type(Fl_Knob::DOTLIN); m_GrainStoreSize->color(Info->GUI_COLOUR); m_GrainStoreSize->labelsize(10); @@ -54,7 +54,7 @@ SpiralPluginGUI(w,h,o,ch) m_GrainStoreSize->value(1); m_GrainStoreSize->callback((Fl_Callback*)cb_GrainStoreSize); - m_Density = new Fl_Knob(70,70,40,40,"Density"); + m_Density = new Fl_Knob (70, 80, 40, 40, "Density"); m_Density->type(Fl_Knob::DOTLIN); m_Density->color(Info->GUI_COLOUR); m_Density->labelsize(10); @@ -62,11 +62,11 @@ SpiralPluginGUI(w,h,o,ch) m_Density->step(1); m_Density->value(1); m_Density->callback((Fl_Callback*)cb_Density); - + end(); } -extern "C" int sprintf(char *,const char *,...); +extern "C" int sprintf(char *,const char *,...); void MasherPluginGUI::UpdateValues(SpiralPlugin *o) { diff --git a/SpiralSound/Plugins/MidiPlugin/MidiPlugin.C b/SpiralSound/Plugins/MidiPlugin/MidiPlugin.C index 664a2b5..3b662ae 100644 --- a/SpiralSound/Plugins/MidiPlugin/MidiPlugin.C +++ b/SpiralSound/Plugins/MidiPlugin/MidiPlugin.C @@ -65,8 +65,8 @@ m_CurrentNote(0) m_RefCount++; m_PluginInfo.Name="Midi"; - m_PluginInfo.Width=85; - m_PluginInfo.Height=155; + m_PluginInfo.Width=80; + m_PluginInfo.Height=140; m_PluginInfo.NumInputs=2; m_PluginInfo.NumOutputs=6; m_PluginInfo.PortTips.push_back("Note CV"); diff --git a/SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.C b/SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.C index a85c663..b0295e8 100644 --- a/SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.C +++ b/SpiralSound/Plugins/MidiPlugin/MidiPluginGUI.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 "MidiPluginGUI.h" #include @@ -30,41 +30,41 @@ int OptionsList(const vector &List) Fl_Button *Ok = new Fl_Button(10,275,40,20,"Ok"); Ok->labelsize(10); Fl_Button *Cancel = new Fl_Button(50,275,40,20,"Cancel"); - Cancel->labelsize(10); + Cancel->labelsize(10); Fl_Hold_Browser* Browser = new Fl_Hold_Browser(5,5,290,265,""); - + for (vector::const_iterator i = List.begin(); i!=List.end(); i++) { Browser->add(i->c_str()); } - + Win->show(); int Choice=-1; - - for (;;) + + for (;;) { Fl::wait(); Fl_Widget* o = Fl::readqueue(); - if (o==Ok || o==Browser) - { + if (o==Ok || o==Browser) + { Choice=Browser->value(); Win->hide(); delete Win; - break; + break; } - if (o==Cancel) - { - Choice=-1; + if (o==Cancel) + { + Choice=-1; Win->hide(); delete Win; - break; + break; } - - if (o==Win) break; + + if (o==Win) break; } - + return Choice; } @@ -73,7 +73,7 @@ int OptionsList(const vector &List) MidiPluginGUI::MidiPluginGUI(int w, int h,MidiPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_DeviceNum = new Fl_Counter (15, 30, 55, 20, "Channel"); + m_DeviceNum = new Fl_Counter (12, 15, 56, 20, "Channel"); m_DeviceNum->type (FL_SIMPLE_COUNTER); m_DeviceNum->box (FL_PLASTIC_UP_BOX); m_DeviceNum->color (Info->GUI_COLOUR); @@ -81,7 +81,7 @@ SpiralPluginGUI(w,h,o,ch) m_DeviceNum->value(1); m_DeviceNum->callback((Fl_Callback*)cb_DeviceNum, NULL); - m_NoteCut = new Fl_Button (2, 70, 81, 20, "Note Cut"); + m_NoteCut = new Fl_Button (0, 52, 80, 20, "Note Cut"); m_NoteCut->type (FL_TOGGLE_BUTTON); m_NoteCut->box (FL_PLASTIC_UP_BOX); m_NoteCut->color (Info->GUI_COLOUR); @@ -89,7 +89,7 @@ SpiralPluginGUI(w,h,o,ch) m_NoteCut->labelsize(10); m_NoteCut->callback((Fl_Callback*)cb_NoteCut, NULL); - m_ContinuousNotes = new Fl_Button (2, 90, 81, 20, "Cont Notes"); + m_ContinuousNotes = new Fl_Button (0, 72, 80, 20, "Cont Notes"); m_ContinuousNotes->type (FL_TOGGLE_BUTTON); m_ContinuousNotes->box (FL_PLASTIC_UP_BOX); m_ContinuousNotes->color (Info->GUI_COLOUR); @@ -97,14 +97,14 @@ SpiralPluginGUI(w,h,o,ch) m_ContinuousNotes->labelsize(10); m_ContinuousNotes->callback((Fl_Callback*)cb_ContinuousNotes, NULL); - m_AddControl = new Fl_Button (2, 110, 81, 20, "Add Control"); + m_AddControl = new Fl_Button (0, 92, 80, 20, "Add Control"); m_AddControl->box (FL_PLASTIC_UP_BOX); m_AddControl->color (Info->GUI_COLOUR); m_AddControl->selection_color (Info->GUI_COLOUR); m_AddControl->labelsize(10); m_AddControl->callback((Fl_Callback*)cb_AddControl, NULL); - m_RemoveControl = new Fl_Button (2, 130, 81, 20, "Remove Control"); + m_RemoveControl = new Fl_Button (0, 112, 80, 20, "Remove Control"); m_RemoveControl->box (FL_PLASTIC_UP_BOX); m_RemoveControl->color (Info->GUI_COLOUR); m_RemoveControl->selection_color (Info->GUI_COLOUR); @@ -120,7 +120,7 @@ void MidiPluginGUI::UpdateValues(SpiralPlugin *o) //// Callbacks //// inline void MidiPluginGUI::cb_DeviceNum_i(Fl_Counter* o, void* v) -{ +{ if (o->value()<1) o->value(1); if (o->value()>128) o->value(128); diff --git a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPlugin.C b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPlugin.C index 005848a..6d78c35 100644 --- a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPlugin.C +++ b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPlugin.C @@ -42,8 +42,8 @@ m_Triggered (false) m_GUIArgs.Switch = 1; m_GUIArgs.Echo = 1; m_PluginInfo.Name = "MixSwitch"; - m_PluginInfo.Width = 93; - m_PluginInfo.Height = 55; + m_PluginInfo.Width = 80; + m_PluginInfo.Height = 80; CreatePorts (); // Channels m_AudioCH->Register ("Chans", &m_GUIArgs.Chans); diff --git a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C index 031bb2b..fb42deb 100644 --- a/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C +++ b/SpiralSound/Plugins/MixSwitchPlugin/MixSwitchPluginGUI.C @@ -27,7 +27,18 @@ MixSwitchPluginGUI::MixSwitchPluginGUI (int w, int h, MixSwitchPlugin *o, ChannelHandler *ch, const HostInfo *Info) : SpiralPluginGUI (w, h, o, ch) { - m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); + m_Switch = new Fl_Counter (15, 14, 50, 20, "Select"); + m_Switch->labelsize (10); + m_Switch->type (FL_SIMPLE_COUNTER); + m_Switch->box (FL_PLASTIC_UP_BOX); + m_Switch->color (Info->GUI_COLOUR); + m_Switch->selection_color (Info->GUI_COLOUR); + m_Switch->step (1); + m_Switch->value (1); + m_Switch->callback ((Fl_Callback*) cb_Switch); + add (m_Switch); + + m_Chans = new Fl_Counter (15, 46, 50, 20, "Channels"); m_Chans->labelsize (10); m_Chans->type (FL_SIMPLE_COUNTER); m_Chans->box (FL_PLASTIC_UP_BOX); @@ -38,16 +49,7 @@ SpiralPluginGUI (w, h, o, ch) m_Chans->callback ((Fl_Callback*) cb_Chans); add (m_Chans); - 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 (Info->GUI_COLOUR); - m_Switch->selection_color (Info->GUI_COLOUR); - m_Switch->step (1); - m_Switch->value (1); - m_Switch->callback ((Fl_Callback*) cb_Switch); - add (m_Switch); + end(); } inline void MixSwitchPluginGUI::cb_Chans_i (Fl_Counter* o, void* v) { diff --git a/SpiralSound/Plugins/MixerPlugin/MixerPlugin.C b/SpiralSound/Plugins/MixerPlugin/MixerPlugin.C index 59bd89f..1ec3ebb 100644 --- a/SpiralSound/Plugins/MixerPlugin/MixerPlugin.C +++ b/SpiralSound/Plugins/MixerPlugin/MixerPlugin.C @@ -52,7 +52,7 @@ m_NumChannels(0) m_Version = 2; m_PluginInfo.Name="Mixer"; m_PluginInfo.Width=80; - m_PluginInfo.Height=145; + m_PluginInfo.Height=140; CreatePorts (); for (int n=0; nRegister("Value", &m_GUIArgs.Value); diff --git a/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C b/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C index d290e7e..eea0dc0 100644 --- a/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C +++ b/SpiralSound/Plugins/MixerPlugin/MixerPluginGUI.C @@ -27,14 +27,14 @@ SpiralPluginGUI(w,h,o,ch) { m_GUIColour=(Fl_Color)Info->GUI_COLOUR; for (int n=0; ntype (FL_HORIZONTAL); add (m_MainPack); // start with four... AddChan(); AddChan(); AddChan(); AddChan(); - m_Buttons = new Fl_Pack (0, 122, 45, 20); + m_Buttons = new Fl_Pack (0, 118, 45, 20); m_Buttons->type (FL_HORIZONTAL); add (m_Buttons); m_Delete = new Fl_Button (2, 0, 20, 20, "-"); diff --git a/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C b/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C index 795febf..8933a06 100644 --- a/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C +++ b/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPlugin.C @@ -49,7 +49,7 @@ NoteSnapPlugin::NoteSnapPlugin() : m_Out(0) { m_PluginInfo.Name="Note Snap"; - m_PluginInfo.Width=90; + m_PluginInfo.Width=80; m_PluginInfo.Height=80; m_PluginInfo.NumInputs=1; m_PluginInfo.NumOutputs=2; diff --git a/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C b/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C index 7d3d409..7581dbb 100644 --- a/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C +++ b/SpiralSound/Plugins/NoteSnapPlugin/NoteSnapPluginGUI.C @@ -24,21 +24,21 @@ NoteSnapPluginGUI::NoteSnapPluginGUI(int w, int h,NoteSnapPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) -{ +{ int KeyWidth=10,Note,Pos=0,Count=0; - + for (int n=0; ntype(1); - m_Key[n]->selection_color(FL_RED); + m_Key[n]->selection_color(FL_RED); m_Key[n]->box(FL_THIN_UP_BOX); m_Key[n]->labelsize(10); m_Key[n]->when(FL_WHEN_CHANGED); @@ -46,18 +46,18 @@ SpiralPluginGUI(w,h,o,ch) m_Key[n]->color(FL_WHITE); m_Key[n]->callback((Fl_Callback*)cb_Key, &m_Num[n]); add(m_Key[n]); - } + } } - + Count=0; for (int n=0; ntype(1); - m_Key[n]->selection_color(FL_RED); + m_Key[n]->selection_color(FL_RED); m_Key[n]->box(FL_THIN_UP_BOX); m_Key[n]->labelsize(10); m_Key[n]->when(FL_WHEN_CHANGED); @@ -67,11 +67,11 @@ SpiralPluginGUI(w,h,o,ch) } else { - Count++; Pos=Count*KeyWidth; + Count++; } } - + end(); } diff --git a/SpiralSound/Plugins/OperatorPlugin/OperatorPlugin.C b/SpiralSound/Plugins/OperatorPlugin/OperatorPlugin.C index fe009e9..3f7f4fe 100644 --- a/SpiralSound/Plugins/OperatorPlugin/OperatorPlugin.C +++ b/SpiralSound/Plugins/OperatorPlugin/OperatorPlugin.C @@ -52,7 +52,7 @@ m_Constant(0) m_Version=2; m_PluginInfo.Name="Operator"; - m_PluginInfo.Width=90; + m_PluginInfo.Width=120; m_PluginInfo.Height=80; m_PluginInfo.NumInputs=2; m_PluginInfo.NumOutputs=1; @@ -83,7 +83,6 @@ SpiralGUIType *OperatorPlugin::CreateGUI() void OperatorPlugin::Execute() { float Freq=0, OldFreq=0; - switch (m_Operator) { case ADD : @@ -136,30 +135,32 @@ void OperatorPlugin::Execute() } } break; - case MUL : + case MUL : if (InputExists(1)) { for (int n=0; nBUFSIZE; n++) { SetOutput(0,n,GetInput(0,n)*GetInput(1,n)); - } + } } else { for (int n=0; nBUFSIZE; n++) { SetOutput(0,n,GetInput(0,n)*m_Constant); - } + } } break; + default: + break; } } void OperatorPlugin::ExecuteCommands() { } - -void OperatorPlugin::StreamOut(ostream &s) + +void OperatorPlugin::StreamOut(ostream &s) { s< #include -#include +//#include //////////////////////////////////////////// OperatorPluginGUI::OperatorPluginGUI(int w, int h,OperatorPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) -{ - int KeyWidth=10,Note,Pos=0,Count=0; - - m_Add = new Fl_Button(5, 15, 15, 15,"+"); - m_Add->type(1); - m_Add->value(1); - m_Add->selection_color(Info->GUI_COLOUR); - m_Add->callback((Fl_Callback*)cb_Add); - - m_Sub = new Fl_Button(5, 30, 15, 15,"-"); - m_Sub->type(1); - m_Sub->selection_color(Info->GUI_COLOUR); - m_Sub->callback((Fl_Callback*)cb_Sub); - - m_Mul = new Fl_Button(5, 45, 15, 15,"*"); - m_Mul->type(1); - m_Mul->selection_color(Info->GUI_COLOUR); - m_Mul->callback((Fl_Callback*)cb_Mul); - - m_Div = new Fl_Button(5, 60, 15, 15,"/"); - m_Div->type(1); - m_Div->selection_color(Info->GUI_COLOUR); - m_Div->callback((Fl_Callback*)cb_Div); - - m_Constant = new Fl_Input(25, 15, 50, 20, "Constant"); - m_Constant->color(Info->GUI_COLOUR); - m_Constant->labelsize(8); - m_Constant->align(FL_ALIGN_BOTTOM|FL_ALIGN_CENTER); - m_Constant->textsize(10); - m_Constant->value("0"); - m_Constant->when(FL_WHEN_ENTER_KEY); - m_Constant->callback((Fl_Callback*)cb_Constant); - - end(); -} +{ + m_Constant = new Fl_Counter (5, 15, 110, 20, "Constant"); + m_Constant->color (Info->GUI_COLOUR); + m_Constant->box (FL_PLASTIC_UP_BOX); + m_Constant->labelsize (10); + m_Constant->align (FL_ALIGN_BOTTOM | FL_ALIGN_CENTER); + m_Constant->textsize (10); + m_Constant->value (0); + m_Constant->step (0.01); + m_Constant->lstep (1); + //m_Constant->when (FL_WHEN_ENTER_KEY); + m_Constant->callback ((Fl_Callback*)cb_Constant); + + m_Add = new Fl_Button (5, 50, 20, 20, "+"); + m_Add->type (FL_RADIO_BUTTON); + m_Add->box (FL_PLASTIC_UP_BOX); + m_Add->color (Info->GUI_COLOUR); + m_Add->selection_color (Info->GUI_COLOUR); + m_Add->value (true); + m_Add->callback ((Fl_Callback*)cb_Add); + m_Sub = new Fl_Button (35, 50, 20, 20, "-"); + m_Sub->type (FL_RADIO_BUTTON); + m_Sub->box (FL_PLASTIC_UP_BOX); + m_Sub->color (Info->GUI_COLOUR); + m_Sub->selection_color (Info->GUI_COLOUR); + m_Sub->callback ((Fl_Callback*)cb_Sub); + m_Mul = new Fl_Button (65, 50, 20, 20, "x"); + m_Mul->type (FL_RADIO_BUTTON); + m_Mul->box (FL_PLASTIC_UP_BOX); + m_Mul->color (Info->GUI_COLOUR); + m_Mul->selection_color (Info->GUI_COLOUR); + m_Mul->callback ((Fl_Callback*)cb_Mul); + + m_Div = new Fl_Button (95, 50, 20, 20, "÷"); + m_Div->type (FL_RADIO_BUTTON); + m_Div->box (FL_PLASTIC_UP_BOX); + m_Div->color (Info->GUI_COLOUR); + m_Div->selection_color (Info->GUI_COLOUR); + m_Div->callback ((Fl_Callback*)cb_Div); + + end(); +} void OperatorPluginGUI::UpdateValues(SpiralPlugin *o) { @@ -76,87 +83,53 @@ void OperatorPluginGUI::UpdateValues(SpiralPlugin *o) case OperatorPlugin::SUB : m_Sub->value(true); break; case OperatorPlugin::MUL : m_Mul->value(true); break; case OperatorPlugin::DIV : m_Div->value(true); break; + default: break; } - char t[256]; - sprintf(t,"%f",Plugin->GetConstant()); - m_Constant->value(t); + //char t[256]; + //sprintf(t,"%f",Plugin->GetConstant()); + m_Constant->value (Plugin->GetConstant()); } //// Callbacks //// -inline void OperatorPluginGUI::cb_Add_i(Fl_Button* o, void* v) -{ - if (o->value()) - { - m_Sub->value(false); - m_Mul->value(false); - m_Div->value(false); - m_GUICH->Set("Operator",(int)OperatorPlugin::ADD); - } - else - { - o->value(true); - } +inline void OperatorPluginGUI::cb_Add_i (Fl_Button* o, void* v) { + if (o->value()) m_GUICH->Set ("Operator", (int)OperatorPlugin::ADD); } -void OperatorPluginGUI::cb_Add(Fl_Button* o, void* v) -{ ((OperatorPluginGUI*)(o->parent()))->cb_Add_i(o,v);} -inline void OperatorPluginGUI::cb_Sub_i(Fl_Button* o, void* v) -{ - if (o->value()) - { - m_Add->value(false); - m_Mul->value(false); - m_Div->value(false); - m_GUICH->Set("Operator",(int)OperatorPlugin::SUB); - } - else - { - o->value(true); - } +void OperatorPluginGUI::cb_Add (Fl_Button* o, void* v) { + ((OperatorPluginGUI*)(o->parent()))->cb_Add_i (o, v); } -void OperatorPluginGUI::cb_Sub(Fl_Button* o, void* v) -{ ((OperatorPluginGUI*)(o->parent()))->cb_Sub_i(o,v);} -inline void OperatorPluginGUI::cb_Mul_i(Fl_Button* o, void* v) -{ - if (o->value()) - { - m_Add->value(false); - m_Sub->value(false); - m_Div->value(false); - m_GUICH->Set("Operator",(int)OperatorPlugin::MUL); - } - else - { - o->value(true); - } +inline void OperatorPluginGUI::cb_Sub_i (Fl_Button* o, void* v) { + if (o->value()) m_GUICH->Set ("Operator",(int)OperatorPlugin::SUB); } -void OperatorPluginGUI::cb_Mul(Fl_Button* o, void* v) -{ ((OperatorPluginGUI*)(o->parent()))->cb_Mul_i(o,v);} -inline void OperatorPluginGUI::cb_Div_i(Fl_Button* o, void* v) -{ - if (o->value()) - { - m_Add->value(false); - m_Sub->value(false); - m_Mul->value(false); - m_GUICH->Set("Operator",(int)OperatorPlugin::DIV); - } - else - { - o->value(true); - } +void OperatorPluginGUI::cb_Sub (Fl_Button* o, void* v) { + ((OperatorPluginGUI*)(o->parent()))->cb_Sub_i (o, v); } -void OperatorPluginGUI::cb_Div(Fl_Button* o, void* v) -{ ((OperatorPluginGUI*)(o->parent()))->cb_Div_i(o,v);} -inline void OperatorPluginGUI::cb_Constant_i(Fl_Input* o, void* v) -{ - m_GUICH->Set("Constant",(float)strtod(o->value(),NULL)); +inline void OperatorPluginGUI::cb_Mul_i (Fl_Button* o, void* v) { + if (o->value()) m_GUICH->Set ("Operator",(int)OperatorPlugin::MUL); +} + +void OperatorPluginGUI::cb_Mul (Fl_Button* o, void* v) { + ((OperatorPluginGUI*)(o->parent()))->cb_Mul_i (o, v); +} + +inline void OperatorPluginGUI::cb_Div_i (Fl_Button* o, void* v) { + if (o->value()) m_GUICH->Set("Operator",(int)OperatorPlugin::DIV); +} + +void OperatorPluginGUI::cb_Div (Fl_Button* o, void* v) { + ((OperatorPluginGUI*)(o->parent()))->cb_Div_i (o, v); +} + +inline void OperatorPluginGUI::cb_Constant_i (Fl_Counter* o, void* v) { + m_GUICH->Set ("Constant", (float) /*strtod(*/ o->value() /*,NULL)*/); +} + +void OperatorPluginGUI::cb_Constant (Fl_Counter* o, void* v) { + ((OperatorPluginGUI*)(o->parent()))->cb_Constant_i (o, v); } -void OperatorPluginGUI::cb_Constant(Fl_Input* o, void* v) -{ ((OperatorPluginGUI*)(o->parent()))->cb_Constant_i(o,v);} const string OperatorPluginGUI::GetHelpText(const string &loc){ return string("") diff --git a/SpiralSound/Plugins/OperatorPlugin/OperatorPluginGUI.h b/SpiralSound/Plugins/OperatorPlugin/OperatorPluginGUI.h index 752ca52..7aa536c 100644 --- a/SpiralSound/Plugins/OperatorPlugin/OperatorPluginGUI.h +++ b/SpiralSound/Plugins/OperatorPlugin/OperatorPluginGUI.h @@ -14,50 +14,38 @@ * 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 -#include - -#include "../Widgets/Fl_Knob.H" +#include #include "../Widgets/Fl_DragBar.H" #include "OperatorPlugin.h" #include "../SpiralPluginGUI.h" -#ifndef PluginGUI -#define PluginGUI - -static const int NUM_KEYS = 12; -class OperatorPluginGUI : public SpiralPluginGUI -{ -public: - OperatorPluginGUI(int w, int h, OperatorPlugin *o,ChannelHandler *ch,const HostInfo *Info); - - virtual void UpdateValues(SpiralPlugin *o); - -protected: - const string GetHelpText(const string &loc); +#ifndef OpPluginGUI +#define OpPluginGUI -private: - Fl_Button *m_Add,*m_Sub,*m_Mul,*m_Div; - Fl_Input* m_Constant; - - //// Callbacks //// - inline void cb_Add_i(Fl_Button* o, void* v); - static void cb_Add(Fl_Button* o, void* v); - inline void cb_Sub_i(Fl_Button* o, void* v); - static void cb_Sub(Fl_Button* o, void* v); - inline void cb_Mul_i(Fl_Button* o, void* v); - static void cb_Mul(Fl_Button* o, void* v); - inline void cb_Div_i(Fl_Button* o, void* v); - static void cb_Div(Fl_Button* o, void* v); - - inline void cb_Constant_i(Fl_Input* o, void* v); - static void cb_Constant(Fl_Input* o, void* v); +class OperatorPluginGUI : public SpiralPluginGUI { + public: + OperatorPluginGUI (int w, int h, OperatorPlugin *o, ChannelHandler *ch, const HostInfo *Info); + virtual void UpdateValues(SpiralPlugin *o); + protected: + const string GetHelpText(const string &loc); + private: + Fl_Button *m_Add, *m_Sub, *m_Mul, *m_Div; + Fl_Counter *m_Constant; + //// Callbacks //// + inline void cb_Add_i (Fl_Button* o, void* v); + static void cb_Add (Fl_Button* o, void* v); + inline void cb_Sub_i (Fl_Button* o, void* v); + static void cb_Sub (Fl_Button* o, void* v); + inline void cb_Mul_i (Fl_Button* o, void* v); + static void cb_Mul (Fl_Button* o, void* v); + inline void cb_Div_i (Fl_Button* o, void* v); + static void cb_Div (Fl_Button* o, void* v); + inline void cb_Constant_i (Fl_Counter* o, void* v); + static void cb_Constant (Fl_Counter* o, void* v); }; #endif diff --git a/SpiralSound/Plugins/OscillatorPlugin/Makefile.in b/SpiralSound/Plugins/OscillatorPlugin/Makefile.in index 158ed2e..fd73474 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/Makefile.in +++ b/SpiralSound/Plugins/OscillatorPlugin/Makefile.in @@ -1,22 +1,19 @@ ############################################################################# # Makefile for building OscillatorPlugin.so -# Generated by tmake at 22:13, 2001/09/17 -# Project: OscillatorPlugin -# 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 @@ -43,34 +40,40 @@ mandir = @mandir@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ - ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ ../Widgets/Fl_DragBar.H \ - ../../Sample.h \ + ../Widgets/Fl_LED_Button.H \ + ../GUI/WS_Square.h \ + ../GUI/WS_Noise.h \ + ../GUI/WS_Saw.h \ + ../../Sample.h \ + ../../ChannelHandler.h \ OscillatorPlugin.h \ OscillatorPluginGUI.h SOURCES = ../SpiralPlugin.C \ ../SpiralPluginGUI.C \ - ../../ChannelHandler.C \ ../Widgets/Fl_Knob.cxx \ + ../Widgets/Fl_LED_Button.cxx \ ../Widgets/Fl_DragBar.cxx \ ../../Sample.C \ + ../../ChannelHandler.C \ OscillatorPlugin.C \ OscillatorPluginGUI.C OBJECTS = ../SpiralPlugin.o \ ../SpiralPluginGUI.o \ - ../../ChannelHandler.o \ ../Widgets/Fl_Knob.o \ ../Widgets/Fl_DragBar.o \ + ../Widgets/Fl_LED_Button.o \ ../../Sample.o \ + ../../ChannelHandler.o \ OscillatorPlugin.o \ OscillatorPluginGUI.o -INTERFACES = -UICDECLS = -UICIMPLS = -SRCMOC = -OBJMOC = -DIST = +INTERFACES = +UICDECLS = +UICIMPLS = +SRCMOC = +OBJMOC = +DIST = TARGET = OscillatorPlugin.so ####### Implicit rules @@ -97,7 +100,7 @@ TARGET = OscillatorPlugin.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 @@ -137,6 +140,9 @@ install: ../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 @@ -146,24 +152,24 @@ install: OscillatorPlugin.o: OscillatorPlugin.C \ OscillatorPlugin.h \ + OscillatorPluginGUI.h \ ../SpiralPlugin.h \ - ../../Sample.h \ + ../SpiralPluginGUI.h \ ../../SpiralInfo.h \ ../../Sample.h \ - OscillatorPluginGUI.h \ - ../Widgets/Fl_Knob.H \ - ../SpiralPluginGUI.h \ - ../Widgets/Fl_DragBar.H \ SpiralIcon.xpm OscillatorPluginGUI.o: OscillatorPluginGUI.C \ OscillatorPluginGUI.h \ + OscillatorPlugin.h \ ../Widgets/Fl_Knob.H \ - ../SpiralPluginGUI.h \ ../Widgets/Fl_DragBar.H \ - OscillatorPlugin.h \ + ../Widgets/Fl_LED_Button.H \ + ../GUI/WS_Square.h \ + ../GUI/WS_Noise.h \ + ../GUI/WS_Saw.h \ + ../SpiralPluginGUI.h \ ../SpiralPlugin.h \ - ../../Sample.h \ ../../SpiralInfo.h \ ../../Sample.h diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.C b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.C index 4212ae8..e3260ad 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.C +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.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 "OscillatorPlugin.h" #include "OscillatorPluginGUI.h" #include @@ -56,6 +56,7 @@ m_Type(SQUARE), m_Octave(0), m_FineFreq(1.0f), m_PulseWidth(0.5f), +m_SHLen (0.1f), m_ModAmount(1.0f), m_Noisev(0), m_FreqModBuf(NULL), @@ -63,20 +64,20 @@ m_PulseWidthModBuf(NULL), m_SHModBuf(NULL) { - m_CyclePos=0; + m_CyclePos=0; m_Note=0; m_LastFreq=0; - + m_PluginInfo.Name="Oscillator"; - m_PluginInfo.Width=245; - m_PluginInfo.Height=110; + m_PluginInfo.Width=210; + m_PluginInfo.Height=140; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; m_PluginInfo.PortTips.push_back("Frequency CV"); m_PluginInfo.PortTips.push_back("PulseWidth CV"); m_PluginInfo.PortTips.push_back("Sample & Hold length CV"); m_PluginInfo.PortTips.push_back("Output"); - + m_AudioCH->Register("Octave",&m_Octave); m_AudioCH->Register("FineFreq",&m_FineFreq); m_AudioCH->Register("PulseWidth",&m_PulseWidth); @@ -90,7 +91,7 @@ OscillatorPlugin::~OscillatorPlugin() } PluginInfo &OscillatorPlugin::Initialise(const HostInfo *Host) -{ +{ return SpiralPlugin::Initialise(Host); } @@ -98,7 +99,7 @@ SpiralGUIType *OscillatorPlugin::CreateGUI() { return new OscillatorPluginGUI(m_PluginInfo.Width, m_PluginInfo.Height, - this,m_AudioCH,m_HostInfo); + this,m_AudioCH,m_HostInfo); } void OscillatorPlugin::Execute() @@ -107,57 +108,57 @@ void OscillatorPlugin::Execute() float Freq=0; float CycleLen=0; int samplelen, PW; - + switch (m_Type) { case SQUARE: for (int n=0; nBUFSIZE; n++) { if (InputExists(0)) Freq=GetInputPitch(0,n); - else Freq=110; - Freq*=m_FineFreq; + else Freq=110; + Freq*=m_FineFreq; if (m_Octave>0) Freq*=1<<(m_Octave); if (m_Octave<0) Freq/=1<<(-m_Octave); CycleLen = m_HostInfo->SAMPLERATE/Freq; PW = (int)((m_PulseWidth+GetInput(IN_PW,n)*m_ModAmount) * CycleLen); - + // calculate square wave pattern m_CyclePos++; - if (m_CyclePos>CycleLen) m_CyclePos=0; - + if (m_CyclePos>CycleLen) m_CyclePos=0; + if (m_CyclePosBUFSIZE; n++) { if (InputExists(0)) Freq=GetInputPitch(0,n); - else Freq=110; + else Freq=110; Freq*=m_FineFreq; if (m_Octave>0) Freq*=1<<(m_Octave); - if (m_Octave<0) Freq/=1<<(-m_Octave); + if (m_Octave<0) Freq/=1<<(-m_Octave); CycleLen = m_HostInfo->SAMPLERATE/Freq; PW = (int)((m_PulseWidth+GetInput(IN_PW,n)*m_ModAmount) * CycleLen); - // get normailise position between cycle + // get normailise position between cycle m_CyclePos++; - if (m_CyclePos>CycleLen) m_CyclePos=0; - - if (m_CyclePosCycleLen) m_CyclePos=0; + + if (m_CyclePos1 SetOutput(OUT_MAIN,n,Linear(0,PW,m_CyclePos,-1,1)); } - else + else { // after pw 1->-1 SetOutput(OUT_MAIN,n,Linear(PW,CycleLen,m_CyclePos,1,-1)); - } - } + } + } break; - + case NOISE: for (int n=0; nBUFSIZE; n++) { @@ -165,7 +166,7 @@ void OscillatorPlugin::Execute() //modulate the sample & hold length samplelen = (int)((m_SHLen+GetInput(IN_SHLEN,n)*m_ModAmount)*m_HostInfo->SAMPLERATE); - + // do sample & hold on the noise if (m_CyclePos>samplelen) { @@ -175,7 +176,7 @@ void OscillatorPlugin::Execute() SetOutput(OUT_MAIN,n,m_Noisev/(float)SHRT_MAX); } break; - + case NONE: break; } } diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.h b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.h index a9559a7..1124bc8 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.h +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPlugin.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. -*/ +*/ #include "../SpiralPlugin.h" #include @@ -33,14 +33,14 @@ public: virtual void Execute(); virtual void StreamOut(ostream &s); virtual void StreamIn(istream &s); - + typedef char Type; enum {NONE,SQUARE,SAW,NOISE}; - + void ModulateFreq(Sample *data) {m_FreqModBuf=data;} void ModulatePulseWidth(Sample *data) {m_PulseWidthModBuf=data;} void ModulateSHLen(Sample *data) {m_SHModBuf=data;} - + void NoteTrigger(int V,int s,int v); int GetOctave() {return m_Octave;} float GetFineFreq() {return m_FineFreq;} @@ -48,29 +48,29 @@ public: Type GetType() {return m_Type;} float GetSHLen() {return m_SHLen;} float GetModAmount() {return m_ModAmount;} - + private: // Voice specific parameter int m_Note; int m_CyclePos; float m_LastFreq; - - // Common voice parameters + + // Common voice parameters Type m_Type; int m_Octave; float m_FineFreq; - float m_PulseWidth; - float m_SHLen; + float m_PulseWidth; + float m_SHLen; float m_ModAmount; short m_Noisev; - + Sample *m_FreqModBuf; Sample *m_PulseWidthModBuf; Sample *m_SHModBuf; - + static const int FIXED; - + friend istream &operator>>(istream &s, OscillatorPlugin &o); friend ostream &operator<<(ostream &s, OscillatorPlugin &o); }; diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C index 09b23c2..f2d7d47 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.C @@ -14,373 +14,404 @@ * 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 "OscillatorPluginGUI.h" #include #include +#include "../GUI/WS_Square.h" +#include "../GUI/WS_Noise.h" +#include "../GUI/WS_Saw.h" -static unsigned char *image_Square[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ...... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . ... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ...... ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Noise[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . . . ", -(unsigned char*)" . . . . ", -(unsigned char*)" ... . . . . .. ", -(unsigned char*)" . . . . .. ", -(unsigned char*)" . . . . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Saw[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . .... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; - - -OscillatorPluginGUI::OscillatorPluginGUI(int w, int h,OscillatorPlugin *o,ChannelHandler *ch,const HostInfo *Info) : -SpiralPluginGUI(w,h,o,ch), -pixmap_Square(image_Square), -pixmap_Noise(image_Noise), -pixmap_Saw(image_Saw), -m_FineFreq(0), -m_Octave(0) -{ - ShapeSquare = new Fl_Check_Button(5, 15, 55, 30); - ShapeSquare->type(102); - ShapeSquare->down_box(FL_DIAMOND_DOWN_BOX); - ShapeSquare->selection_color(Info->GUI_COLOUR); - ShapeSquare->set(); - pixmap_Square.label(ShapeSquare); - ShapeSquare->callback((Fl_Callback*)cb_Square); - - ShapeNoise = new Fl_Check_Button(5, 65, 55, 30); - ShapeNoise->type(102); - ShapeNoise->down_box(FL_DIAMOND_DOWN_BOX); - ShapeNoise->selection_color(Info->GUI_COLOUR); - pixmap_Noise.label(ShapeNoise); - ShapeNoise->callback((Fl_Callback*)cb_Noise); - - ShapeSaw = new Fl_Check_Button(5, 40, 55, 30); - ShapeSaw->type(102); - ShapeSaw->down_box(FL_DIAMOND_DOWN_BOX); - ShapeSaw->selection_color(Info->GUI_COLOUR); - pixmap_Saw.label(ShapeSaw); - ShapeSaw->callback((Fl_Callback*)cb_Saw); - - Freq = new Fl_Knob(188, 2, 40, 40, "Octave"); - Freq->color(Info->GUI_COLOUR); - Freq->type(Fl_Knob::LINELIN); - Freq->labelsize(10); - Freq->maximum(6); - Freq->step(1); - Freq->value(3); - Freq->scaleticks(6); - Freq->cursor(50); - Freq->callback((Fl_Callback*)cb_Freq); - - FineTune = new Fl_Knob(112, 22, 65, 65, "Fine Tune"); - FineTune->color(Info->GUI_COLOUR); - FineTune->type(Fl_Knob::LINELIN); - FineTune->labelsize(10); - FineTune->scaleticks(20); - FineTune->maximum(1.414); - FineTune->step(0.000001); - FineTune->value(1); - FineTune->callback((Fl_Callback*)cb_FineTune); - - ModAmount = new Fl_Knob(188, 54, 40, 40, "Mod Depth"); - ModAmount->color(Info->GUI_COLOUR); - ModAmount->type(Fl_Knob::LINELIN); - ModAmount->labelsize(10); - ModAmount->maximum(2.0f); - ModAmount->step(0.001); - ModAmount->value(1.0); - ModAmount->callback((Fl_Callback*)cb_ModAmount); - - PulseWidth = new Fl_Slider(60, 20, 20, 70, "PW"); - PulseWidth->type(4); - PulseWidth->selection_color(Info->GUI_COLOUR); - PulseWidth->labelsize(10); - PulseWidth->maximum(1); - PulseWidth->step(0.01); - PulseWidth->value(0.5); - PulseWidth->callback((Fl_Callback*)cb_PulseWidth); - - SHLen = new Fl_Slider(80, 20, 20, 70, "SH"); - SHLen->type(4); - SHLen->selection_color(Info->GUI_COLOUR); - SHLen->labelsize(10); - SHLen->maximum(0.2); - SHLen->step(0.001); - SHLen->value(0.1); - SHLen->callback((Fl_Callback*)cb_SHLen); - - 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_freq = new Fl_Output(65,h+5, 58, 15, "Frequency"); - m_out_freq->box(FL_ENGRAVED_BOX); - m_out_freq->color(16); - m_out_freq->labelsize(10); - m_out_freq->textsize(10); - m_out_freq->hide(); - m_out_freq->set_output(); - - m_out_mod = new Fl_Output(65,h+22, 48, 15, "Modulation"); - m_out_mod->box(FL_ENGRAVED_BOX); - m_out_mod->color(16); - m_out_mod->labelsize(10); - m_out_mod->textsize(10); - m_out_mod->hide(); - m_out_mod->set_output(); - - m_out_pulseW = new Fl_Output(190,h+5, 48, 15, "Pulse width"); - m_out_pulseW->box(FL_ENGRAVED_BOX); - m_out_pulseW->color(16); - m_out_pulseW->labelsize(10); - m_out_pulseW->textsize(10); - m_out_pulseW->hide(); - m_out_pulseW->set_output(); - - m_out_SHlen = new Fl_Output(190,h+22, 48, 15, "Sampling"); - m_out_SHlen->box(FL_ENGRAVED_BOX); - m_out_SHlen->color(16); - m_out_SHlen->labelsize(10); - m_out_SHlen->textsize(10); - m_out_SHlen->hide(); - m_out_SHlen->set_output(); - - end(); -} - -extern "C" int sprintf(char *,const char *,...); - -void OscillatorPluginGUI::UpdateValues(SpiralPlugin *o) +OscillatorPluginGUI::OscillatorPluginGUI (int w, int h, OscillatorPlugin *o, ChannelHandler *ch, const HostInfo *Info) : +SpiralPluginGUI (w, h, o, ch), +m_PixmapSquare (image_Square), +m_PixmapNoise (image_Noise), +m_PixmapSaw (image_Saw), +m_FineFreq (0) { - OscillatorPlugin *Plugin = (OscillatorPlugin*)o; - - ShapeSquare->value(0); - ShapeNoise->value(0); - ShapeSaw->value(0); - - switch (Plugin->GetType()) - { - case OscillatorPlugin::SQUARE : ShapeSquare->value(1); break; - case OscillatorPlugin::NOISE : ShapeNoise->value(1); break; - case OscillatorPlugin::SAW : ShapeSaw->value(1); break; - case OscillatorPlugin::NONE : break; - } - - Freq->value(Plugin->GetOctave()+3); - ModAmount->value(Plugin->GetModAmount()); - FineTune->value(sqrt(Plugin->GetFineFreq())); - PulseWidth->value(Plugin->GetPulseWidth()); - - SHLen->value(0.2f-Plugin->GetSHLen()); - - char str[10]; - float fr = 110.0f * Plugin->GetFineFreq(); - m_FineFreq=Plugin->GetFineFreq(); - int oc = Plugin->GetOctave(); - m_Octave = oc; - if (oc > 0) fr *= 1 << oc; - if (oc < 0) fr /= 1 << (-oc); - sprintf(str,"%4.1f Hz", fr); - m_out_freq->value(str); - sprintf(str,"%4.0f %%", 100*Plugin->GetPulseWidth()); - m_out_pulseW->value(str); - sprintf(str,"%4.0f %%", 100*Plugin->GetModAmount()); - m_out_mod->value(str); - sprintf(str,"%4.3f s", Plugin->GetSHLen()); - m_out_SHlen->value(str); -} - - -//// Callbacks //// - -inline void OscillatorPluginGUI::cb_Freq_i(Fl_Knob* o, void* v) -{ -char str[10]; - m_GUICH->Set("Octave",(int)o->value()-3); - m_Octave = (int)o->value()-3; - float fr = 110.0f * m_FineFreq; - int oc = m_Octave; - if (oc > 0) fr *= 1 << oc; - if (oc < 0) fr /= 1 << (-oc); - sprintf(str,"%4.1f Hz", fr); - m_out_freq->value(str); -} - -void OscillatorPluginGUI::cb_Freq(Fl_Knob* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_Freq_i(o,v); } - -inline void OscillatorPluginGUI::cb_FineTune_i(Fl_Knob* o, void* v) -{ - char str[10]; - m_GUICH->Set("FineFreq",(float)(o->value()*o->value())); - m_FineFreq=(float)(o->value()*o->value()); - float fr = 110.0f * m_FineFreq; - int oc = m_Octave; - if (oc > 0) fr *= 1 << oc; - if (oc < 0) fr /= 1 << (-oc); - sprintf(str,"%4.1f Hz", fr); - m_out_freq->value(str); -} - -void OscillatorPluginGUI::cb_FineTune(Fl_Knob* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_FineTune_i(o,v); } - -inline void OscillatorPluginGUI::cb_PulseWidth_i(Fl_Slider* o, void* v) -{ - char str[10]; - m_GUICH->Set("PulseWidth",(float)o->value()); - sprintf(str,"%4.0f %%",(float)(100*o->value())); - m_out_pulseW->value(str); + m_ShapeSquare = new Fl_LED_Button (2, 24, 23, 23); + m_ShapeSquare->type (FL_RADIO_BUTTON); + m_PixmapSquare.label (m_ShapeSquare); + m_ShapeSquare->set(); + m_ShapeSquare->callback ((Fl_Callback*)cb_Square); + add (m_ShapeSquare); + + m_ShapeSaw = new Fl_LED_Button (2, 58, 23, 23); + m_ShapeSaw->type (FL_RADIO_BUTTON); + m_PixmapSaw.label (m_ShapeSaw); + m_ShapeSaw->callback ((Fl_Callback*)cb_Saw); + add (m_ShapeSaw); + + m_ShapeNoise = new Fl_LED_Button (2, 92, 23, 23); + m_ShapeNoise->type (FL_RADIO_BUTTON); + m_PixmapNoise.label (m_ShapeNoise); + m_ShapeNoise->callback ((Fl_Callback*)cb_Noise); + add (m_ShapeNoise); + + m_Tabs = new Fl_Tabs (44, 10, 168, 124); + m_Tabs->box (FL_PLASTIC_DOWN_BOX); + m_Tabs->color (Info->GUI_COLOUR); + add (m_Tabs); + + m_CtlGroup = new Fl_Group (44, 24, 168, 110, "Control"); + m_CtlGroup->labelsize (10); + m_Tabs->add (m_CtlGroup); + + m_PulseWidth = new Fl_Slider (50, 32, 20, 86, "PW"); + m_PulseWidth->user_data ((void*)(this)); + m_PulseWidth->type (FL_VERT_NICE_SLIDER); + m_PulseWidth->box (FL_PLASTIC_DOWN_BOX); + m_PulseWidth->selection_color (Info->GUI_COLOUR); + m_PulseWidth->labelsize (10); + m_PulseWidth->maximum (1); + m_PulseWidth->step (0.01); + m_PulseWidth->value (0.5); + m_PulseWidth->callback ((Fl_Callback*)cb_PulseWidth); + m_CtlGroup->add (m_PulseWidth); + + m_SHLen = new Fl_Slider (74, 32, 20, 86, "SH"); + m_SHLen->user_data ((void*)(this)); + m_SHLen->type (FL_VERT_NICE_SLIDER); + m_SHLen->box (FL_PLASTIC_DOWN_BOX); + m_SHLen->selection_color (Info->GUI_COLOUR); + m_SHLen->labelsize (10); + m_SHLen->maximum (0.2); + m_SHLen->step (0.001); + m_SHLen->value (0.1); + m_SHLen->callback ((Fl_Callback*)cb_SHLen); + m_CtlGroup->add (m_SHLen); + + m_FineTune = new Fl_Knob (98, 32, 60, 60, "Fine Tune"); + m_FineTune->user_data ((void*)(this)); + m_FineTune->color (Info->GUI_COLOUR); + m_FineTune->type (Fl_Knob::LINELIN); + m_FineTune->labelsize (10); + m_FineTune->scaleticks (20); + m_FineTune->maximum (1.414); + m_FineTune->step (0.000001); + m_FineTune->value (1); + m_FineTune->callback ((Fl_Callback*)cb_FineTune); + m_CtlGroup->add (m_FineTune); + + m_Reset = new Fl_Button (108, 106, 40, 20, "Reset"); + m_Reset->user_data ((void*)(this)); + m_Reset->labelsize (10); + m_Reset->box (FL_PLASTIC_UP_BOX); + m_Reset->color (Info->GUI_COLOUR); + m_Reset->selection_color (Info->GUI_COLOUR); + m_Reset->callback ((Fl_Callback*)cb_Reset); + m_CtlGroup->add (m_Reset); + + m_Octave = new Fl_Knob (160, 27, 40, 40, "Octave"); + m_Octave->user_data ((void*)(this)); + m_Octave->color (Info->GUI_COLOUR); + m_Octave->type (Fl_Knob::LINELIN); + m_Octave->labelsize (10); + m_Octave->maximum (6); + m_Octave->step (1); + m_Octave->value (3); + m_Octave->scaleticks (6); + m_Octave->cursor (50); + m_Octave->callback ((Fl_Callback*)cb_Octave); + m_CtlGroup->add (m_Octave); + + m_ModAmount = new Fl_Knob (160, 79, 40, 40, "Mod Depth"); + m_ModAmount->user_data ((void*)(this)); + m_ModAmount->color (Info->GUI_COLOUR); + m_ModAmount->type (Fl_Knob::LINELIN); + m_ModAmount->labelsize (10); + m_ModAmount->maximum (2.0f); + m_ModAmount->step (0.001); + m_ModAmount->value (1.0); + m_ModAmount->callback ((Fl_Callback*)cb_ModAmount); + m_CtlGroup->add (m_ModAmount); + + m_NumGroup = new Fl_Group (44, 24, 168, 110, "Numbers"); + m_NumGroup->labelsize (10); + m_Tabs->add (m_NumGroup); + + m_NumPulseWidth = new Fl_Counter (54, 32, 55, 20, "PW (%)"); + m_NumPulseWidth->user_data ((void*)(this)); + m_NumPulseWidth->type (FL_SIMPLE_COUNTER); + m_NumPulseWidth->box (FL_PLASTIC_UP_BOX); + m_NumPulseWidth->color (Info->GUI_COLOUR); + m_NumPulseWidth->labelsize (10); + m_NumPulseWidth->textsize (10); + m_NumPulseWidth->minimum (0); + m_NumPulseWidth->maximum (100); + m_NumPulseWidth->step (1); + m_NumPulseWidth->value (m_PulseWidth->value() * 100); + m_NumPulseWidth->callback ((Fl_Callback*)cb_NumPulseWidth); + m_NumGroup->add (m_NumPulseWidth); + + m_NumSHLen = new Fl_Counter (54, 98, 55, 20, "S&H (Secs)"); + m_NumSHLen->user_data ((void*)(this)); + m_NumSHLen->type (FL_SIMPLE_COUNTER); + m_NumSHLen->box (FL_PLASTIC_UP_BOX); + m_NumSHLen->color (Info->GUI_COLOUR); + m_NumSHLen->labelsize (10); + m_NumSHLen->textsize (10); + m_NumSHLen->minimum (0); + m_NumSHLen->maximum (0.2f); + m_NumSHLen->step (.001); + //m_NumSHLen->lstep (.1); + m_NumSHLen->value (0.2f - m_SHLen->value()); + m_NumSHLen->callback ((Fl_Callback*)cb_NumSHLen); + m_NumGroup->add (m_NumSHLen); + + m_NumFreq = new Fl_Counter (114, 32, 90, 20, "Freq (Hz)"); + m_NumFreq->user_data ((void*)(this)); + m_NumFreq->box (FL_PLASTIC_UP_BOX); + m_NumFreq->color (Info->GUI_COLOUR); + m_NumFreq->labelsize (10); + m_NumFreq->textsize (10); + m_NumFreq->minimum (0); + m_NumFreq->step (0.1); + m_NumFreq->lstep (10); + m_NumFreq->callback ((Fl_Callback*)cb_NumFreq); + m_NumGroup->add (m_NumFreq); + + m_NumOctave = new Fl_Counter (128, 66, 64, 20, "Octave"); + m_NumOctave->user_data ((void*)(this)); + m_NumOctave->type (FL_SIMPLE_COUNTER); + m_NumOctave->box (FL_PLASTIC_UP_BOX); + m_NumOctave->color (Info->GUI_COLOUR); + m_NumOctave->labelsize (10); + m_NumOctave->textsize (10); + m_NumOctave->minimum (-3); + m_NumOctave->maximum (3); + m_NumOctave->step (1); + m_NumOctave->value (0); + m_NumOctave->callback ((Fl_Callback*)cb_NumOctave); + m_NumGroup->add (m_NumOctave); + + m_NumModAmount = new Fl_Counter (128, 98, 64, 20, "Mod (%)"); + m_NumModAmount->user_data ((void*)(this)); + m_NumModAmount->type (FL_SIMPLE_COUNTER); + m_NumModAmount->box (FL_PLASTIC_UP_BOX); + m_NumModAmount->color (Info->GUI_COLOUR); + m_NumModAmount->labelsize (10); + m_NumModAmount->textsize (10); + m_NumModAmount->minimum (0); + m_NumModAmount->maximum (200); + m_NumModAmount->step (1); + m_NumModAmount->value (m_ModAmount->value() * 100); + m_NumModAmount->callback ((Fl_Callback*)cb_NumModAmount); + m_NumGroup->add (m_NumModAmount); + + end(); + UpdateFreq(); } -void OscillatorPluginGUI::cb_PulseWidth(Fl_Slider* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_PulseWidth_i(o,v);} +void OscillatorPluginGUI::UpdateValues (SpiralPlugin *o) { + float val; + OscillatorPlugin *Plugin = (OscillatorPlugin*)o; -inline void OscillatorPluginGUI::cb_Square_i(Fl_Check_Button* o, void* v) -{ m_GUICH->Set("Type",(char)OscillatorPlugin::SQUARE); } -void OscillatorPluginGUI::cb_Square(Fl_Check_Button* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_Square_i(o,v); } + m_ShapeSquare->value(0); + m_ShapeNoise->value(0); + m_ShapeSaw->value(0); + switch (Plugin->GetType()) { + case OscillatorPlugin::SQUARE : m_ShapeSquare->value(1); break; + case OscillatorPlugin::NOISE : m_ShapeNoise->value(1); break; + case OscillatorPlugin::SAW : m_ShapeSaw->value(1); break; + case OscillatorPlugin::NONE : break; + } -inline void OscillatorPluginGUI::cb_Saw_i(Fl_Check_Button* o, void* v) -{ m_GUICH->Set("Type",(char)OscillatorPlugin::SAW); } -void OscillatorPluginGUI::cb_Saw(Fl_Check_Button* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_Saw_i(o,v); } + val = Plugin->GetPulseWidth(); + m_PulseWidth->value (val); + m_NumPulseWidth->value (val * 100); -inline void OscillatorPluginGUI::cb_Noise_i(Fl_Check_Button* o, void* v) -{ m_GUICH->Set("Type",(char)OscillatorPlugin::NOISE); } -void OscillatorPluginGUI::cb_Noise(Fl_Check_Button* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_Noise_i(o,v); } + val = Plugin->GetModAmount(); + m_ModAmount->value (val); + m_NumModAmount->value (val * 100); -inline void OscillatorPluginGUI::cb_SHLen_i(Fl_Slider* o, void* v) -{ - char str[10]; - m_GUICH->Set("SHLen",(float)(0.2f-o->value())); - sprintf(str,"%4.3f s", 0.2f-o->value()); - m_out_SHlen->value(str); + val = 0.2f - Plugin->GetSHLen(); + m_SHLen->value (val); + m_NumSHLen->value (val); + + m_NumOctave->value (Plugin->GetOctave()); + m_Octave->value ((int)m_NumOctave->value() + 3); + m_FineTune->value (sqrt (Plugin->GetFineFreq())); + UpdateFreq(); } -void OscillatorPluginGUI::cb_SHLen(Fl_Slider* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_SHLen_i(o,v); } +// Utility functions -inline void OscillatorPluginGUI::cb_ModAmount_i(Fl_Knob* o, void* v) -{ - char str[10]; - m_GUICH->Set("ModAmount",(float)o->value()); - sprintf(str,"%4.0f %%", 100*o->value()); - m_out_mod->value(str); -} - -void OscillatorPluginGUI::cb_ModAmount(Fl_Knob* o, void* v) -{ ((OscillatorPluginGUI*)(o->parent()))->cb_ModAmount_i(o,v); } - -inline void OscillatorPluginGUI::cb_pop_i(Fl_Button *o, void*) { - if (o->value()) - { - o->label("@2>"); - m_out_freq->show(); - m_out_mod->show(); - m_out_SHlen->show(); - m_out_pulseW->show(); - redraw(); - } - else - { - o->label("@>"); - m_out_freq->hide(); - m_out_mod->hide(); - m_out_SHlen->hide(); - m_out_pulseW->hide(); - redraw(); - parent()->redraw(); - } -} -void OscillatorPluginGUI::cb_pop(Fl_Button* o, void* v) { - ((OscillatorPluginGUI*)(o->parent()))->cb_pop_i(o,v); +float OscillatorPluginGUI::CalcFineFreq (float Fine) { + int oct = (int)m_NumOctave->value(); + m_FineFreq = Fine * Fine; + float fr = 110.0f * m_FineFreq; + if (oct > 0) fr *= 1 << oct; + if (oct < 0) fr /= 1 << (-oct); + return fr; +} + +void OscillatorPluginGUI::UpdateFreq (void) { + // always do max first - CalcFineFreq leaves a value in m_FineFreq + m_NumFreq->maximum (CalcFineFreq (m_FineTune->maximum())); + m_NumFreq->value (CalcFineFreq (m_FineTune->value())); +} + +// Callbacks - Controls outside the tabs + +inline void OscillatorPluginGUI::cb_Square_i (Fl_LED_Button* o, void* v) { + m_GUICH->Set ("Type", (char)OscillatorPlugin::SQUARE); +} + +void OscillatorPluginGUI::cb_Square (Fl_LED_Button* o, void* v) { + ((OscillatorPluginGUI*)(o->parent()))->cb_Square_i (o, v); +} + +inline void OscillatorPluginGUI::cb_Saw_i (Fl_LED_Button* o, void* v) { + m_GUICH->Set ("Type", (char)OscillatorPlugin::SAW); +} + +void OscillatorPluginGUI::cb_Saw (Fl_LED_Button* o, void* v) { + ((OscillatorPluginGUI*)(o->parent()))->cb_Saw_i (o, v); +} + +inline void OscillatorPluginGUI::cb_Noise_i (Fl_LED_Button* o, void* v) { + m_GUICH->Set ("Type",(char)OscillatorPlugin::NOISE); +} + +void OscillatorPluginGUI::cb_Noise (Fl_LED_Button* o, void* v) { + ((OscillatorPluginGUI*)(o->parent()))->cb_Noise_i (o, v); +} + +// Callbacks - Control Group + +inline void OscillatorPluginGUI::cb_PulseWidth_i (Fl_Slider* o, void* v) { + float val = o->value(); + m_GUICH->Set ("PulseWidth", val); + m_NumPulseWidth->value (val * 100); +} + +void OscillatorPluginGUI::cb_PulseWidth (Fl_Slider* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_PulseWidth_i (o, v); } +inline void OscillatorPluginGUI::cb_SHLen_i (Fl_Slider* o, void* v) { + float val = 0.2f - o->value(); + m_GUICH->Set ("SHLen", val); + m_NumSHLen->value (val); +} + +void OscillatorPluginGUI::cb_SHLen (Fl_Slider* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_SHLen_i (o, v); +} + +inline void OscillatorPluginGUI::cb_FineTune_i (Fl_Knob* o, void* v) { + UpdateFreq(); + m_GUICH->Set ("FineFreq", m_FineFreq); +} + +void OscillatorPluginGUI::cb_FineTune (Fl_Knob* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_FineTune_i (o, v); +} + +inline void OscillatorPluginGUI::cb_Reset_i (Fl_Button* o, void* v) { + m_FineTune->value (1); + UpdateFreq(); + m_GUICH->Set ("FineFreq", m_FineFreq); +} + +void OscillatorPluginGUI::cb_Reset (Fl_Button* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_Reset_i (o, v); +} + +inline void OscillatorPluginGUI::cb_Octave_i (Fl_Knob* o, void* v) { + m_NumOctave->value ((int)m_Octave->value() - 3); + UpdateFreq(); + m_GUICH->Set ("Octave", (int)m_NumOctave->value ()); +} + +void OscillatorPluginGUI::cb_Octave (Fl_Knob* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_Octave_i (o, v); +} + +inline void OscillatorPluginGUI::cb_ModAmount_i (Fl_Knob* o, void* v) { + float val = o->value(); + m_GUICH->Set ("ModAmount", val); + m_NumModAmount->value (val * 100); +} + +void OscillatorPluginGUI::cb_ModAmount (Fl_Knob* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_ModAmount_i (o, v); +} + +// Callbacks - Number Group + +inline void OscillatorPluginGUI::cb_NumPulseWidth_i (Fl_Counter* o, void* v) { + float val = o->value() / 100; + m_GUICH->Set ("PulseWidth", val); + m_PulseWidth->value (val); +} + +void OscillatorPluginGUI::cb_NumPulseWidth (Fl_Counter* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_NumPulseWidth_i (o, v); +} + +inline void OscillatorPluginGUI::cb_NumSHLen_i (Fl_Counter* o, void* v) { + float val = o->value(); + m_GUICH->Set ("SHLen", val); + m_SHLen->value (0.2f - val); +} + +void OscillatorPluginGUI::cb_NumSHLen (Fl_Counter* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_NumSHLen_i (o, v); +} + +inline void OscillatorPluginGUI::cb_NumFreq_i (Fl_Counter* o, void* v) { + int oct = (int)m_NumOctave->value(); + float fr = o->value (); + if (oct > 0) fr /= 1 << oct; + if (oct < 0) fr *= 1 << (-oct); + m_FineFreq = fr / 110.0f; + m_GUICH->Set ("FineFreq", m_FineFreq); + m_FineTune->value (sqrt (m_FineFreq)); +} + +void OscillatorPluginGUI::cb_NumOctave (Fl_Counter* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_NumOctave_i (o, v); +} + +inline void OscillatorPluginGUI::cb_NumOctave_i (Fl_Counter* o, void* v) { + m_Octave->value ((int)m_NumOctave->value() + 3); + UpdateFreq(); + m_GUICH->Set ("Octave", (int)m_NumOctave->value ()); +} + +void OscillatorPluginGUI::cb_NumFreq (Fl_Counter* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_NumFreq_i (o, v); +} + +inline void OscillatorPluginGUI::cb_NumModAmount_i (Fl_Counter* o, void* v) { + float val = o->value() / 100; + m_GUICH->Set ("ModAmount", val); + m_ModAmount->value (val); +} + +void OscillatorPluginGUI::cb_NumModAmount (Fl_Counter* o, void* v) { + ((OscillatorPluginGUI*)(o->user_data()))->cb_NumModAmount_i (o, v); +} + +// Help Text + const string OscillatorPluginGUI::GetHelpText(const string &loc){ - return string("") + return string("") + "The Oscillator generates raw waveforms from CV controls. Three wave \n" + "shapes are included, Square wave, Triangle wave and white noise.\n\n" + "In the square and triangle shapes, the Frequency CV controls the pitch \n" - + "of the signal generated, and the pulsewidth turns the squarewave into \n" - + "a pulse wave of varying harmonics, and the triangle wave into a sawtooth,\n" + + "of the signal generated, and the pulse-width turns the squarewave into \n" + + "a pulse wave of varying harmonics, and the triangle wave into a sawtooth,\n" + "or reverse sawtooth wave.\n\n" - + "The sample & hold CV changes the time between samples with the white noise.\n" + + "The sample & hold CV changes the time between samples with the white noise.\n" + "This is usful for making the Oscillator into a random CV generator.\n\n" - + "The plugin window allows you to select the wave shape, set the octave and\n" - + "fine tune the frequency. There are also controls to set the pulsewidth,\n" + + "The plugin window allows you to select the wave shape, set the octave and\n" + + "fine tune the frequency (use the reset button to reset the frequency back\n" + + "to it's default value). There are also controls to set the pulse-width,\n" + "sample and hold manually, and control the modulation depth of the input CV's.\n\n" - + "The frequency can be set extremely low on this oscillator, so you can use\n" + + "The frequency can be set extremely low on this oscillator, so you can use\n" + "it as an LFO for controlling other plugins."; } diff --git a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h index 9a5d260..83e6c56 100644 --- a/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h +++ b/SpiralSound/Plugins/OscillatorPlugin/OscillatorPluginGUI.h @@ -14,73 +14,75 @@ * 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 OSC_GUI +#define OSC_GUI -#include #include #include #include -#include -#include - +#include +#include +#include +#include +#include "../Widgets/Fl_LED_Button.H" #include "../Widgets/Fl_Knob.H" #include "../SpiralPluginGUI.h" #include "OscillatorPlugin.h" -#ifndef SCOPEGUI -#define SCOPEGUI - -class OscillatorPluginGUI : public SpiralPluginGUI -{ -public: - OscillatorPluginGUI(int w, int h, OscillatorPlugin *o,ChannelHandler *ch,const HostInfo *Info); - - virtual void UpdateValues(SpiralPlugin *o); - -protected: - const string GetHelpText(const string &loc); - -private: - - Fl_Check_Button *ShapeSquare; - Fl_Pixmap pixmap_Square; - Fl_Check_Button *ShapeNoise; - Fl_Pixmap pixmap_Noise; - Fl_Check_Button *ShapeSaw; - Fl_Pixmap pixmap_Saw; - Fl_Knob *Freq; - Fl_Knob *ModAmount; - Fl_Knob *FineTune; - Fl_Slider *PulseWidth; - Fl_Slider *SHLen; - Fl_Button *m_pop; - Fl_Output *m_out_freq; - Fl_Output *m_out_mod; - Fl_Output *m_out_pulseW; - Fl_Output *m_out_SHlen; - - float m_FineFreq; - int m_Octave; - - //// Callbacks //// - inline void cb_Freq_i(Fl_Knob* o, void* v); - static void cb_Freq(Fl_Knob*, void*); - inline void cb_FineTune_i(Fl_Knob* o, void* v); - static void cb_FineTune(Fl_Knob* o, void* v); - inline void cb_ModAmount_i(Fl_Knob* o, void* v); - static void cb_ModAmount(Fl_Knob* o, void* v); - inline void cb_PulseWidth_i(Fl_Slider* o, void* v); - static void cb_PulseWidth(Fl_Slider* o, void* v); - inline void cb_SHLen_i(Fl_Slider* o, void* v); - static void cb_SHLen(Fl_Slider* 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*); - inline void cb_Noise_i(Fl_Check_Button* o, void* v); - static void cb_Noise(Fl_Check_Button* o, void* v); - inline void cb_pop_i(Fl_Button* o, void*); - static void cb_pop(Fl_Button* o, void*); +class OscillatorPluginGUI : public SpiralPluginGUI { + public: + OscillatorPluginGUI (int w, int h, OscillatorPlugin *o, ChannelHandler *ch, const HostInfo *Info); + virtual void UpdateValues (SpiralPlugin *o); + protected: + const string GetHelpText(const string &loc); + private: + // Utility Functions + void UpdateFreq (void); + float CalcFineFreq (float Fine); + // Widgets + Fl_Tabs *m_Tabs; + Fl_Group *m_CtlGroup, *m_NumGroup; + Fl_Button *m_Reset; + Fl_LED_Button *m_ShapeSquare, *m_ShapeNoise, *m_ShapeSaw; + Fl_Pixmap m_PixmapSquare, m_PixmapNoise, m_PixmapSaw; + Fl_Knob *m_Octave, *m_ModAmount, *m_FineTune; + Fl_Slider *m_PulseWidth, *m_SHLen; + Fl_Counter *m_NumFreq, *m_NumModAmount, *m_NumPulseWidth, *m_NumSHLen, *m_NumOctave; + // Data + float m_FineFreq; + // Callbacks - no group + 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); + inline void cb_Noise_i (Fl_LED_Button* o, void* v); + static void cb_Noise (Fl_LED_Button* o, void* v); + // Callbacks - Control Group + inline void cb_Octave_i (Fl_Knob* o, void* v); + static void cb_Octave (Fl_Knob* o, void* v); + inline void cb_FineTune_i (Fl_Knob* o, void* v); + static void cb_FineTune (Fl_Knob* o, void* v); + inline void cb_Reset_i (Fl_Button* o, void* v); + static void cb_Reset (Fl_Button* o, void* v); + inline void cb_ModAmount_i (Fl_Knob* o, void* v); + static void cb_ModAmount (Fl_Knob* o, void* v); + inline void cb_PulseWidth_i (Fl_Slider* o, void* v); + static void cb_PulseWidth (Fl_Slider* o, void* v); + inline void cb_SHLen_i (Fl_Slider* o, void* v); + static void cb_SHLen (Fl_Slider* o, void* v); + // Callbacks - Numbers Group + inline void cb_NumPulseWidth_i (Fl_Counter* o, void* v); + static void cb_NumPulseWidth (Fl_Counter* o, void* v); + inline void cb_NumFreq_i (Fl_Counter* o, void* v); + static void cb_NumFreq (Fl_Counter* o, void* v); + inline void cb_NumOctave_i (Fl_Counter* o, void* v); + static void cb_NumOctave (Fl_Counter* o, void* v); + inline void cb_NumModAmount_i (Fl_Counter* o, void* v); + static void cb_NumModAmount (Fl_Counter* o, void* v); + inline void cb_NumSHLen_i (Fl_Counter* o, void* v); + static void cb_NumSHLen (Fl_Counter* o, void* v); }; #endif diff --git a/SpiralSound/Plugins/RingModPlugin/RingModPlugin.C b/SpiralSound/Plugins/RingModPlugin/RingModPlugin.C index 2087541..3aec22e 100644 --- a/SpiralSound/Plugins/RingModPlugin/RingModPlugin.C +++ b/SpiralSound/Plugins/RingModPlugin/RingModPlugin.C @@ -49,7 +49,7 @@ RingModPlugin::RingModPlugin() : m_Amount(1.0f) { m_PluginInfo.Name="Ring Mod"; - m_PluginInfo.Width=90; + m_PluginInfo.Width=80; m_PluginInfo.Height=80; m_PluginInfo.NumInputs=2; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C b/SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C index 5f59242..cb11765 100644 --- a/SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C +++ b/SpiralSound/Plugins/RingModPlugin/RingModPluginGUI.C @@ -25,7 +25,7 @@ RingModPluginGUI::RingModPluginGUI (int w, int h, RingModPlugin *o, ChannelHandler *ch, const HostInfo *Info) : SpiralPluginGUI (w, h, o, ch) { - m_Amount = new Fl_Knob (20, 12, 50, 50, "Amount"); + m_Amount = new Fl_Knob (15, 12, 50, 50, "Amount"); m_Amount->color(Info->GUI_COLOUR); m_Amount->type(Fl_Knob::DOTLIN); m_Amount->labelsize(10); diff --git a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPlugin.C b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPlugin.C index 4c5703a..cf8ff29 100644 --- a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPlugin.C +++ b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPlugin.C @@ -42,8 +42,8 @@ m_Triggered (false) m_GUIArgs.Switch = 1; m_GUIArgs.Echo = 1; m_PluginInfo.Name = "SplitSwitch"; - m_PluginInfo.Width = 93; - m_PluginInfo.Height = 55; + m_PluginInfo.Width = 80; + m_PluginInfo.Height = 80; m_PluginInfo.NumInputs = 3; m_PluginInfo.NumOutputs = 3; // Inputs diff --git a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C index a1b5df1..fc20678 100644 --- a/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C +++ b/SpiralSound/Plugins/SplitSwitchPlugin/SplitSwitchPluginGUI.C @@ -25,7 +25,18 @@ SplitSwitchPluginGUI::SplitSwitchPluginGUI (int w, int h, SplitSwitchPlugin *o, ChannelHandler *ch, const HostInfo *Info) : SpiralPluginGUI (w, h, o, ch) { - m_Chans = new Fl_Counter (5, 20, 40, 20, "Channels"); + m_Switch = new Fl_Counter (15, 14, 50, 20, "Select"); + m_Switch->labelsize (10); + m_Switch->type (FL_SIMPLE_COUNTER); + m_Switch->box (FL_PLASTIC_UP_BOX); + m_Switch->color (Info->GUI_COLOUR); + m_Switch->selection_color (Info->GUI_COLOUR); + m_Switch->step (1); + m_Switch->value (1); + m_Switch->callback ((Fl_Callback*) cb_Switch); + add (m_Switch); + + m_Chans = new Fl_Counter (15, 46, 50, 20, "Channels"); m_Chans->labelsize (10); m_Chans->type (FL_SIMPLE_COUNTER); m_Chans->box (FL_PLASTIC_UP_BOX); @@ -36,16 +47,7 @@ SpiralPluginGUI (w, h, o, ch) m_Chans->callback ((Fl_Callback*) cb_Chans); add (m_Chans); - 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 (Info->GUI_COLOUR); - m_Switch->selection_color (Info->GUI_COLOUR); - m_Switch->step (1); - m_Switch->value (1); - m_Switch->callback ((Fl_Callback*) cb_Switch); - add (m_Switch); + end(); } inline void SplitSwitchPluginGUI::cb_Chans_i (Fl_Counter* o, void* v) { diff --git a/SpiralSound/Plugins/SwitchPlugin/SwitchPlugin.C b/SpiralSound/Plugins/SwitchPlugin/SwitchPlugin.C index 71b05c2..d89932f 100644 --- a/SpiralSound/Plugins/SwitchPlugin/SwitchPlugin.C +++ b/SpiralSound/Plugins/SwitchPlugin/SwitchPlugin.C @@ -49,7 +49,7 @@ SwitchPlugin::SwitchPlugin() : m_Mix(false) { m_PluginInfo.Name="Switch"; - m_PluginInfo.Width=60; + m_PluginInfo.Width=80; m_PluginInfo.Height=50; m_PluginInfo.NumInputs=3; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/SwitchPlugin/SwitchPluginGUI.C b/SpiralSound/Plugins/SwitchPlugin/SwitchPluginGUI.C index 6e4d5a7..9fbe370 100644 --- a/SpiralSound/Plugins/SwitchPlugin/SwitchPluginGUI.C +++ b/SpiralSound/Plugins/SwitchPlugin/SwitchPluginGUI.C @@ -25,7 +25,7 @@ SwitchPluginGUI::SwitchPluginGUI(int w, int h,SwitchPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_Mix = new Fl_Button (5, 20, 50, 20, "Mix"); + m_Mix = new Fl_Button (15, 20, 50, 20, "Mix"); m_Mix->selection_color (Info->GUI_COLOUR); m_Mix->color (Info->GUI_COLOUR); m_Mix->box (FL_PLASTIC_UP_BOX); diff --git a/SpiralSound/Plugins/TransposePlugin/TransposePlugin.C b/SpiralSound/Plugins/TransposePlugin/TransposePlugin.C index 4b1692a..e6f70d3 100644 --- a/SpiralSound/Plugins/TransposePlugin/TransposePlugin.C +++ b/SpiralSound/Plugins/TransposePlugin/TransposePlugin.C @@ -48,7 +48,7 @@ m_Amount(0), m_Out(0.0) { m_PluginInfo.Name = "Transpose"; - m_PluginInfo.Width = 70; + m_PluginInfo.Width = 80; m_PluginInfo.Height = 60; m_PluginInfo.NumInputs = 2; m_PluginInfo.NumOutputs = 1; diff --git a/SpiralSound/Plugins/TransposePlugin/TransposePluginGUI.C b/SpiralSound/Plugins/TransposePlugin/TransposePluginGUI.C index 0e7b12b..ccba17c 100644 --- a/SpiralSound/Plugins/TransposePlugin/TransposePluginGUI.C +++ b/SpiralSound/Plugins/TransposePlugin/TransposePluginGUI.C @@ -24,7 +24,7 @@ TransposePluginGUI::TransposePluginGUI (int w, int h,TransposePlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI (w, h, o, ch) { - m_Amount = new Fl_Counter (10, 20, 50, 20, "Amount"); + m_Amount = new Fl_Counter (15, 20, 50, 20, "Amount"); m_Amount->color (Info->GUI_COLOUR); m_Amount->type (FL_SIMPLE_COUNTER); m_Amount->box (FL_PLASTIC_UP_BOX); diff --git a/SpiralSound/Plugins/TrigPlugin/TrigPlugin.C b/SpiralSound/Plugins/TrigPlugin/TrigPlugin.C index cfacf4f..704714e 100644 --- a/SpiralSound/Plugins/TrigPlugin/TrigPlugin.C +++ b/SpiralSound/Plugins/TrigPlugin/TrigPlugin.C @@ -54,7 +54,7 @@ m_Operator(SIN) m_Version=1; m_PluginInfo.Name="Trig"; - m_PluginInfo.Width=60; + m_PluginInfo.Width=80; m_PluginInfo.Height=80; m_PluginInfo.NumInputs=1; m_PluginInfo.NumOutputs=1; diff --git a/SpiralSound/Plugins/TrigPlugin/TrigPluginGUI.C b/SpiralSound/Plugins/TrigPlugin/TrigPluginGUI.C index 1860e05..67e85ac 100644 --- a/SpiralSound/Plugins/TrigPlugin/TrigPluginGUI.C +++ b/SpiralSound/Plugins/TrigPlugin/TrigPluginGUI.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 "TrigPluginGUI.h" #include @@ -26,7 +26,7 @@ TrigPluginGUI::TrigPluginGUI(int w, int h,TrigPlugin *o,ChannelHandler *ch,const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch) { - m_Sin = new Fl_Button (5, 15, 50, 20, "Sin"); + m_Sin = new Fl_Button (10, 15, 60, 20, "Sin"); m_Sin->labelsize (8); m_Sin->type (FL_TOGGLE_BUTTON); m_Sin->box (FL_PLASTIC_UP_BOX); @@ -35,7 +35,7 @@ SpiralPluginGUI(w,h,o,ch) m_Sin->selection_color (Info->GUI_COLOUR); m_Sin->callback ((Fl_Callback*)cb_Sin); - m_Cos = new Fl_Button (5, 35, 50, 20, "Cos"); + m_Cos = new Fl_Button (10, 35, 60, 20, "Cos"); m_Cos->labelsize (8); m_Cos->type (FL_TOGGLE_BUTTON); m_Cos->box (FL_PLASTIC_UP_BOX); @@ -43,14 +43,14 @@ SpiralPluginGUI(w,h,o,ch) m_Cos->selection_color (Info->GUI_COLOUR); m_Cos->callback ((Fl_Callback*)cb_Cos); - m_Tan = new Fl_Button (5, 55, 50, 20, "Tan"); + m_Tan = new Fl_Button (10, 55, 60, 20, "Tan"); m_Tan->labelsize (8); m_Tan->type (FL_TOGGLE_BUTTON); m_Tan->box (FL_PLASTIC_UP_BOX); m_Tan->color (Info->GUI_COLOUR); m_Tan->selection_color (Info->GUI_COLOUR); m_Tan->callback ((Fl_Callback*)cb_Tan); - + end(); } diff --git a/SpiralSound/Plugins/WaveTablePlugin/Makefile.in b/SpiralSound/Plugins/WaveTablePlugin/Makefile.in index 76c76c4..28ff309 100644 --- a/SpiralSound/Plugins/WaveTablePlugin/Makefile.in +++ b/SpiralSound/Plugins/WaveTablePlugin/Makefile.in @@ -1,8 +1,5 @@ ############################################################################# # Makefile for building WaveTablePlugin.so -# Generated by tmake at 22:13, 2001/09/17 -# Project: WaveTablePlugin -# Template: app ############################################################################# ####### Compiler, tools and options @@ -43,10 +40,18 @@ mandir = @mandir@ HEADERS = ../SpiralPlugin.h \ ../SpiralPluginGUI.h \ - ../../ChannelHandler.h \ ../Widgets/Fl_Knob.H \ ../Widgets/Fl_DragBar.H \ - ../../Sample.h \ + ../GUI/WS_Square.h \ + ../GUI/WS_Saw.h \ + ../GUI/WS_RevSaw.h \ + ../GUI/WS_Tri.h \ + ../GUI/WS_Sine.h \ + ../GUI/WS_Pulse1.h \ + ../GUI/WS_Pulse2.h \ + ../GUI/WS_InvSine.h \ + ../../Sample.h \ + ../../ChannelHandler.h \ WaveTablePlugin.h \ WaveTablePluginGUI.h SOURCES = ../SpiralPlugin.C \ @@ -65,12 +70,12 @@ OBJECTS = ../SpiralPlugin.o \ ../../Sample.o \ WaveTablePlugin.o \ WaveTablePluginGUI.o -INTERFACES = -UICDECLS = -UICIMPLS = -SRCMOC = -OBJMOC = -DIST = +INTERFACES = +UICDECLS = +UICIMPLS = +SRCMOC = +OBJMOC = +DIST = TARGET = WaveTablePlugin.so ####### Implicit rules @@ -97,7 +102,7 @@ TARGET = WaveTablePlugin.so all: $(TARGET) -$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) +$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) moc: $(SRCMOC) @@ -112,7 +117,7 @@ dist: clean: -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f *~ core - + install: $(INSTALL) $(TARGET) $(libdir)/SpiralPlugins @@ -158,11 +163,19 @@ WaveTablePlugin.o: WaveTablePlugin.C \ WaveTablePluginGUI.o: WaveTablePluginGUI.C \ WaveTablePluginGUI.h \ - ../Widgets/Fl_Knob.H \ - ../SpiralPluginGUI.h \ - ../Widgets/Fl_DragBar.H \ WaveTablePlugin.h \ + ../SpiralPluginGUI.h \ ../SpiralPlugin.h \ + ../Widgets/Fl_Knob.H \ + ../Widgets/Fl_DragBar.H \ + ../GUI/WS_Square.h \ + ../GUI/WS_Saw.h \ + ../GUI/WS_RevSaw.h \ + ../GUI/WS_Tri.h \ + ../GUI/WS_Sine.h \ + ../GUI/WS_Pulse1.h \ + ../GUI/WS_Pulse2.h \ + ../GUI/WS_InvSine.h \ ../../Sample.h \ ../../SpiralInfo.h \ ../../Sample.h diff --git a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C index 578ba94..9a41403 100644 --- a/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C +++ b/SpiralSound/Plugins/WaveTablePlugin/WaveTablePluginGUI.C @@ -14,211 +14,19 @@ * 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 "WaveTablePluginGUI.h" #include #include - -static unsigned char *image_Square[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ...... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . ... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ...... ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Saw[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . .... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_RevSaw[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . .... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Tri[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" . ", -(unsigned char*)" . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . ", -(unsigned char*)" . ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Sine[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Pulse1[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" .... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . ... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ........ ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_Pulse2[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" ........ ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ... . ... ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .... ", -(unsigned char*)" ", -(unsigned char*)" "}; - -static unsigned char *image_InvSine[] = { -(unsigned char*)"20 20 2 1", -(unsigned char*)" \tc None", -(unsigned char*)".\tc #000000", -(unsigned char*)" ", -(unsigned char*)" ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" .. .. ", -(unsigned char*)" .. .. ", -(unsigned char*)" . . . . ", -(unsigned char*)" . .. . ", -(unsigned char*)" . . ", -(unsigned char*)" . . . ", -(unsigned char*)" . . ", -(unsigned char*)" . .. . ", -(unsigned char*)" . . . . ", -(unsigned char*)" .. .. ", -(unsigned char*)" .. .. ", -(unsigned char*)" . . ", -(unsigned char*)" . . ", -(unsigned char*)" ", -(unsigned char*)" "}; +#include "../GUI/WS_Square.h" +#include "../GUI/WS_Saw.h" +#include "../GUI/WS_RevSaw.h" +#include "../GUI/WS_Tri.h" +#include "../GUI/WS_Sine.h" +#include "../GUI/WS_Pulse1.h" +#include "../GUI/WS_Pulse2.h" +#include "../GUI/WS_InvSine.h" WaveTablePluginGUI::WaveTablePluginGUI(int w, int h, SpiralPlugin *o, ChannelHandler *ch, const HostInfo *Info) : SpiralPluginGUI(w,h,o,ch), @@ -232,7 +40,7 @@ pixmap_Pulse2(image_Pulse2), pixmap_InvSine(image_InvSine), m_FineFreq(0), m_Octave(0) -{ +{ ShapeSine = new Fl_Check_Button(5, 15, 55, 30); ShapeSine->type(102); ShapeSine->down_box(FL_DIAMOND_DOWN_BOX);