@@ -64,8 +64,6 @@ LADSPAPlugin::LADSPAPlugin() | |||
m_MaxInputPortCount = m_LADSPAInfo.GetMaxInputPortCount(); | |||
// For receiving from GUI | |||
m_AudioCH->Register("SetGain",&(m_InData.Gain)); | |||
m_AudioCH->Register("SetAmped",&(m_InData.Amped)); | |||
m_AudioCH->RegisterData("SetPluginIndex", ChannelHandler::INPUT,&(m_InData.PluginIndex),sizeof(m_InData.PluginIndex)); | |||
// For sending to GUI | |||
@@ -77,7 +75,7 @@ LADSPAPlugin::LADSPAPlugin() | |||
m_OutData.InputPortNames = (char *)malloc(256 * m_MaxInputPortCount); | |||
m_OutData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_MaxInputPortCount); | |||
m_OutData.InputPortValues = (float *)calloc(m_MaxInputPortCount, sizeof(float)); | |||
m_OutData.InputPortValues = (PortValues *)calloc(m_MaxInputPortCount, sizeof(PortValues)); | |||
m_InData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_MaxInputPortCount); | |||
if (m_OutData.InputPortNames && | |||
@@ -85,7 +83,7 @@ LADSPAPlugin::LADSPAPlugin() | |||
m_InData.InputPortSettings) { | |||
m_AudioCH->RegisterData("GetInputPortNames", ChannelHandler::OUTPUT, m_OutData.InputPortNames, 256 * m_MaxInputPortCount); | |||
m_AudioCH->RegisterData("GetInputPortSettings", ChannelHandler::OUTPUT, m_OutData.InputPortSettings, sizeof(PortSettings) * m_MaxInputPortCount); | |||
m_AudioCH->RegisterData("GetInputPortValues", ChannelHandler::OUTPUT, m_OutData.InputPortValues, sizeof(float) * m_MaxInputPortCount); | |||
m_AudioCH->RegisterData("GetInputPortValues", ChannelHandler::OUTPUT, m_OutData.InputPortValues, sizeof(PortValues) * m_MaxInputPortCount); | |||
m_AudioCH->RegisterData("SetInputPortSettings", ChannelHandler::INPUT, m_InData.InputPortSettings, sizeof(PortSettings) * m_MaxInputPortCount); | |||
} else { | |||
cerr<<"Memory allocation error"<<endl; | |||
@@ -146,15 +144,17 @@ void LADSPAPlugin::Execute() | |||
m_LADSPABufVec[n][i]=GetInput(n,i); | |||
} | |||
} | |||
// Copy values into OutData value buffer for display in GUI | |||
m_OutData.InputPortValues[n] = m_LADSPABufVec[n][0]; | |||
m_OutData.InputPortValues[n].Connected = true; | |||
} | |||
else // Use default | |||
{ | |||
for (int i=0; i<m_HostInfo->BUFSIZE; i++) { | |||
m_LADSPABufVec[n][i]=m_PortDefault[n]; | |||
} | |||
m_OutData.InputPortValues[n].Connected = false; | |||
} | |||
// Copy values into OutData value buffer for display in GUI | |||
m_OutData.InputPortValues[n].Value = m_LADSPABufVec[n][0]; | |||
} | |||
// run plugin | |||
@@ -163,19 +163,9 @@ void LADSPAPlugin::Execute() | |||
// convert outputs | |||
for (int n=0; n<m_PluginInfo.NumOutputs; n++) | |||
{ | |||
/*if (m_Amped) | |||
for (int i=0; i<m_HostInfo->BUFSIZE; i++) | |||
{ | |||
for (int i=0; i<m_HostInfo->BUFSIZE; i++) | |||
{ | |||
SetOutput(n,i,m_LADSPABufVec[n+m_PluginInfo.NumInputs][i]*m_Gain*10); | |||
} | |||
} | |||
else*/ | |||
{ | |||
for (int i=0; i<m_HostInfo->BUFSIZE; i++) | |||
{ | |||
SetOutput(n,i,m_LADSPABufVec[n+m_PluginInfo.NumInputs][i]*m_Gain); | |||
} | |||
SetOutput(n,i,m_LADSPABufVec[n+m_PluginInfo.NumInputs][i]); | |||
} | |||
} | |||
} | |||
@@ -210,9 +200,8 @@ void LADSPAPlugin::StreamOut(ostream &s) | |||
switch (m_Version) | |||
{ | |||
case 5: | |||
case 6: | |||
{ | |||
s<<m_Gain<<" "; | |||
s<<m_UniqueID<<" "; | |||
s<<m_PortMin.size()<<" "; | |||
assert(m_PortMin.size()==m_PortMax.size()); | |||
@@ -239,11 +228,40 @@ void LADSPAPlugin::StreamOut(ostream &s) | |||
s<<*i<<" "; | |||
} | |||
} | |||
case 5: | |||
{ | |||
// Here for consistency - should never actually happen, as | |||
// version is always 6! | |||
// s<<m_Gain<<" "; | |||
// s<<m_UniqueID<<" "; | |||
// s<<m_PortMin.size()<<" "; | |||
// assert(m_PortMin.size()==m_PortMax.size()); | |||
// assert(m_PortMin.size()==m_PortClamp.size()); | |||
// assert(m_PortMin.size()==m_PortDefault.size()); | |||
// for (vector<float>::iterator i=m_PortMin.begin(); | |||
// i!=m_PortMin.end(); i++) | |||
// { | |||
// s<<*i<<" "; | |||
// } | |||
// for (vector<float>::iterator i=m_PortMax.begin(); | |||
// i!=m_PortMax.end(); i++) | |||
// { | |||
// s<<*i<<" "; | |||
// } | |||
// for (vector<bool>::iterator i=m_PortClamp.begin(); | |||
// i!=m_PortClamp.end(); i++) | |||
// { | |||
// s<<*i<<" "; | |||
// } | |||
// for (vector<float>::iterator i=m_PortDefault.begin(); | |||
// i!=m_PortDefault.end(); i++) | |||
// { | |||
// s<<*i<<" "; | |||
// } | |||
} | |||
break; | |||
case 4: | |||
{ | |||
// Here for consistency - should never actually happen, as | |||
// version is always 5! | |||
// s<<m_Gain<<" "; | |||
// s<<m_UniqueID<<" "; | |||
// s<<m_PortMin.size()<<" "; | |||
@@ -328,11 +346,52 @@ void LADSPAPlugin::StreamIn(istream &s) | |||
switch (version) | |||
{ | |||
case 6: | |||
{ | |||
ClearPlugin(); | |||
unsigned long UniqueID; | |||
s>>UniqueID; | |||
int PortCount; | |||
s>>PortCount; | |||
float Min, Max; | |||
bool Clamp; | |||
float Default; | |||
for (int n=0; n<PortCount; n++) | |||
{ | |||
s>>Min; | |||
m_PortMin.push_back(Min); | |||
} | |||
for (int n=0; n<PortCount; n++) | |||
{ | |||
s>>Max; | |||
m_PortMax.push_back(Max); | |||
} | |||
for (int n=0; n<PortCount; n++) | |||
{ | |||
s>>Clamp; | |||
m_PortClamp.push_back(Clamp); | |||
} | |||
for (int n=0; n<PortCount; n++) | |||
{ | |||
s>>Default; | |||
m_PortDefault.push_back(Default); | |||
} | |||
if (SelectPlugin(UniqueID)) { | |||
SetGUIExports(); | |||
} else { | |||
ClearPlugin(); | |||
} | |||
} | |||
case 5: | |||
{ | |||
ClearPlugin(); | |||
s>>m_Gain; | |||
float temp_gain; | |||
s>>temp_gain; | |||
unsigned long UniqueID; | |||
s>>UniqueID; | |||
@@ -375,7 +434,8 @@ void LADSPAPlugin::StreamIn(istream &s) | |||
{ | |||
ClearPlugin(); | |||
s>>m_Gain; | |||
float temp_gain; | |||
s>>temp_gain; | |||
unsigned long UniqueID; | |||
s>>UniqueID; | |||
@@ -418,7 +478,8 @@ void LADSPAPlugin::StreamIn(istream &s) | |||
{ | |||
ClearPlugin(); | |||
s>>m_Gain; | |||
float temp_gain; | |||
s>>temp_gain; | |||
string Filename,Label; | |||
s>>Filename>>Label; | |||
@@ -467,7 +528,8 @@ void LADSPAPlugin::StreamIn(istream &s) | |||
{ | |||
ClearPlugin(); | |||
s>>m_Gain; | |||
float temp_gain; | |||
s>>temp_gain; | |||
string Filename,Label; | |||
s>>Filename>>Label; | |||
@@ -513,7 +575,8 @@ void LADSPAPlugin::StreamIn(istream &s) | |||
case 1: | |||
{ | |||
s>>m_Gain; | |||
float temp_gain; | |||
s>>temp_gain; | |||
string Filename,Label; | |||
s>>Filename>>Label; | |||
@@ -653,8 +716,6 @@ void LADSPAPlugin::ClearPlugin(void) | |||
m_PluginIndex = 0; | |||
m_InputPortCount = 0; | |||
m_Gain = 1.0f; | |||
m_Amped = false; | |||
strncpy(m_Name, "None\0", 5); | |||
strncpy(m_Maker, "None\0", 5); | |||
@@ -34,6 +34,11 @@ struct PortSettings | |||
bool Clamp; | |||
float Default; | |||
}; | |||
struct PortValues | |||
{ | |||
float Value; | |||
bool Connected; | |||
}; | |||
class LADSPAPlugin : public SpiralPlugin | |||
{ | |||
@@ -48,14 +53,12 @@ public: | |||
virtual void StreamOut(ostream &s); | |||
virtual void StreamIn(istream &s); | |||
float GetGain() { return m_Gain; } | |||
bool GetAmped() { return m_Amped; } | |||
const char *GetName() { return (const char *)m_Name; } | |||
const char *GetMaker() { return (const char *)m_Maker; } | |||
unsigned long GetInputPortCount() { return m_InputPortCount; } | |||
const char *GetPortName(unsigned long p) | |||
{ | |||
return (const char *)(m_OutData.InputPortNames + p * 256); | |||
return (const char *)(m_OutData.InputPortNames + p * 256); | |||
} | |||
PortSettings GetPortSettings(unsigned long p) | |||
{ | |||
@@ -99,8 +102,6 @@ private: | |||
unsigned long m_PluginIndex; | |||
unsigned long m_UniqueID; | |||
float m_Gain; | |||
bool m_Amped; | |||
unsigned long m_MaxInputPortCount; | |||
unsigned long m_InputPortCount; | |||
char m_Name[256]; | |||
@@ -111,15 +112,13 @@ private: | |||
{ | |||
char *InputPortNames; | |||
PortSettings *InputPortSettings; | |||
float *InputPortValues; | |||
PortValues *InputPortValues; | |||
}; | |||
// Data received from GUI | |||
struct InputChannelData | |||
{ | |||
unsigned long PluginIndex; | |||
float Gain; | |||
bool Amped; | |||
PortSettings *InputPortSettings; | |||
}; | |||
@@ -50,14 +50,37 @@ SpiralPluginGUI(w,h,o,ch) | |||
// Set up buffers for data transfer via ChannelHandler | |||
m_InData.InputPortNames = (char *)malloc(256 * m_InData.MaxInputPortCount); | |||
m_InData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_InData.MaxInputPortCount); | |||
m_InData.InputPortValues = (float *)calloc(m_InData.MaxInputPortCount, sizeof(float)); | |||
m_InData.InputPortValues = (PortValues *)calloc(m_InData.MaxInputPortCount, sizeof(PortValues)); | |||
if (!(m_InData.InputPortNames && m_InData.InputPortSettings)) { | |||
cerr<<"Memory allocation error\n"<<endl; | |||
} | |||
// Set up widgets | |||
m_Browser = new Fl_Choice(60,20,420,25,"Plugin:"); | |||
m_Name = new Fl_Box(10,20,480,15,"None"); | |||
m_Name->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); | |||
m_Name->labelcolor(GUI_COLOUR); | |||
m_Name->labelsize(12); | |||
add(m_Name); | |||
m_Maker = new Fl_Box(10,40,480,15,"None"); | |||
m_Maker->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); | |||
m_Maker->labelcolor(GUI_COLOUR); | |||
m_Maker->labelsize(12); | |||
add(m_Maker); | |||
m_Tab = new Fl_Tabs(5,60,490,255,""); | |||
add(m_Tab); | |||
m_ControlGroup = new Fl_Group(0,80,490,255,"Control"); | |||
m_ControlGroup->labelsize(12); | |||
m_SetupGroup = new Fl_Group(0,80,490,255,"Setup"); | |||
m_SetupGroup->labelsize(12); | |||
m_Browser = new Fl_Choice(50,85,440,22,"Plugin:"); | |||
m_Browser->labelsize(12); | |||
m_Browser->textsize(12); | |||
m_Browser->callback((Fl_Callback *)cb_Select); | |||
m_Browser->add("(None)"); | |||
@@ -68,54 +91,36 @@ SpiralPluginGUI(w,h,o,ch) | |||
} | |||
m_Browser->value(0); | |||
m_Name = new Fl_Box(10,50,480,20,"None"); | |||
m_Name->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); | |||
m_Name->labelcolor(GUI_COLOUR); | |||
m_Name->labelsize(10); | |||
add(m_Name); | |||
m_Maker = new Fl_Box(10,70,480,20,"None"); | |||
m_Maker->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); | |||
m_Maker->labelcolor(GUI_COLOUR); | |||
m_Maker->labelsize(10); | |||
add(m_Maker); | |||
m_SetupGroup->add(m_Browser); | |||
m_InputScroll = new Fl_Scroll(10,110,480,150," Value Default Min Max Clamp? Port Name"); | |||
m_InputScroll = new Fl_Scroll(10,130,480,145," Value Default Min Max Clamp? Port Name"); | |||
m_InputScroll->labelsize(12); | |||
m_InputScroll->align(FL_ALIGN_TOP_LEFT); | |||
m_InputScroll->type(Fl_Scroll::VERTICAL); | |||
m_InputScroll->box(FL_DOWN_BOX); | |||
add(m_InputScroll); | |||
m_InputPack = new Fl_Pack(5,115,460,20,""); | |||
m_InputPack = new Fl_Pack(5,135,460,26,""); | |||
m_InputScroll->add(m_InputPack); | |||
m_PowerAmp = new Fl_Button(125,277,100,25,"PowerAmp"); | |||
m_PowerAmp->labelsize(10); | |||
m_PowerAmp->value(0); | |||
m_PowerAmp->type(1); | |||
m_PowerAmp->callback((Fl_Callback*)cb_PowerAmp); | |||
add(m_PowerAmp); | |||
m_SetupGroup->add(m_InputScroll); | |||
m_UpdateMinMax = new Fl_Button(230,277,100,25,"Update Settings"); | |||
m_UpdateMinMax->labelsize(10); | |||
m_UpdateMinMax->callback((Fl_Callback*)cb_MinMax); | |||
add(m_UpdateMinMax); | |||
m_UpdateInputs = new Fl_Button(335,277,100,25,"Refresh"); | |||
m_UpdateInputs->labelsize(10); | |||
m_UpdateInputs = new Fl_Button(10,282,120,25,"Refresh"); | |||
m_UpdateInputs->labelsize(12); | |||
m_UpdateInputs->value(1); | |||
m_UpdateInputs->type(1); | |||
add(m_UpdateInputs); | |||
m_OutputGain = new Fl_Knob(440,265,40,40,"Output Gain"); | |||
m_OutputGain->color(GUI_COLOUR); | |||
m_OutputGain->type(Fl_Knob::DOTLIN); | |||
m_OutputGain->maximum(2); | |||
m_OutputGain->step(0.001); | |||
m_OutputGain->value(1.0); | |||
m_OutputGain->labelsize(10); | |||
m_OutputGain->callback((Fl_Callback*)cb_Gain); | |||
add(m_OutputGain); | |||
m_SetupGroup->add(m_UpdateInputs); | |||
m_UpdatePortSettings = new Fl_Button(140,282,120,25,"Update Settings"); | |||
m_UpdatePortSettings->labelsize(12); | |||
m_UpdatePortSettings->callback((Fl_Callback*)cb_PortSettings); | |||
add(m_UpdatePortSettings); | |||
m_SetupGroup->add(m_UpdatePortSettings); | |||
m_Tab->add(m_ControlGroup); | |||
m_Tab->add(m_SetupGroup); | |||
end(); | |||
} | |||
@@ -127,12 +132,26 @@ LADSPAPluginGUI::~LADSPAPluginGUI(void) | |||
Fl::check(); | |||
} | |||
void LADSPAPluginGUI::UpdatePortDisplay(int n, float v) | |||
void LADSPAPluginGUI::UpdatePortDisplay(int n, PortValues pv) | |||
{ | |||
// Need to show that a connection is present | |||
// regardless of Refresh being set | |||
if (pv.Connected) { | |||
// Disable | |||
m_PortDefault[n]->readonly(1); | |||
m_PortDefault[n]->color(FL_BACKGROUND_COLOR); | |||
} else { | |||
// Enable | |||
m_PortDefault[n]->readonly(0); | |||
m_PortDefault[n]->color(FL_BACKGROUND2_COLOR); | |||
} | |||
m_PortDefault[n]->redraw(); | |||
// Only update values if Refresh is set | |||
if (!m_UpdateInputs->value()) return; | |||
char temp[256]; | |||
sprintf(temp,"%.4f",v); | |||
sprintf(temp,"%.4f",pv.Value); | |||
m_PortOutput[n]->value(temp); | |||
} | |||
@@ -172,7 +191,7 @@ void LADSPAPluginGUI::ClearPortInfo() | |||
m_InputScroll->remove(m_InputPack); | |||
delete m_InputPack; | |||
m_InputPack = new Fl_Pack(x()+5,y()+115,460,20,""); | |||
m_InputPack = new Fl_Pack(x()+5,y()+135,460,26,""); | |||
m_InputScroll->add(m_InputPack); | |||
m_PortOutput.clear(); | |||
@@ -185,7 +204,7 @@ void LADSPAPluginGUI::ClearPortInfo() | |||
void LADSPAPluginGUI::AddPortInfo(const char *Info) | |||
{ | |||
Fl_Group* NewGroup = new Fl_Group(0,0,430,18,""); | |||
Fl_Group* NewGroup = new Fl_Group(0,0,430,24,""); | |||
NewGroup->box(FL_FLAT_BOX); | |||
m_InputPack->add(NewGroup); | |||
m_PackVec.push_back(NewGroup); | |||
@@ -194,6 +213,8 @@ void LADSPAPluginGUI::AddPortInfo(const char *Info) | |||
Fl_Output* NewOutput = new Fl_Output(10,0,60,18,""); | |||
NewOutput->value(0); | |||
NewOutput->textsize(10); | |||
NewOutput->color(FL_BACKGROUND_COLOR); | |||
NewOutput->readonly(1); | |||
NewGroup->add(NewOutput); | |||
m_PortOutput.push_back(NewOutput); | |||
@@ -219,13 +240,13 @@ void LADSPAPluginGUI::AddPortInfo(const char *Info) | |||
m_PortMax.push_back(NewInput); | |||
// Clamp | |||
Fl_Check_Button* NewCheckButton = new Fl_Check_Button(270,0,10,18,""); | |||
Fl_Check_Button* NewCheckButton = new Fl_Check_Button(265,0,10,18,""); | |||
NewCheckButton->value(0); | |||
NewGroup->add(NewCheckButton); | |||
m_PortClamp.push_back(NewCheckButton); | |||
// Port Name | |||
Fl_Box* NewText = new Fl_Box(322,0,10,18,""); | |||
Fl_Box* NewText = new Fl_Box(320,0,10,18,""); | |||
NewText->label(Info); | |||
NewText->labelsize(10); | |||
NewText->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE); | |||
@@ -239,8 +260,6 @@ void LADSPAPluginGUI::AddPortInfo(const char *Info) | |||
void LADSPAPluginGUI::UpdateValues(SpiralPlugin *o) | |||
{ | |||
LADSPAPlugin* Plugin = (LADSPAPlugin*)o; | |||
m_OutputGain->value(Plugin->GetGain()); | |||
m_PowerAmp->value(Plugin->GetAmped()); | |||
SetName(Plugin->GetName()); | |||
SetMaker(Plugin->GetMaker()); | |||
@@ -269,15 +288,6 @@ void LADSPAPluginGUI::Update(void) | |||
} | |||
} | |||
inline void LADSPAPluginGUI::cb_Gain_i(Fl_Knob* o, void* v) | |||
{ | |||
m_GUICH->Set("SetGain",(float)(o->value())); | |||
} | |||
void LADSPAPluginGUI::cb_Gain(Fl_Knob* o, void* v) | |||
{ | |||
((LADSPAPluginGUI*)(o->parent()))->cb_Gain_i(o,v); | |||
} | |||
inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) | |||
{ | |||
if (o->value() == 0) { | |||
@@ -317,10 +327,10 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) | |||
} | |||
void LADSPAPluginGUI::cb_Select(Fl_Choice* o) | |||
{ | |||
((LADSPAPluginGUI*)(o->parent()))->cb_Select_i(o); | |||
((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_Select_i(o); | |||
} | |||
inline void LADSPAPluginGUI::cb_MinMax_i(Fl_Button* o, void* v) | |||
inline void LADSPAPluginGUI::cb_PortSettings_i(Fl_Button* o, void* v) | |||
{ | |||
unsigned long n=0; | |||
for (vector<Fl_Input*>::iterator i=m_PortMin.begin(); | |||
@@ -354,16 +364,7 @@ inline void LADSPAPluginGUI::cb_MinMax_i(Fl_Button* o, void* v) | |||
m_GUICH->SetData("SetInputPortSettings", m_InData.InputPortSettings); | |||
m_GUICH->SetCommand(LADSPAPlugin::SETPORTSETTINGS); | |||
} | |||
void LADSPAPluginGUI::cb_MinMax(Fl_Button* o, void* v) | |||
{ | |||
((LADSPAPluginGUI*)(o->parent()))->cb_MinMax_i(o,v); | |||
} | |||
inline void LADSPAPluginGUI::cb_PowerAmp_i(Fl_Button* o, void* v) | |||
{ | |||
m_GUICH->Set("SetAmped",(bool)(o->value())); | |||
} | |||
void LADSPAPluginGUI::cb_PowerAmp(Fl_Button* o, void* v) | |||
void LADSPAPluginGUI::cb_PortSettings(Fl_Button* o, void* v) | |||
{ | |||
((LADSPAPluginGUI*)(o->parent()))->cb_PowerAmp_i(o,v); | |||
((LADSPAPluginGUI*)(o->parent()->parent()->parent()))->cb_PortSettings_i(o,v); | |||
} |
@@ -24,12 +24,13 @@ | |||
#include <FL/Fl_Group.H> | |||
#include <FL/Fl_Pack.H> | |||
#include <FL/Fl_Choice.H> | |||
#include <FL/Fl_Tabs.H> | |||
#include <FL/Fl_Scroll.H> | |||
#include <FL/Fl_Input.H> | |||
#include <FL/Fl_Button.H> | |||
#include <FL/Fl_Check_Button.H> | |||
#include <FL/Fl_Box.H> | |||
#include <FL/Fl_Output.H> | |||
#include <FL/Fl_Scroll.H> | |||
#include "../Widgets/Fl_Knob.H" | |||
#include <vector> | |||
@@ -60,26 +61,26 @@ public: | |||
void ClearPortInfo(); | |||
void AddPortInfo(const char *Info); | |||
void UpdatePortDisplay(int n, float v); | |||
void UpdatePortDisplay(int n, PortValues pv); | |||
void SetPortSettings(unsigned long n, float min, float max, bool clamp, float defolt); | |||
// void SetMinMax(int n, float min, float max, bool clamp); | |||
// void GetMinMax(int n, float &min, float &max, bool &clamp); | |||
private: | |||
Fl_Scroll *m_InputScroll; | |||
Fl_Pack *m_InputPack; | |||
Fl_Choice *m_Browser; | |||
Fl_Knob *m_OutputGain; | |||
Fl_Box *m_Name; | |||
Fl_Box *m_Maker; | |||
Fl_Button *m_UpdateInputs; | |||
Fl_Button *m_UpdateMinMax; | |||
Fl_Button *m_PowerAmp; | |||
std::vector<Fl_Output*> m_PortOutput; | |||
std::vector<Fl_Input*> m_PortMin; | |||
std::vector<Fl_Input*> m_PortMax; | |||
std::vector<Fl_Check_Button*> m_PortClamp; | |||
std::vector<Fl_Input*> m_PortDefault; | |||
Fl_Tabs *m_Tab; | |||
Fl_Group *m_ControlGroup; | |||
Fl_Group *m_SetupGroup; | |||
Fl_Scroll *m_InputScroll; | |||
Fl_Pack *m_InputPack; | |||
Fl_Choice *m_Browser; | |||
Fl_Box *m_Name; | |||
Fl_Box *m_Maker; | |||
Fl_Button *m_UpdateInputs; | |||
Fl_Button *m_UpdatePortSettings; | |||
std::vector<Fl_Output*> m_PortOutput; | |||
std::vector<Fl_Input*> m_PortMin; | |||
std::vector<Fl_Input*> m_PortMax; | |||
std::vector<Fl_Check_Button*> m_PortClamp; | |||
std::vector<Fl_Input*> m_PortDefault; | |||
std::vector<Fl_Knob*> m_PortDefaultKnob; | |||
std::vector<LADSPAInfo::PluginEntry> PluginList; | |||
@@ -91,24 +92,19 @@ private: | |||
inline void cb_Select_i(Fl_Choice* o); | |||
static void cb_Select(Fl_Choice* o); | |||
inline void cb_Gain_i(Fl_Knob* o, void* v); | |||
static void cb_Gain(Fl_Knob* o, void* v); | |||
inline void cb_MinMax_i(Fl_Button* o, void* v); | |||
static void cb_MinMax(Fl_Button* o, void* v); | |||
inline void cb_PowerAmp_i(Fl_Button* o, void* v); | |||
static void cb_PowerAmp(Fl_Button* o, void* v); | |||
inline void cb_PortSettings_i(Fl_Button* o, void* v); | |||
static void cb_PortSettings(Fl_Button* o, void* v); | |||
struct InChannelData | |||
{ | |||
unsigned long PluginIndex; | |||
float Gain; | |||
char Name[256]; | |||
char Maker[256]; | |||
unsigned long MaxInputPortCount; | |||
unsigned long InputPortCount; | |||
char *InputPortNames; | |||
PortSettings *InputPortSettings; | |||
float *InputPortValues; | |||
PortValues *InputPortValues; | |||
}; | |||
InChannelData m_InData; | |||