Skip to content
Snippets Groups Projects
Commit 1e449666 authored by jsiegle's avatar jsiegle
Browse files

Updated interface for parameter selection

parent fa3edc9e
No related branches found
No related tags found
No related merge requests found
Showing
with 215 additions and 108 deletions
...@@ -74,8 +74,7 @@ FPGAThread::~FPGAThread() { ...@@ -74,8 +74,7 @@ FPGAThread::~FPGAThread() {
// probably not the best way to do this: // probably not the best way to do this:
deleteAndZero(dataBuffer); deleteAndZero(dataBuffer);
delete dev; deleteAndZero(dev);
dev = 0;
} }
......
...@@ -100,6 +100,7 @@ void ChannelSelector::paint(Graphics& g) ...@@ -100,6 +100,7 @@ void ChannelSelector::paint(Graphics& g)
g.fillRect(0, 15, getWidth(), getHeight()-30); g.fillRect(0, 15, getWidth(), getHeight()-30);
} }
void ChannelSelector::setNumChannels(int numChans) void ChannelSelector::setNumChannels(int numChans)
{ {
......
...@@ -29,13 +29,9 @@ EventNodeEditor::EventNodeEditor (GenericProcessor* parentNode) ...@@ -29,13 +29,9 @@ EventNodeEditor::EventNodeEditor (GenericProcessor* parentNode)
: GenericEditor(parentNode) : GenericEditor(parentNode)
{ {
desiredWidth = 250; desiredWidth = 200;
StringArray hzValues;
hzValues.add("0.25");
hzValues.add("0.5");
hzValues.add("1");
hzValues.add("2");
//createRadioButtons(35, 65, 160, hzValues, "Event frequency"); //createRadioButtons(35, 65, 160, hzValues, "Event frequency");
......
...@@ -32,17 +32,7 @@ FilterEditor::FilterEditor (GenericProcessor* parentNode) ...@@ -32,17 +32,7 @@ FilterEditor::FilterEditor (GenericProcessor* parentNode)
{ {
desiredWidth = 250; desiredWidth = 250;
StringArray lowCutValues;
lowCutValues.add("1");
lowCutValues.add("10");
lowCutValues.add("100");
lowCutValues.add("500");
StringArray highCutValues;
highCutValues.add("1K");
highCutValues.add("3K");
highCutValues.add("6K");
highCutValues.add("9K");
//createRadioButtons(35, 50, 160, lowCutValues, "Low Cutoff"); //createRadioButtons(35, 50, 160, lowCutValues, "Low Cutoff");
//createRadioButtons(35, 90, 160, highCutValues, "High Cutoff"); //createRadioButtons(35, 90, 160, highCutValues, "High Cutoff");
......
...@@ -92,8 +92,9 @@ void GenericEditor::addParameterEditors() ...@@ -92,8 +92,9 @@ void GenericEditor::addParameterEditors()
for (int i = 0; i < getProcessor()->getNumParameters(); i++) for (int i = 0; i < getProcessor()->getNumParameters(); i++)
{ {
ParameterEditor* p = new ParameterEditor(getProcessor()->getParameterReference(i), titleFont); ParameterEditor* p = new ParameterEditor(getProcessor(), getProcessor()->getParameterReference(i), titleFont);
p->setChannelSelector(channelSelector);
int dWidth = p->desiredWidth; int dWidth = p->desiredWidth;
int dHeight = p->desiredHeight; int dHeight = p->desiredHeight;
...@@ -285,8 +286,6 @@ void GenericEditor::buttonClicked(Button* button) ...@@ -285,8 +286,6 @@ void GenericEditor::buttonClicked(Button* button)
{ {
std::cout << "Button clicked." << std::endl; std::cout << "Button clicked." << std::endl;
checkParameterButtons(button);
checkDrawerButton(button); checkDrawerButton(button);
...@@ -294,20 +293,6 @@ void GenericEditor::buttonClicked(Button* button) ...@@ -294,20 +293,6 @@ void GenericEditor::buttonClicked(Button* button)
// button event // button event
} }
void GenericEditor::sliderValueChanged(Slider* slider)
{
std::cout << "Slider name: " << slider->getName() << std::endl;
std::cout << "Slider value: " << slider->getValue() << std::endl;
sliderEvent(slider);
}
bool GenericEditor::checkParameterButtons(Button* button)
{
std::cout << "Button name: " << button->getName() << std::endl;
std::cout << "Button value: " << button->getButtonText() << std::endl;
}
bool GenericEditor::checkDrawerButton(Button* button) bool GenericEditor::checkDrawerButton(Button* button)
{ {
...@@ -338,6 +323,12 @@ bool GenericEditor::checkDrawerButton(Button* button) ...@@ -338,6 +323,12 @@ bool GenericEditor::checkDrawerButton(Button* button)
} }
void GenericEditor::sliderValueChanged(Slider* slider)
{
sliderEvent(slider);
}
void GenericEditor::update() void GenericEditor::update()
{ {
......
...@@ -99,7 +99,7 @@ public: ...@@ -99,7 +99,7 @@ public:
virtual void sliderEvent(Slider* slider) {} virtual void sliderEvent(Slider* slider) {}
bool checkDrawerButton(Button* button); bool checkDrawerButton(Button* button);
bool checkParameterButtons(Button* button); // bool checkParameterButtons(Button* button);
bool getRecordStatus(int chan); bool getRecordStatus(int chan);
......
...@@ -31,24 +31,7 @@ LfpDisplayEditor::LfpDisplayEditor (GenericProcessor* parentNode) ...@@ -31,24 +31,7 @@ LfpDisplayEditor::LfpDisplayEditor (GenericProcessor* parentNode)
tabText = "LFP"; tabText = "LFP";
desiredWidth = 250; desiredWidth = 180;
StringArray timeBaseValues;
timeBaseValues.add("1");
timeBaseValues.add("2");
timeBaseValues.add("5");
timeBaseValues.add("10");
//createRadioButtons(35, 50, 160, timeBaseValues, "Display width (s)");
StringArray displayGainValues;
displayGainValues.add("1");
displayGainValues.add("2");
displayGainValues.add("4");
displayGainValues.add("8");
//createRadioButtons(35, 90, 160, displayGainValues, "Display Gain");
} }
......
...@@ -23,9 +23,11 @@ ...@@ -23,9 +23,11 @@
#include "ParameterEditor.h" #include "ParameterEditor.h"
ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ParameterEditor::ParameterEditor(GenericProcessor* proc, Parameter& p, Font labelFont)
{ {
processor = proc;
if (p.isBoolean()) if (p.isBoolean())
{ {
std::cout << "Boolean parameter. Creating checkbox." << std::endl; std::cout << "Boolean parameter. Creating checkbox." << std::endl;
...@@ -34,8 +36,10 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ...@@ -34,8 +36,10 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont)
ParameterCheckbox* pc = new ParameterCheckbox((bool) p.getDefaultValue()); ParameterCheckbox* pc = new ParameterCheckbox((bool) p.getDefaultValue());
addAndMakeVisible(pc); addAndMakeVisible(pc);
pc->setBounds(0,0,12, 12); pc->setBounds(0,0,12, 12);
pc->setName(p.getName()); pc->setName(String(p.getID()));
buttonArray.add(pc); buttonArray.add(pc);
//buttonIdArray.add(p.getID());
pc->addListener(this);
Label* label = new Label(p.getName(), p.getName()); Label* label = new Label(p.getName(), p.getName());
labelFont.setHeight(10); labelFont.setHeight(10);
...@@ -58,9 +62,11 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ...@@ -58,9 +62,11 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont)
labelFont); labelFont);
ps->setBounds(0,0, 40, 40); ps->setBounds(0,0, 40, 40);
ps->setName(p.getName()); ps->setName(String(p.getID()));
addAndMakeVisible(ps); addAndMakeVisible(ps);
sliderArray.add(ps); sliderArray.add(ps);
//sliderIdArray.add(p.getID());
ps->addListener(this);
Label* label = new Label(p.getName(), p.getName()); Label* label = new Label(p.getName(), p.getName());
labelFont.setHeight(10); labelFont.setHeight(10);
...@@ -92,7 +98,9 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ...@@ -92,7 +98,9 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont)
std::cout << "Default value: " << (int) p.getDefaultValue() << std::endl; std::cout << "Default value: " << (int) p.getDefaultValue() << std::endl;
for (int i = 0; i < possibleValues.size(); i++) int i;
for (i = 0; i < possibleValues.size(); i++)
{ {
std::cout << "Creating button " << i << std::endl; std::cout << "Creating button " << i << std::endl;
int buttonType = MIDDLE; int buttonType = MIDDLE;
...@@ -103,8 +111,10 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ...@@ -103,8 +111,10 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont)
ParameterButton* pb = new ParameterButton(possibleValues[i], buttonType, labelFont); ParameterButton* pb = new ParameterButton(possibleValues[i], buttonType, labelFont);
pb->setBounds(buttonWidth*i, 12, buttonWidth, 18); pb->setBounds(buttonWidth*i, 12, buttonWidth, 18);
pb->setName(p.getName()); pb->setName(String(p.getID()));
buttonArray.add(pb); buttonArray.add(pb);
//buttonIdArray.add(p.getID());
pb->addListener(this);
if (i == (int) p.getDefaultValue()) if (i == (int) p.getDefaultValue())
pb->setToggleState(true, false); pb->setToggleState(true, false);
...@@ -113,7 +123,7 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont) ...@@ -113,7 +123,7 @@ ParameterEditor::ParameterEditor(Parameter& p, Font labelFont)
} }
desiredWidth = 120; desiredWidth = buttonWidth*i;
desiredHeight = 30; desiredHeight = 30;
} }
} }
...@@ -125,25 +135,69 @@ ParameterEditor::~ParameterEditor() ...@@ -125,25 +135,69 @@ ParameterEditor::~ParameterEditor()
void ParameterEditor::parentHierarchyChanged() void ParameterEditor::parentHierarchyChanged()
{ {
std::cout << "Parent hierarchy changed." << std::endl; // std::cout << "Parent hierarchy changed." << std::endl;
// register all children with parent --> not currently working // // register all children with parent --> not currently working
if (getParentComponent() != 0) { // if (getParentComponent() != 0) {
for (int i = 0; i < sliderArray.size(); i++) // for (int i = 0; i < sliderArray.size(); i++)
// {
// sliderArray[i]->addListener((Slider::Listener*) getParentComponent());
// }
// for (int i = 0; i < buttonArray.size(); i++)
// {
// buttonArray[i]->addListener((Button::Listener*) getParentComponent());
// }
// }
}
void ParameterEditor::buttonClicked(Button* button)
{
//std::cout << "Button name: " << button->getName() << std::endl;
//std::cout << "Button value: " << button->getButtonText() << std::endl;
Array<int> a = channelSelector->getActiveChannels();
{
for (int i = 0; i < a.size(); i++)
{ {
sliderArray[i]->addListener((Slider::Listener*) getParentComponent()); //std::cout << a[i] << " ";
processor->setCurrentChannel(a[i]);
processor->setParameter(button->getName().getIntValue(),
button->getButtonText().getFloatValue());
//processor->
} }
//std::cout << std::endl;
}
for (int i = 0; i < buttonArray.size(); i++) //processor->sliderValueChanged(slider);
}
void ParameterEditor::sliderValueChanged(Slider* slider)
{
//std::cout << "Slider name: " << slider->getName() << std::endl;
//std::cout << "Slider value: " << slider->getValue() << std::endl;
Array<int> a = channelSelector->getActiveChannels();
{
for (int i = 0; i < a.size(); i++)
{ {
buttonArray[i]->addListener((Button::Listener*) getParentComponent()); //std::cout << a[i] << " ";
processor->setCurrentChannel(a[i]);
processor->setParameter(slider->getName().getIntValue(),
slider->getValue());
//processor->
} }
//std::cout << std::endl;
} }
} }
/// ============= PARAMETER BUTTON ================== /// ============= PARAMETER BUTTON ==================
ParameterButton::ParameterButton(var value, int buttonType, Font labelFont) : ParameterButton::ParameterButton(var value, int buttonType, Font labelFont) :
......
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
#define __PARAMETEREDITOR_H_44537DA9__ #define __PARAMETEREDITOR_H_44537DA9__
#include "../../../JuceLibraryCode/JuceHeader.h" #include "../../../JuceLibraryCode/JuceHeader.h"
#include "GenericEditor.h" #include "../GenericProcessor.h"
#include "ChannelSelector.h"
#include "../Parameter.h" #include "../Parameter.h"
#include <stdio.h> #include <stdio.h>
...@@ -34,15 +35,17 @@ ...@@ -34,15 +35,17 @@
Automatically creates an interactive editor for a particular Automatically creates an interactive editor for a particular
parameter. parameter.
@see GenericEditor, Parameter @see GenericEditor, GenericProcessor, Parameter
*/ */
class ParameterEditor : public Component class ParameterEditor : public Component,
public Button::Listener,
public Slider::Listener
{ {
public: public:
ParameterEditor(Parameter& p, Font labelFont); ParameterEditor(GenericProcessor* proc, Parameter& p, Font labelFont);
~ParameterEditor(); ~ParameterEditor();
...@@ -51,10 +54,23 @@ public: ...@@ -51,10 +54,23 @@ public:
void parentHierarchyChanged(); void parentHierarchyChanged();
void buttonClicked(Button* button);
void sliderValueChanged(Slider* slider);
void setChannelSelector(ChannelSelector* ch)
{
channelSelector = ch;
}
private: private:
Array<Slider*> sliderArray; Array<Slider*> sliderArray;
Array<Button*> buttonArray; Array<Button*> buttonArray;
Array<int> buttonIdArray;
Array<int> sliderIdArray;
GenericProcessor* processor;
ChannelSelector* channelSelector;
enum { enum {
LEFT, LEFT,
......
...@@ -84,7 +84,7 @@ VisualizerEditor::VisualizerEditor (GenericProcessor* parentNode) ...@@ -84,7 +84,7 @@ VisualizerEditor::VisualizerEditor (GenericProcessor* parentNode)
{ {
desiredWidth = 250; desiredWidth = 180;
initializeSelectors(); initializeSelectors();
......
...@@ -28,6 +28,14 @@ EventNode::EventNode() ...@@ -28,6 +28,14 @@ EventNode::EventNode()
: GenericProcessor("Event Generator"), Hz(1), accumulator(0) : GenericProcessor("Event Generator"), Hz(1), accumulator(0)
{ {
Array<var> hzValues;
hzValues.add(0.25f);
hzValues.add(0.5f);
hzValues.add(1.0f);
hzValues.add(2.0f);
parameters.add(Parameter("Frequency",hzValues, 0, 0));
} }
EventNode::~EventNode() EventNode::~EventNode()
...@@ -49,11 +57,11 @@ void EventNode::updateSettings() ...@@ -49,11 +57,11 @@ void EventNode::updateSettings()
} }
void EventNode::setParameter (int parameterIndex, float newValue) // void EventNode::setParameter (int parameterIndex, float newValue)
{ // {
std::cout << "Setting frequency to " << newValue << " Hz." << std::endl; // std::cout << "Setting frequency to " << newValue << " Hz." << std::endl;
Hz = newValue; // Hz = newValue;
} // }
void EventNode::process(AudioSampleBuffer &buffer, void EventNode::process(AudioSampleBuffer &buffer,
......
...@@ -45,7 +45,7 @@ public: ...@@ -45,7 +45,7 @@ public:
~EventNode(); ~EventNode();
void process(AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples); void process(AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples);
void setParameter (int parameterIndex, float newValue); //void setParameter (int parameterIndex, float newValue);
bool isSource() {return true;} bool isSource() {return true;}
......
...@@ -30,6 +30,22 @@ FilterNode::FilterNode() ...@@ -30,6 +30,22 @@ FilterNode::FilterNode()
{ {
Array<var> lowCutValues;
lowCutValues.add(1.0f);
lowCutValues.add(10.0f);
lowCutValues.add(100.0f);
lowCutValues.add(500.0f);
parameters.add(Parameter("low cut",lowCutValues, 0, 0));
Array<var> highCutValues;
highCutValues.add(1000.0f);
highCutValues.add(3000.0f);
highCutValues.add(6000.0f);
highCutValues.add(9000.0f);
parameters.add(Parameter("high cut",highCutValues, 0, 1));
} }
FilterNode::~FilterNode() FilterNode::~FilterNode()
...@@ -85,8 +101,8 @@ void FilterNode::updateSettings() ...@@ -85,8 +101,8 @@ void FilterNode::updateSettings()
{ {
filters.clear(); filters.clear();
lowCuts.clear(); // lowCuts.clear();
highCuts.clear(); //highCuts.clear();
if (getNumInputs() < 100) { if (getNumInputs() < 100) {
...@@ -101,8 +117,11 @@ void FilterNode::updateSettings() ...@@ -101,8 +117,11 @@ void FilterNode::updateSettings()
Dsp::DirectFormII> // realization Dsp::DirectFormII> // realization
(1024)); (1024));
lowCuts.add(1.0f); Parameter& p1 = parameters.getReference(0);
highCuts.add(1000.0f); p1.setValue(1.0f, n);
Parameter& p2 = parameters.getReference(1);
p2.setValue(1000.0f, n);
setFilterParameters(1.0f, 1000.0f, n); setFilterParameters(1.0f, 1000.0f, n);
} }
...@@ -128,14 +147,42 @@ void FilterNode::setFilterParameters(double lowCut, double highCut, int chan) ...@@ -128,14 +147,42 @@ void FilterNode::setFilterParameters(double lowCut, double highCut, int chan)
void FilterNode::setParameter (int parameterIndex, float newValue) void FilterNode::setParameter (int parameterIndex, float newValue)
{ {
if (parameterIndex == 0) { std::cout << "Setting channel " << currentChannel;// << std::endl;
lowCuts.set(currentChannel, newValue);
setFilterParameters(newValue, highCuts[currentChannel], currentChannel); if (parameterIndex == 0)
{
std::cout << " low cut to ";
} else { } else {
highCuts.set(currentChannel, newValue); std::cout << " high cut to ";
setFilterParameters(lowCuts[currentChannel], newValue, currentChannel);
} }
std::cout << newValue << std::endl;
//if (parameterIndex)
//
Parameter& p = parameters.getReference(parameterIndex);
p.setValue(newValue, currentChannel);
Parameter& p1 = parameters.getReference(0);
Parameter& p2 = parameters.getReference(1);
std::cout << float(p1[currentChannel]) << " ";
std::cout << float(p2[currentChannel]) << std::endl;
setFilterParameters(float(p1[currentChannel]),
float(p2[currentChannel]),
currentChannel);
// if (parameterIndex == 0) {
// parameters[0].setValue(newValue, currentChannel);
// setFilterParameters(newValue, parameters[0][currentChannel], currentChannel);
// } else {
// parameters[1].setValue(newValue, currentChannel);
// setFilterParameters(lowCuts[currentChannel], newValue, currentChannel);
// }
} }
void FilterNode::process(AudioSampleBuffer &buffer, void FilterNode::process(AudioSampleBuffer &buffer,
......
...@@ -30,7 +30,7 @@ GenericProcessor::GenericProcessor(const String& name_) : ...@@ -30,7 +30,7 @@ GenericProcessor::GenericProcessor(const String& name_) :
isEnabled(true), isEnabled(true),
saveOrder(-1), loadOrder(-1), saveOrder(-1), loadOrder(-1),
nextAvailableChannel(0), currentChannel(-1), nextAvailableChannel(0), currentChannel(-1),
wasConnected(false), nullParam("VOID", false) wasConnected(false), nullParam("VOID", false, -1)
{ {
} }
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
*/ */
#include "LfpDisplayNode.h" #include "LfpDisplayNode.h"
#include "Visualization/LfpDisplayCanvas.h"
#include <stdio.h> #include <stdio.h>
LfpDisplayNode::LfpDisplayNode() LfpDisplayNode::LfpDisplayNode()
...@@ -32,6 +33,23 @@ LfpDisplayNode::LfpDisplayNode() ...@@ -32,6 +33,23 @@ LfpDisplayNode::LfpDisplayNode()
{ {
displayBuffer = new AudioSampleBuffer(8, 100); displayBuffer = new AudioSampleBuffer(8, 100);
eventBuffer = new MidiBuffer(); eventBuffer = new MidiBuffer();
Array<var> timeBaseValues;
timeBaseValues.add(1);
timeBaseValues.add(2);
timeBaseValues.add(5);
timeBaseValues.add(10);
parameters.add(Parameter("timebase",timeBaseValues, 0, 0));//true);//a,0);
Array<var> displayGainValues;
displayGainValues.add(1);
displayGainValues.add(2);
displayGainValues.add(4);
displayGainValues.add(8);
parameters.add(Parameter("display gain",displayGainValues, 0, 1));//true);//a,0);
} }
LfpDisplayNode::~LfpDisplayNode() LfpDisplayNode::~LfpDisplayNode()
...@@ -94,7 +112,8 @@ bool LfpDisplayNode::disable() ...@@ -94,7 +112,8 @@ bool LfpDisplayNode::disable()
void LfpDisplayNode::setParameter (int parameterIndex, float newValue) void LfpDisplayNode::setParameter (int parameterIndex, float newValue)
{ {
LfpDisplayEditor* ed = (LfpDisplayEditor*) getEditor();
ed->canvas->setParameter(parameterIndex, newValue);
} }
void LfpDisplayNode::process(AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples) void LfpDisplayNode::process(AudioSampleBuffer &buffer, MidiBuffer &midiMessages, int& nSamples)
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
#include "Parameter.h" #include "Parameter.h"
Parameter::Parameter(const String& name_, bool defaultVal) Parameter::Parameter(const String& name_, bool defaultVal, int ID)
: name(name_), description("") : name(name_), description(""), parameterId(ID)
{ {
defaultValue = defaultVal; defaultValue = defaultVal;
...@@ -39,8 +39,8 @@ Parameter::Parameter(const String& name_, bool defaultVal) ...@@ -39,8 +39,8 @@ Parameter::Parameter(const String& name_, bool defaultVal)
} }
Parameter::Parameter(const String& name_, float low, float high, float defaultVal) Parameter::Parameter(const String& name_, float low, float high, float defaultVal, int ID)
: name(name_), description("") : name(name_), description(""), parameterId(ID)
{ {
defaultValue = defaultVal; defaultValue = defaultVal;
...@@ -53,8 +53,8 @@ Parameter::Parameter(const String& name_, float low, float high, float defaultVa ...@@ -53,8 +53,8 @@ Parameter::Parameter(const String& name_, float low, float high, float defaultVa
} }
Parameter::Parameter(const String& name_, Array<var> a, int defaultVal) Parameter::Parameter(const String& name_, Array<var> a, int defaultVal, int ID)
: name(name_), description("") : name(name_), description(""), parameterId(ID)
{ {
possibleValues = a; possibleValues = a;
defaultValue = defaultVal; //possibleValues[defaultVal]; defaultValue = defaultVal; //possibleValues[defaultVal];
...@@ -87,12 +87,12 @@ void Parameter::setValue(float val, int chan) ...@@ -87,12 +87,12 @@ void Parameter::setValue(float val, int chan)
} }
} else { } else {
int index = (int) val; //int index = (int) val;
if (index >= 0 && index < possibleValues.size()) //if (index >= 0 && index < possibleValues.size())
{ //{
values.set(chan, possibleValues[index]); values.set(chan, val);
} //}
} }
......
...@@ -43,9 +43,9 @@ class Parameter ...@@ -43,9 +43,9 @@ class Parameter
{ {
public: public:
Parameter(const String& name_, bool defaultVal); Parameter(const String& name_, bool defaultVal, int ID);
Parameter(const String& name_, float low, float high, float defaultVal); Parameter(const String& name_, float low, float high, float defaultVal, int ID);
Parameter(const String& name_, Array<var> a, int defaultVal); Parameter(const String& name_, Array<var> a, int defaultVal, int ID);
~Parameter() {} ~Parameter() {}
...@@ -55,6 +55,8 @@ public: ...@@ -55,6 +55,8 @@ public:
var getDefaultValue() {return defaultValue;} var getDefaultValue() {return defaultValue;}
int getID() {return parameterId;}
Array<var> getPossibleValues() {return possibleValues;} Array<var> getPossibleValues() {return possibleValues;}
void setValue(float val, int chan); void setValue(float val, int chan);
...@@ -71,6 +73,8 @@ private: ...@@ -71,6 +73,8 @@ private:
const String name; const String name;
String description; String description;
int parameterId;
bool isBool, isCont, isDisc; bool isBool, isCont, isDisc;
var defaultValue; var defaultValue;
......
...@@ -42,10 +42,9 @@ SignalGenerator::SignalGenerator() ...@@ -42,10 +42,9 @@ SignalGenerator::SignalGenerator()
a.add(2); a.add(2);
a.add(3); a.add(3);
parameters.add(Parameter("Param 1",a, 0, 0));//true);//a,0);
parameters.add(Parameter("Param 1",a, 0));//true);//a,0); parameters.add(Parameter("PARAM",0.0f, 100.0f, 50.0f, 1));
parameters.add(Parameter("PARAM",0.0f, 100.0f, 50.0f));
//parameters.add(Parameter("Param 1",a, 0));//true);//a,0); //parameters.add(Parameter("Param 1",a, 0));//true);//a,0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment