Browse Source

Drop down list for selecting plugin. Text box added for default (non-connected) values

master
waxfrenzy 22 years ago
parent
commit
d0bae314ac
4 changed files with 176 additions and 110 deletions
  1. +39
    -22
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C
  2. +19
    -12
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h
  3. +110
    -69
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C
  4. +8
    -7
      SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h

+ 39
- 22
SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.C View File

@@ -53,12 +53,13 @@ m_Amped(false)
m_Version=4;

m_PluginInfo.Name="LADSPA";
m_PluginInfo.Width=600;
m_PluginInfo.Height=300;
m_PluginInfo.Width=500;
m_PluginInfo.Height=320;
m_PluginInfo.NumInputs=0;
m_PluginInfo.NumOutputs=1;
m_PluginInfo.PortTips.push_back("Nuffink yet");

m_PluginIndex = 0;
m_MaxInputPortCount = m_LADSPAInfo.GetMaxInputPortCount();
m_InputPortCount = 0;

@@ -72,19 +73,20 @@ m_Amped(false)
m_AudioCH->RegisterData("GetMaker",ChannelHandler::OUTPUT,m_Maker,256);
m_AudioCH->RegisterData("GetMaxInputPortCount",ChannelHandler::OUTPUT,&(m_MaxInputPortCount),sizeof(m_MaxInputPortCount));
m_AudioCH->RegisterData("GetInputPortCount",ChannelHandler::OUTPUT,&(m_InputPortCount),sizeof(m_InputPortCount));
m_AudioCH->RegisterData("GetPluginIndex",ChannelHandler::OUTPUT,&(m_PluginIndex),sizeof(m_PluginIndex));

m_OutData.InputPortNames = (char *)malloc(256 * m_MaxInputPortCount);
m_OutData.InputPortRanges = (PortRange *)malloc(sizeof(PortRange) * m_MaxInputPortCount);
m_OutData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_MaxInputPortCount);
m_OutData.InputPortValues = (float *)calloc(m_MaxInputPortCount, sizeof(float));
m_InData.InputPortRanges = (PortRange *)malloc(sizeof(PortRange) * m_MaxInputPortCount);
m_InData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_MaxInputPortCount);

if (m_OutData.InputPortNames &&
m_OutData.InputPortRanges &&
m_InData.InputPortRanges) {
m_OutData.InputPortSettings &&
m_InData.InputPortSettings) {
m_AudioCH->RegisterData("GetInputPortNames", ChannelHandler::OUTPUT, m_OutData.InputPortNames, 256 * m_MaxInputPortCount);
m_AudioCH->RegisterData("GetInputPortRanges", ChannelHandler::OUTPUT, m_OutData.InputPortRanges, sizeof(PortRange) * 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("SetInputPortRanges", ChannelHandler::INPUT, m_InData.InputPortRanges, sizeof(PortRange) * m_MaxInputPortCount);
m_AudioCH->RegisterData("SetInputPortSettings", ChannelHandler::INPUT, m_InData.InputPortSettings, sizeof(PortSettings) * m_MaxInputPortCount);
} else {
cerr<<"Memory allocation error"<<endl;
}
@@ -94,9 +96,9 @@ LADSPAPlugin::~LADSPAPlugin()
{
// Free allocated buffers
if (m_OutData.InputPortNames) free(m_OutData.InputPortNames);
if (m_OutData.InputPortRanges) free(m_OutData.InputPortRanges);
if (m_OutData.InputPortSettings) free(m_OutData.InputPortSettings);
if (m_OutData.InputPortValues) free(m_OutData.InputPortValues);
if (m_InData.InputPortRanges) free(m_InData.InputPortRanges);
if (m_InData.InputPortSettings) free(m_InData.InputPortSettings);
}

PluginInfo &LADSPAPlugin::Initialise(const HostInfo *Host)
@@ -182,8 +184,8 @@ void LADSPAPlugin::ExecuteCommands()
{
switch(m_AudioCH->GetCommand())
{
case (SETRANGES) :
SetPortInfo();
case (SETPORTSETTINGS) :
SetPortSettings();
break;
case (SELECTPLUGIN) :
vector<LADSPAInfo::PluginEntry> pe = m_LADSPAInfo.GetPluginList();
@@ -206,18 +208,24 @@ void LADSPAPlugin::StreamOut(ostream &s)
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++)
i!=m_PortMin.end(); i++)
{
s<<*i<<" ";
}
for (vector<float>::iterator i=m_PortMax.begin();
i!=m_PortMax.end(); i++)
i!=m_PortMax.end(); i++)
{
s<<*i<<" ";
}
for (vector<bool>::iterator i=m_PortClamp.begin();
i!=m_PortClamp.end(); i++)
i!=m_PortClamp.end(); i++)
{
s<<*i<<" ";
}
for (vector<float>::iterator i=m_PortDefault.begin();
i!=m_PortDefault.end(); i++)
{
s<<*i<<" ";
}
@@ -296,6 +304,7 @@ void LADSPAPlugin::StreamIn(istream &s)
s>>PortCount;
float min,max;
bool clamp;
float defolt;

