| @@ -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"); | |||
| @@ -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); | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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"); | |||
| @@ -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"); | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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"); | |||
| @@ -19,106 +19,10 @@ | |||
| #include "LFOPluginGUI.h" | |||
| #include <FL/fl_draw.h> | |||
| #include <FL/fl_draw.H> | |||
| 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); | |||
| @@ -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 | |||
| @@ -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); | |||
| @@ -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); | |||
| @@ -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"); | |||
| @@ -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) | |||
| { | |||
| @@ -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"); | |||
| @@ -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 <FL/fl_draw.h> | |||
| @@ -30,41 +30,41 @@ int OptionsList(const vector<string> &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<string>::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<string> &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); | |||
| @@ -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); | |||
| @@ -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) { | |||
| @@ -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; n<MAX_CHANNELS; n++) m_ChannelVal[n]=1.0f; | |||
| m_AudioCH->Register("Value", &m_GUIArgs.Value); | |||
| @@ -27,14 +27,14 @@ SpiralPluginGUI(w,h,o,ch) | |||
| { | |||
| m_GUIColour=(Fl_Color)Info->GUI_COLOUR; | |||
| for (int n=0; n<MAX_CHANNELS; n++) Numbers[n]=n; | |||
| m_MainPack = new Fl_Pack(0, 20, w, 100); | |||
| m_MainPack = new Fl_Pack(0, 15, w, 100); | |||
| m_MainPack->type (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, "-"); | |||
| @@ -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; | |||
| @@ -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; n<NUM_KEYS; n++) | |||
| { | |||
| m_Num[n]=n; | |||
| Note = n%12; | |||
| if (Note!=1 && Note!=3 && Note!=6 && Note!=8 && Note!=10) | |||
| if (Note!=1 && Note!=3 && Note!=6 && Note!=8 && Note!=10) | |||
| { | |||
| Count++; | |||
| Pos=Count*KeyWidth; | |||
| m_Key[n] = new Fl_Button(Pos,20,KeyWidth,50,""); | |||
| Count++; | |||
| m_Key[n] = new Fl_Button (Pos+5, 20, KeyWidth, 50, ""); | |||
| m_Key[n]->type(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; n<NUM_KEYS; n++) | |||
| { | |||
| Note = n%12; | |||
| if (Note==1 || Note==3 || Note==6 || Note==8 || Note==10) | |||
| if (Note==1 || Note==3 || Note==6 || Note==8 || Note==10) | |||
| { | |||
| m_Key[n] = new Fl_Button(Pos+5,20,KeyWidth,30,""); | |||
| m_Key[n] = new Fl_Button (Pos+10, 20, KeyWidth, 30, ""); | |||
| m_Key[n]->type(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(); | |||
| } | |||
| @@ -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; n<m_HostInfo->BUFSIZE; n++) | |||
| { | |||
| SetOutput(0,n,GetInput(0,n)*GetInput(1,n)); | |||
| } | |||
| } | |||
| } | |||
| else | |||
| { | |||
| for (int n=0; n<m_HostInfo->BUFSIZE; 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<<m_Version<<endl; | |||
| s<<m_Constant<<" "; | |||
| @@ -14,54 +14,61 @@ | |||
| * 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 "OperatorPluginGUI.h" | |||
| #include <FL/fl_draw.h> | |||
| #include <FL/fl_draw.H> | |||
| #include <stdio.h> | |||
| //#include <stdio.h> | |||
| //////////////////////////////////////////// | |||
| 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("") | |||
| @@ -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 <FL/Fl.H> | |||
| #include <FL/Fl_Window.H> | |||
| #include <FL/Fl_Group.H> | |||
| #include <FL/Fl_Button.H> | |||
| #include <FL/Fl_Button.H> | |||
| #include <FL/Fl_Input.H> | |||
| #include "../Widgets/Fl_Knob.H" | |||
| #include <FL/Fl_Counter.H> | |||
| #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 | |||
| @@ -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 | |||
| @@ -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 <FL/Fl_Button.h> | |||
| @@ -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; n<m_HostInfo->BUFSIZE; 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_CyclePos<PW) SetOutput(OUT_MAIN,n,1); | |||
| else SetOutput(OUT_MAIN,n,-1); | |||
| else SetOutput(OUT_MAIN,n,-1); | |||
| } | |||
| break; | |||
| case SAW: | |||
| for (int n=0; n<m_HostInfo->BUFSIZE; 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_CyclePos<PW) | |||
| if (m_CyclePos>CycleLen) m_CyclePos=0; | |||
| if (m_CyclePos<PW) | |||
| { | |||
| // before pw -1->1 | |||
| 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; n<m_HostInfo->BUFSIZE; 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; | |||
| } | |||
| } | |||
| @@ -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 <FL/Fl_Pixmap.H> | |||
| @@ -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); | |||
| }; | |||
| @@ -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 <FL/fl_draw.h> | |||
| #include <FL/fl_draw.H> | |||
| #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."; | |||
| } | |||
| @@ -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 <FL/Fl_Check_Button.H> | |||
| #include <FL/Fl_Pixmap.H> | |||
| #include <FL/Fl_Slider.H> | |||
| #include <FL/Fl_Box.H> | |||
| #include <FL/Fl_Button.H> | |||
| #include <FL/Fl_Output.H> | |||
| #include <FL/Fl_Counter.H> | |||
| #include <FL/Fl_Tabs.h> | |||
| #include <FL/Fl_Group.h> | |||
| #include <FL/Fl_Button.h> | |||
| #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 | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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 | |||
| @@ -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) { | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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; | |||
| @@ -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); | |||
| @@ -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; | |||
| @@ -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 <FL/fl_draw.h> | |||
| @@ -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(); | |||
| } | |||
| @@ -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 | |||
| @@ -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 <FL/fl_draw.h> | |||
| #include <FL/fl_draw.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_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); | |||