refactor effect sorting

This commit is contained in:
Eknous-P 2024-02-03 23:14:05 +04:00 committed by tildearrow
parent 90ce00ed4a
commit ba1dc39238
2 changed files with 15 additions and 48 deletions

View file

@ -21,7 +21,7 @@ void FurnaceGUI::drawEffectList() {
}
ImGui::Button(ICON_FA_BARS "##SortEffects");
if (ImGui::BeginPopupContextItem("effectSort",ImGuiPopupFlags_MouseButtonLeft)) {
for (int i=0; i<9; i++) {
for (int i=1; i<10; i++) {
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[fxColorsSort[i]]);
ImGui::Checkbox(fxColorsNames[i],&effectsShow[i]);
ImGui::PopStyleColor();
@ -47,58 +47,25 @@ void FurnaceGUI::drawEffectList() {
const char* prevName=NULL;
for (int i=0; i<256; i++) {
const char* name=e->getEffectDesc(i,cursor.xCoarse);
bool effectShow=true;
if (name==prevName) {
continue;
}
prevName=name;
switch (fxColors[i]) {
case GUI_COLOR_PATTERN_EFFECT_MISC:
effectShow=effectsShow[8];
break;
case GUI_COLOR_PATTERN_EFFECT_SONG:
effectShow=effectsShow[1];
break;
case GUI_COLOR_PATTERN_EFFECT_SPEED:
effectShow=effectsShow[3];
break;
case GUI_COLOR_PATTERN_EFFECT_TIME:
effectShow=effectsShow[2];
break;
case GUI_COLOR_PATTERN_EFFECT_PITCH:
effectShow=effectsShow[0];
break;
case GUI_COLOR_PATTERN_EFFECT_PANNING:
effectShow=effectsShow[4];
break;
case GUI_COLOR_PATTERN_EFFECT_VOLUME:
effectShow=effectsShow[5];
break;
case GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY:
effectShow=effectsShow[6];
break;
case GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY:
effectShow=effectsShow[7];
break;
default:
effectShow=true;
break;
}
if (fxColors[i]==GUI_COLOR_PATTERN_EFFECT_PANNING) {
DivDispatch* dispatch=e->getDispatch(e->dispatchOfChan[cursor.xCoarse]);
if (dispatch!=NULL) {
int outputs=dispatch->getOutputCount();
if (outputs<2) {
effectShow=false;
continue;
}
if (outputs<3) {
if (i>=0x88 && i<=0x8f) {
effectShow=false;
continue;
}
}
}
}
if (name!=NULL && effectShow) {
if (name!=NULL && effectsShow[fxColors[i]-GUI_COLOR_PATTERN_EFFECT_INVALID]) {
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::PushFont(patFont);

View file

@ -217,30 +217,30 @@ const char* resampleStrats[]={
"best possible"
};
const FurnaceGUIColors fxColorsSort[]={//used for sorting
const FurnaceGUIColors fxColorsSort[]={ // used for sorting
GUI_COLOR_PATTERN_EFFECT_INVALID,
GUI_COLOR_PATTERN_EFFECT_PITCH,
GUI_COLOR_PATTERN_EFFECT_VOLUME,
GUI_COLOR_PATTERN_EFFECT_PANNING,
GUI_COLOR_PATTERN_EFFECT_SONG,
GUI_COLOR_PATTERN_EFFECT_TIME,
GUI_COLOR_PATTERN_EFFECT_SPEED,
GUI_COLOR_PATTERN_EFFECT_PANNING,
GUI_COLOR_PATTERN_EFFECT_VOLUME,
GUI_COLOR_PATTERN_EFFECT_SYS_PRIMARY,
GUI_COLOR_PATTERN_EFFECT_SYS_SECONDARY,
GUI_COLOR_PATTERN_EFFECT_MISC,
GUI_COLOR_PATTERN_EFFECT_INVALID
GUI_COLOR_PATTERN_EFFECT_MISC
};
const char* fxColorsNames[]={
"Invalid",
"Pitch",
"Volume",
"Panning",
"Song",
"Time",
"Speed",
"Panning",
"Volume",
"System Primary",
"System Secondary",
"Miscellaneous",
"Invalid"
"System (Primary)",
"System (Secondary)",
"Miscellaneous"
};
const FurnaceGUIColors fxColors[256]={