for (int n=0; n<PortCount; n++)
{
@@ -313,6 +322,11 @@ void LADSPAPlugin::StreamIn(istream &s)
s>>clamp;
m_PortClamp.push_back(clamp);
}
for (int n=0; n<PortCount; n++)
{
s>>defolt;
m_PortDefault.push_back(defolt);
}

UpdatePlugin(UniqueID, false);
}
@@ -555,6 +569,7 @@ bool LADSPAPlugin::UpdatePlugin(unsigned long UniqueID, bool PortClampReset)
m_PortMin.push_back(Min);
m_PortMax.push_back(Max);
m_PortClamp.push_back(true);
m_PortDefault.push_back(0.0f);
}
}

@@ -582,9 +597,10 @@ bool LADSPAPlugin::UpdatePlugin(unsigned long UniqueID, bool PortClampReset)
lbl_start[lbl_length] = '\0';
lbl_start += 256;

m_OutData.InputPortRanges[n].Min = m_PortMin[n];
m_OutData.InputPortRanges[n].Max = m_PortMax[n];
m_OutData.InputPortRanges[n].Clamp = m_PortClamp[n];
m_OutData.InputPortSettings[n].Min = m_PortMin[n];
m_OutData.InputPortSettings[n].Max = m_PortMax[n];
m_OutData.InputPortSettings[n].Clamp = m_PortClamp[n];
m_OutData.InputPortSettings[n].Default = m_PortDefault[n];
}

return true;
@@ -595,11 +611,12 @@ bool LADSPAPlugin::UpdatePlugin(unsigned long UniqueID, bool PortClampReset)
return false;
}

void LADSPAPlugin::SetPortInfo(void)
void LADSPAPlugin::SetPortSettings(void)
{
for (unsigned long n = 0; n < m_InputPortCount; n++) {
m_PortMin[n] = m_InData.InputPortRanges[n].Min;
m_PortMax[n] = m_InData.InputPortRanges[n].Max;
m_PortClamp[n] = m_InData.InputPortRanges[n].Clamp;
m_PortMin[n] = m_InData.InputPortSettings[n].Min;
m_PortMax[n] = m_InData.InputPortSettings[n].Max;
m_PortClamp[n] = m_InData.InputPortSettings[n].Clamp;
m_PortDefault[n] = m_InData.InputPortSettings[n].Default;
}
}

+ 19
- 12
SpiralSound/Plugins/LADSPAPlugin/LADSPAPlugin.h View File

@@ -26,11 +26,12 @@

static const unsigned int NUM_PORTS = 8;

struct PortRange
struct PortSettings
{
float Min;
float Max;
bool Clamp;
float Default;
};

class LADSPAPlugin : public SpiralPlugin
@@ -51,23 +52,27 @@ public:
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); }
PortRange GetPortRange(unsigned long p)
const char *GetPortName(unsigned long p)
{
PortRange range;
range.Min = m_PortMin[p];
range.Max = m_PortMax[p];
range.Clamp = m_PortClamp[p];
return range;
return (const char *)(m_OutData.InputPortNames + p * 256);
}
PortSettings GetPortSettings(unsigned long p)
{
PortSettings settings;
settings.Min = m_PortMin[p];
settings.Max = m_PortMax[p];
settings.Clamp = m_PortClamp[p];
settings.Default = m_PortDefault[p];
return settings;
}

enum GUICommands{NONE,SETRANGES,SELECTPLUGIN};
enum GUICommands{NONE,SETPORTSETTINGS,SELECTPLUGIN};

private:

void UpdatePortRange(void);
bool UpdatePlugin(unsigned long UniqueID, bool PortClampReset=true);
void SetPortInfo(void);
void SetPortSettings(void);

void LoadPluginList(void);

@@ -81,12 +86,14 @@ private:
vector<float> m_PortMin;
vector<float> m_PortMax;
vector<bool> m_PortClamp;
vector<float> m_PortDefault;

int m_Version;

// our database of ladspa plugins
LADSPAInfo m_LADSPAInfo;

unsigned long m_PluginIndex;
unsigned long m_UniqueID;

