aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/BowelyzerGUI.sc55
1 files changed, 30 insertions, 25 deletions
diff --git a/classes/BowelyzerGUI.sc b/classes/BowelyzerGUI.sc
index ff55d4b..b769203 100644
--- a/classes/BowelyzerGUI.sc
+++ b/classes/BowelyzerGUI.sc
@@ -25,7 +25,8 @@ BowelyzerGUI{
headViewWidth = 300,
controlsViewWidth = 246,
controlsViewHeight = 700,
- controlGroups = #["general", "amplitude", "pitch", "hf"],
+// controlGroups = #["general", "amplitude", "pitch", "hf"],
+// controlGroupGeneral = #[\sendReplyFreq, \freqRange, ],
sliderWidth = 238,
sliderHeight = 40
;
@@ -368,18 +369,18 @@ BowelyzerGUI{
this.setupLevelIndicator(meterView);
0.01.wait;
// add Buttons for each subset of controls
- controlGroups.do({|group|
+ BowelyzerConfig.controlGroupsGUI.do({|group|
this.setupControlsGroupButton(group, controlsSelectorView);
});
0.01.wait;
// add controls in groups
- controlGroups.do({|group|
+ BowelyzerConfig.controlGroupsGUI.do({|group|
this.setupControlsGroup(group, name, config, controlsView);
0.005.wait;
});
0.01.wait;
// show only the general controls
- this.showControlsByType(controlGroups[0], controlsSelectorView.children, controlsView);
+ this.showControlsByType(BowelyzerConfig.controlGroupsGUI[0], controlsSelectorView.children, controlsView);
}.play(AppClock);
// add channelView to the container and the global Dictionary for better access
@@ -415,28 +416,21 @@ BowelyzerGUI{
controlsSubView.layout.spacing = 4;
controlsSubView.layout.margins = [0,0,0,0];
controlsSubView.maxWidth_(controlsViewWidth-8);
- config.at(\controls).at(name).order.do({|control, i|
- var value = config.at(\controls).at(name).at(control),
- controlIs = BowelyzerConfig.controlContainedIn(control);
- //TODO: move selection of correct control type to function
- if(group == "general",{
- if(control == \sendReplyFreq, {
- switch(
- controlIs.asSymbol,
- //TODO: move special settings for EZGUI elements to functions
- \knob, {this.setupEZKnob(controlsSubView, control, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})},
- \slider, {this.setupEZSlider(controlsSubView, control, value)},
- \ranger, {this.setupEZRanger(controlsSubView, control, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})}
- );
+
+ if(group != \general, {
+ config.at(\controls).at(name).order.do({|controlName, i|
+ var value = config.at(\controls).at(name).at(controlName),
+ type = BowelyzerConfig.controlContainedIn(controlName);
+ if(controlName.asString.beginsWith(group.asString), {
+ this.setupControlFromConfig(controlsSubView, type, controlName, value);
});
- },{
- if(control.asString.beginsWith(group),{
- switch(
- controlIs.asSymbol,
- \knob, {this.setupEZKnob(controlsSubView, control, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})},
- \slider, {this.setupEZSlider(controlsSubView, control, value)},
- \ranger, {this.setupEZRanger(controlsSubView, control, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})}
- );
+ });
+ },{
+ config.at(\controls).at(name).order.do({|controlName, i|
+ var value = config.at(\controls).at(name).at(controlName),
+ type = BowelyzerConfig.controlContainedIn(controlName);
+ if(BowelyzerConfig.generalControlGroupGUI.includes(controlName), {
+ this.setupControlFromConfig(controlsSubView, type, controlName, value);
});
});
});
@@ -444,6 +438,17 @@ BowelyzerGUI{
controlsSubView.minSize_((controlsViewWidth-8)@(controlsSubView.children.size*(sliderHeight+4)));
}
+ //setup a control from configuration (adhering to its type)
+ setupControlFromConfig{
+ arg parent, type, name, value;
+ switch(
+ type.asSymbol,
+ \knob, {this.setupEZKnob(parent, name, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})},
+ \slider, {this.setupEZSlider(parent, name, value)},
+ \ranger, {this.setupEZRanger(parent, name, value, \controls, name).view.children.do({|item| if(item.isKindOf(NumberBox),{item.align_(\right)})})}
+ );
+ }
+
// show only the controls of a certain type
showControlsByType{
arg name, buttons, controls;