|
|
@@ -130,7 +130,6 @@ SpiralPluginGUI(w,h,o,ch) |
|
|
|
m_Tab->value(m_SetupGroup); |
|
|
|
|
|
|
|
m_TabIndex = 1; |
|
|
|
|
|
|
|
m_PortIndex = 0; |
|
|
|
|
|
|
|
end(); |
|
|
@@ -266,8 +265,16 @@ void LADSPAPluginGUI::AddPortInfo(const char *Info) |
|
|
|
int len = strlen(Info); |
|
|
|
len -= 5; // Get rid of (CV), (AU) bit |
|
|
|
len = len > 20 ? 20 : len; // Truncate to fit |
|
|
|
char *label = (char *)malloc(len + 1); |
|
|
|
if (label) |
|
|
|
{ |
|
|
|
strncpy(label, Info, len); |
|
|
|
label[len] = '\0'; |
|
|
|
} |
|
|
|
m_PortDefaultAdjustLabels.push_back(label); |
|
|
|
|
|
|
|
Fl_Knob* NewKnob = new Fl_Knob(0,0,40,40,strndup(Info, len)); |
|
|
|
Fl_Knob* NewKnob = new Fl_Knob(0,0,40,40,""); |
|
|
|
NewKnob->label(m_PortDefaultAdjustLabels[m_PortDefaultAdjustLabels.size() - 1]); |
|
|
|
NewKnob->labelsize(10); |
|
|
|
NewKnob->color(GUI_COLOUR); |
|
|
|
NewKnob->maximum(1.0f); |
|
|
@@ -327,11 +334,11 @@ void LADSPAPluginGUI::UpdateDefaultAdjustControls(void) |
|
|
|
void LADSPAPluginGUI::UpdateValues(SpiralPlugin *o) |
|
|
|
{ |
|
|
|
LADSPAPlugin* Plugin = (LADSPAPlugin*)o; |
|
|
|
SetPluginIndex(Plugin->GetPluginIndex()); |
|
|
|
SetName(Plugin->GetName()); |
|
|
|
SetMaker(Plugin->GetMaker()); |
|
|
|
SetTabIndex(Plugin->GetTabIndex()); |
|
|
|
SetUpdateInputs(Plugin->GetUpdateInputs()); |
|
|
|
SetPluginIndex(Plugin->GetPluginIndex()); |
|
|
|
|
|
|
|
m_InputPortCount = Plugin->GetInputPortCount(); |
|
|
|
const char *name; |
|
|
@@ -407,49 +414,15 @@ void LADSPAPluginGUI::Update(void) |
|
|
|
if (state_changed) UpdateDefaultAdjustControls(); |
|
|
|
} |
|
|
|
|
|
|
|
// **************************************************************************** |
|
|
|
// ** Widget Callback Functions ** |
|
|
|
// **************************************************************************** |
|
|
|
|
|
|
|
inline void LADSPAPluginGUI::cb_TabChange_i(Fl_Tabs *o) |
|
|
|
{ |
|
|
|
m_TabIndex = o->find(o->value()); |
|
|
|
|
|
|
|
m_GUICH->SetData("SetTabIndex", &m_TabIndex); |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::SETTABINDEX); |
|
|
|
} |
|
|
|
void LADSPAPluginGUI::cb_TabChange(Fl_Tabs *o) |
|
|
|
{ // GUI |
|
|
|
((LADSPAPluginGUI*)(o->parent()))->cb_TabChange_i(o); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) |
|
|
|
void LADSPAPluginGUI::ClearPlugin(void) |
|
|
|
{ |
|
|
|
m_PluginIndex = o->value(); |
|
|
|
|
|
|
|
if (o->value() == 0) { |
|
|
|
// "(None)" selected |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::CLEARPLUGIN); |
|
|
|
} else { |
|
|
|
// Plugin selected |
|
|
|
m_GUICH->SetData("SetPluginIndex",&m_PluginIndex); |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::SELECTPLUGIN); |
|
|
|
} |
|
|
|
m_PluginIndex = 0; |
|
|
|
m_InputPortCount = 0; |
|
|
|
m_PortIndex = 0; |
|
|
|
|
|
|
|
// Wait until next update for plugin to be loaded etc. |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::CLEARPLUGIN); |
|
|
|
m_GUICH->Wait(); |
|
|
|
|
|
|
|
// Now get the new values to populate GUI controls |
|
|
|
m_GUICH->GetData("GetName", m_Name); |
|
|
|
m_GUICH->GetData("GetMaker", m_Maker); |
|
|
|
m_GUICH->GetData("GetInputPortCount", &(m_InputPortCount)); |
|
|
|
m_GUICH->GetData("GetInputPortNames", m_InputPortNames); |
|
|
|
m_GUICH->GetData("GetInputPortSettings", m_InputPortSettings); |
|
|
|
m_GUICH->GetData("GetInputPortDefaults", m_InputPortDefaults); |
|
|
|
|
|
|
|
SetName((const char *)m_Name); |
|
|
|
SetMaker((const char *)m_Maker); |
|
|
|
|
|
|
|
// Clear out port info, and refresh |
|
|
|
m_InputScroll->remove(m_InputPack); |
|
|
|
delete m_InputPack; |
|
|
@@ -463,6 +436,27 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) |
|
|
|
m_PortDefault.clear(); |
|
|
|
m_PortDefaultAdjust.clear(); |
|
|
|
|
|
|
|
for (vector<char *>::iterator i = m_PortDefaultAdjustLabels.begin(); |
|
|
|
i != m_PortDefaultAdjustLabels.end(); i++) |
|
|
|
{ |
|
|
|
if (*i) free (*i); |
|
|
|
} |
|
|
|
m_PortDefaultAdjustLabels.clear(); |
|
|
|
} |
|
|
|
|
|
|
|
void LADSPAPluginGUI::SelectPlugin(void) |
|
|
|
{ |
|
|
|
// Now get the new values to populate GUI controls |
|
|
|
m_GUICH->GetData("GetName", m_Name); |
|
|
|
m_GUICH->GetData("GetMaker", m_Maker); |
|
|
|
m_GUICH->GetData("GetInputPortCount", &(m_InputPortCount)); |
|
|
|
m_GUICH->GetData("GetInputPortNames", m_InputPortNames); |
|
|
|
m_GUICH->GetData("GetInputPortSettings", m_InputPortSettings); |
|
|
|
m_GUICH->GetData("GetInputPortDefaults", m_InputPortDefaults); |
|
|
|
|
|
|
|
SetName((const char *)m_Name); |
|
|
|
SetMaker((const char *)m_Maker); |
|
|
|
|
|
|
|
for (unsigned long p = 0; p < m_InputPortCount; p++) { |
|
|
|
AddPortInfo((const char *)(m_InputPortNames + p * 256)); |
|
|
|
SetPortSettings(p, m_InputPortSettings[p].Min, |
|
|
@@ -474,10 +468,41 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) |
|
|
|
} |
|
|
|
|
|
|
|
UpdateDefaultAdjustControls(); |
|
|
|
|
|
|
|
m_PortIndex = m_InputPortCount; |
|
|
|
} |
|
|
|
|
|
|
|
// **************************************************************************** |
|
|
|
// ** Widget Callback Functions ** |
|
|
|
// **************************************************************************** |
|
|
|
|
|
|
|
inline void LADSPAPluginGUI::cb_TabChange_i(Fl_Tabs *o) |
|
|
|
{ |
|
|
|
m_TabIndex = o->find(o->value()); |
|
|
|
|
|
|
|
m_GUICH->SetData("SetTabIndex", &m_TabIndex); |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::SETTABINDEX); |
|
|
|
} |
|
|
|
void LADSPAPluginGUI::cb_TabChange(Fl_Tabs *o) |
|
|
|
{ // GUI |
|
|
|
((LADSPAPluginGUI*)(o->parent()))->cb_TabChange_i(o); |
|
|
|
} |
|
|
|
|
|
|
|
inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) |
|
|
|
{ |
|
|
|
ClearPlugin(); |
|
|
|
|
|
|
|
m_PluginIndex = o->value(); |
|
|
|
|
|
|
|
if (o->value() != 0) { |
|
|
|
// Plugin selected |
|
|
|
m_GUICH->SetData("SetPluginIndex",&m_PluginIndex); |
|
|
|
m_GUICH->SetCommand(LADSPAPlugin::SELECTPLUGIN); |
|
|
|
m_GUICH->Wait(); |
|
|
|
|
|
|
|
SelectPlugin(); |
|
|
|
} |
|
|
|
|
|
|
|
redraw(); |
|
|
|
// redraw(); |
|
|
|
} |
|
|
|
void LADSPAPluginGUI::cb_Select(Fl_Choice* o) |
|
|
|
{ // Group Tab GUI |
|
|
|