float m_Gain;
@@ -100,7 +107,7 @@ private:
struct OutputChannelData
{
char *InputPortNames;
PortRange *InputPortRanges;
PortSettings *InputPortSettings;
float *InputPortValues;
};

@@ -110,7 +117,7 @@ private:
unsigned long PluginIndex;
float Gain;
bool Amped;
PortRange *InputPortRanges;
PortSettings *InputPortSettings;
};

OutputChannelData m_OutData;


+ 110
- 69
SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.C View File

@@ -43,48 +43,69 @@ SpiralPluginGUI(w,h,o,ch)
int Width=20;
int Height=100;

m_Browser= new Fl_Hold_Browser(5,20,290,260,"LADSPA Plugins");
m_Browser->callback((Fl_Callback*)cb_Select);

for (vector<LADSPAInfo::PluginEntry>::iterator i=PluginList.begin();
i!=PluginList.end(); i++)
{
m_Browser->add(i->Name.c_str());
}

// Get maximum input port count
m_GUICH->GetData("GetMaxInputPortCount",&(m_InData.MaxInputPortCount));

// Set up buffers for data transfer via ChannelHandler
m_InData.InputPortNames = (char *)malloc(256 * m_InData.MaxInputPortCount);
m_InData.InputPortRanges = (PortRange *)malloc(sizeof(PortRange) * m_InData.MaxInputPortCount);
m_InData.InputPortSettings = (PortSettings *)malloc(sizeof(PortSettings) * m_InData.MaxInputPortCount);
m_InData.InputPortValues = (float *)calloc(m_InData.MaxInputPortCount, sizeof(float));

