@@ -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); | |||