if (!(m_InData.InputPortNames && m_InData.InputPortRanges)) {
if (!(m_InData.InputPortNames && m_InData.InputPortSettings)) {
cerr<<"Memory allocation error\n"<<endl;
}

m_InputScroll = new Fl_Scroll(300,80,290,150," Value Min Max Clamp?");
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(300,85,300,100,"");
m_InputScroll->add(m_InputPack);
// Set up widgets
m_Browser = new Fl_Choice(60,20,420,20,"Plugin:");
m_Browser->callback((Fl_Callback *)cb_Select);

m_Browser->add("(None)");
for (vector<LADSPAInfo::PluginEntry>::iterator i=PluginList.begin();
i!=PluginList.end(); i++)
{
m_Browser->add(i->Name.c_str());
}

m_Name = new Fl_Box(290,20,10,20,"None");
m_Name->align(FL_ALIGN_RIGHT);
m_Name = new Fl_Box(10,45,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(290,40,10,20,"None");
m_Maker->align(FL_ALIGN_RIGHT);
m_Maker = new Fl_Box(10,65,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_OutputGain = new Fl_Knob(545,240,40,40,"Output Gain");
m_InputScroll = new Fl_Scroll(10,105,480,150," Value Min Max Clamp? Default 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(20,115,460,20,"");
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_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->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);
@@ -94,31 +115,13 @@ SpiralPluginGUI(w,h,o,ch)
m_OutputGain->callback((Fl_Callback*)cb_Gain);
add(m_OutputGain);

m_UpdateInputs = new Fl_Button(480,252,50,25,"Refresh");
m_UpdateInputs->labelsize(10);
m_UpdateInputs->value(1);
m_UpdateInputs->type(1);
add(m_UpdateInputs);

m_UpdateMinMax = new Fl_Button(400,252,85,25,"Update Min/Max");
m_UpdateMinMax->labelsize(10);
m_UpdateMinMax->callback((Fl_Callback*)cb_MinMax);
add(m_UpdateMinMax);

m_PowerAmp = new Fl_Button(320,252,80,25,"PowerAmp");
m_PowerAmp->labelsize(10);
m_PowerAmp->value(0);
m_PowerAmp->type(1);
m_PowerAmp->callback((Fl_Callback*)cb_PowerAmp);
add(m_PowerAmp);

end();
}

LADSPAPluginGUI::~LADSPAPluginGUI(void)
{
if (m_InData.InputPortNames) free(m_InData.InputPortNames);
if (m_InData.InputPortRanges) free(m_InData.InputPortRanges);
if (m_InData.InputPortSettings) free(m_InData.InputPortSettings);
Fl::check();
}

@@ -131,6 +134,23 @@ void LADSPAPluginGUI::UpdatePortDisplay(int n, float v)
m_PortOutput[n]->value(temp);
}

void LADSPAPluginGUI::SetPortSettings(unsigned long n, float min, float max, bool clamp, float defolt)
{
char temp[256];
sprintf(temp,"%.4f",min);
m_PortMin[n]->value(temp);

sprintf(temp,"%.4f",max);
m_PortMax[n]->value(temp);

sprintf(temp, "%d",clamp);
m_PortClamp[n]->value(atoi(temp));

sprintf(temp, "%.4f",defolt);
m_PortDefault[n]->value(temp);
}

/*
void LADSPAPluginGUI::SetMinMax(int n, float min, float max, bool clamp)
{
char temp[256];
@@ -150,7 +170,7 @@ void LADSPAPluginGUI::GetMinMax(int n, float &min, float &max, bool &clamp)
max = atof(m_PortMax[n]->value());
clamp = m_PortClamp[n]->value();
}
*/
void LADSPAPluginGUI::SetName(const char *s)
{
m_Name->label(s);
@@ -171,7 +191,7 @@ void LADSPAPluginGUI::ClearPortInfo()

m_InputScroll->remove(m_InputPack);
delete m_InputPack;
m_InputPack = new Fl_Pack(x()+300,y()+85,300,100,"");
m_InputPack = new Fl_Pack(x()+5,y()+110,460,20,"");
m_InputScroll->add(m_InputPack);

m_PortOutput.clear();
@@ -179,44 +199,57 @@ void LADSPAPluginGUI::ClearPortInfo()
m_PortMin.clear();
m_PortMax.clear();
m_PortClamp.clear();
m_PortDefault.clear();
}

void LADSPAPluginGUI::AddPortInfo(const char *Info)
{
Fl_Group* NewGroup = new Fl_Group(0,85,150,15,"");
Fl_Group* NewGroup = new Fl_Group(0,0,430,18,"");
NewGroup->box(FL_FLAT_BOX);
m_InputPack->add(NewGroup);
m_PackVec.push_back(NewGroup);

Fl_Box* NewText = new Fl_Box(100,85,80,15,"");
NewText->label(Info);
NewText->labelsize(8);
NewText->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
NewGroup->add(NewText);

Fl_Output* NewOutput = new Fl_Output(5,85,20,15,"");
// Value
Fl_Output* NewOutput = new Fl_Output(10,0,60,18,"");
NewOutput->value(0);
NewOutput->textsize(10);
NewGroup->add(NewOutput);
m_PortOutput.push_back(NewOutput);

Fl_Input* NewInput = new Fl_Input(26,85,20,15,"");
// Min
Fl_Input* NewInput = new Fl_Input(72,0,60,18,"");
NewInput->value(0);
NewInput->textsize(10);
NewGroup->add(NewInput);
m_PortMin.push_back(NewInput);

NewInput = new Fl_Input(47,85,20,15,"");
// Max
NewInput = new Fl_Input(134,0,60,18,"");
NewInput->value(0);
NewInput->textsize(10);
NewGroup->add(NewInput);
m_PortMax.push_back(NewInput);

Fl_Check_Button* NewCheckButton = new Fl_Check_Button(80,85,15,15,"");
// Clamp
Fl_Check_Button* NewCheckButton = new Fl_Check_Button(200,0,10,18,"");
NewCheckButton->value(0);
NewGroup->add(NewCheckButton);
m_PortClamp.push_back(NewCheckButton);

// Fixed Value
NewInput = new Fl_Input(250,0,60,18,"");
NewInput->value(0);
NewInput->textsize(10);
NewGroup->add(NewInput);
m_PortDefault.push_back(NewInput);

// Port Name
Fl_Box* NewText = new Fl_Box(322,0,10,18,"");
NewText->label(Info);
NewText->labelsize(10);
NewText->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
NewGroup->add(NewText);

NewGroup->redraw();
m_InputPack->redraw();
m_InputScroll->redraw();
@@ -234,13 +267,13 @@ void LADSPAPluginGUI::UpdateValues(SpiralPlugin *o)

unsigned long n = Plugin->GetInputPortCount();
const char *name;
PortRange range;
PortSettings settings;

for (unsigned long p = 0; p < n; p++) {
name = Plugin->GetPortName(p);
range = Plugin->GetPortRange(p);
settings = Plugin->GetPortSettings(p);
AddPortInfo(name);
SetMinMax(p, range.Min, range.Max, range.Clamp);
SetPortSettings(p, settings.Min, settings.Max, settings.Clamp, settings.Default);
}
}

@@ -263,7 +296,7 @@ void LADSPAPluginGUI::cb_Gain(Fl_Knob* o, void* v)
((LADSPAPluginGUI*)(o->parent()))->cb_Gain_i(o,v);
}

inline void LADSPAPluginGUI::cb_Select_i(Fl_Hold_Browser* o)
inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o)
{
m_GUICH->Set("SetPluginIndex",o->value()-1);
m_GUICH->SetCommand(LADSPAPlugin::SELECTPLUGIN);
@@ -276,7 +309,7 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Hold_Browser* o)
m_GUICH->GetData("GetMaker", m_InData.Maker);
m_GUICH->GetData("GetInputPortCount", &(m_InData.InputPortCount));
m_GUICH->GetData("GetInputPortNames", m_InData.InputPortNames);
m_GUICH->GetData("GetInputPortRanges", m_InData.InputPortRanges);
m_GUICH->GetData("GetInputPortSettings", m_InData.InputPortSettings);

SetName((const char *)m_InData.Name);
SetMaker((const char *)m_InData.Maker);
@@ -286,12 +319,13 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Hold_Browser* o)

for (unsigned long n = 0; n < m_InData.InputPortCount; n++) {
AddPortInfo((const char *)(m_InData.InputPortNames + n * 256));
SetMinMax(n, m_InData.InputPortRanges[n].Min,
m_InData.InputPortRanges[n].Max,
m_InData.InputPortRanges[n].Clamp);
SetPortSettings(n, m_InData.InputPortSettings[n].Min,
m_InData.InputPortSettings[n].Max,
m_InData.InputPortSettings[n].Clamp,
m_InData.InputPortSettings[n].Default);
}
}
void LADSPAPluginGUI::cb_Select(Fl_Hold_Browser* o)
void LADSPAPluginGUI::cb_Select(Fl_Choice* o)
{
((LADSPAPluginGUI*)(o->parent()))->cb_Select_i(o);
}
@@ -302,26 +336,33 @@ inline void LADSPAPluginGUI::cb_MinMax_i(Fl_Button* o, void* v)
for (vector<Fl_Input*>::iterator i=m_PortMin.begin();
i!=m_PortMin.end(); i++)
{
m_InData.InputPortRanges[n].Min = atof((*i)->value());
m_InData.InputPortSettings[n].Min = atof((*i)->value());
n++;
}
n=0;
for (vector<Fl_Input*>::iterator i=m_PortMax.begin();
i!=m_PortMax.end(); i++)
{
m_InData.InputPortRanges[n].Max = atof((*i)->value());
m_InData.InputPortSettings[n].Max = atof((*i)->value());
n++;
}
n=0;
for (vector<Fl_Check_Button*>::iterator i=m_PortClamp.begin();
i!=m_PortClamp.end(); i++)
{
m_InData.InputPortRanges[n].Clamp = (bool)((*i)->value());
m_InData.InputPortSettings[n].Clamp = (bool)((*i)->value());
n++;
}
n=0;
for (vector<Fl_Input*>::iterator i=m_PortDefault.begin();
i!=m_PortDefault.end(); i++)
{
m_InData.InputPortSettings[n].Default = atof((*i)->value());
n++;
}

m_GUICH->SetData("SetInputPortRanges", m_InData.InputPortRanges);
m_GUICH->SetCommand(LADSPAPlugin::SETRANGES);
m_GUICH->SetData("SetInputPortSettings", m_InData.InputPortSettings);
m_GUICH->SetCommand(LADSPAPlugin::SETPORTSETTINGS);
}
void LADSPAPluginGUI::cb_MinMax(Fl_Button* o, void* v)
{


+ 8
- 7
SpiralSound/Plugins/LADSPAPlugin/LADSPAPluginGUI.h View File

@@ -25,7 +25,6 @@
#include <FL/Fl_Button.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Hold_Browser.H>
#include <FL/Fl_Output.H>
#include <FL/Fl_Scroll.H>
#include "../Widgets/Fl_Knob.H"
@@ -64,13 +63,14 @@ public:
void ClearPortInfo();
void AddPortInfo(const char *Info);
void UpdatePortDisplay(int n, float v);
void SetMinMax(int n, float min, float max, bool clamp);
void GetMinMax(int n, float &min, float &max, bool &clamp);
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_Hold_Browser *m_Browser;
Fl_Choice *m_Browser;
Fl_Knob *m_OutputGain;
Fl_Box *m_Name;
Fl_Box *m_Maker;
@@ -81,6 +81,7 @@ private:
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<LADSPAInfo::PluginEntry> PluginList;

@@ -90,8 +91,8 @@ private:

int inited;

inline void cb_Select_i(Fl_Hold_Browser* o);
static void cb_Select(Fl_Hold_Browser* o);
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);
@@ -107,7 +108,7 @@ private:
unsigned long MaxInputPortCount;
unsigned long InputPortCount;
char *InputPortNames;
PortRange *InputPortRanges;
PortSettings *InputPortSettings;
float *InputPortValues;
};



Loading…
Cancel
Save