GUI: fix KSL values 1/2 being swapped in OPL
This commit is contained in:
parent
1ab80379e1
commit
1a27bf3373
|
@ -352,6 +352,10 @@ const int detuneUnmap[2][11]={
|
||||||
{0, 0, 0, 3, 4, 5, 6, 7, 2, 1, 0}
|
{0, 0, 0, 3, 4, 5, 6, 7, 2, 1, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const int kslMap[4]={
|
||||||
|
0, 2, 1, 3
|
||||||
|
};
|
||||||
|
|
||||||
// do not change these!
|
// do not change these!
|
||||||
// anything other than a checkbox will look ugly!
|
// anything other than a checkbox will look ugly!
|
||||||
//
|
//
|
||||||
|
@ -2778,7 +2782,11 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) {
|
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPM) {
|
||||||
P(CWVSliderScalar("##RS",ImVec2(20.0f*dpiScale,sliderHeight),ImGuiDataType_U8,&op.rs,&_ZERO,&_THREE));
|
P(CWVSliderScalar("##RS",ImVec2(20.0f*dpiScale,sliderHeight),ImGuiDataType_U8,&op.rs,&_ZERO,&_THREE));
|
||||||
} else {
|
} else {
|
||||||
P(CWVSliderScalar("##KSL",ImVec2(20.0f*dpiScale,sliderHeight),ImGuiDataType_U8,&op.ksl,&_ZERO,&_THREE));
|
int ksl=ins->type==DIV_INS_OPLL?op.ksl:kslMap[op.ksl&3];
|
||||||
|
if (CWVSliderInt("##KSL",ImVec2(20.0f*dpiScale,sliderHeight),&ksl,0,3)) {
|
||||||
|
op.ksl=(ins->type==DIV_INS_OPLL?ksl:kslMap[ksl&3]);
|
||||||
|
PARAMETER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ins->type==DIV_INS_OPZ) {
|
if (ins->type==DIV_INS_OPZ) {
|
||||||
|
@ -3226,7 +3234,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case DIV_INS_OPL:
|
case DIV_INS_OPL:
|
||||||
case DIV_INS_OPL_DRUMS:
|
case DIV_INS_OPL_DRUMS: {
|
||||||
// waveform
|
// waveform
|
||||||
drawWaveform(op.ws&7,ins->type==DIV_INS_OPZ,ImVec2(waveWidth,waveHeight));
|
drawWaveform(op.ws&7,ins->type==DIV_INS_OPZ,ImVec2(waveWidth,waveHeight));
|
||||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||||
|
@ -3268,9 +3276,14 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
|
|
||||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||||
snprintf(tempID,1024,"%s: %%d",FM_NAME(FM_KSL));
|
snprintf(tempID,1024,"%s: %%d",FM_NAME(FM_KSL));
|
||||||
P(CWSliderScalar("##KSL",ImGuiDataType_U8,&op.ksl,&_ZERO,&_THREE,tempID)); rightClickable
|
int ksl=kslMap[op.ksl&3];
|
||||||
|
if (CWSliderInt("##KSL",&ksl,0,3,tempID)) {
|
||||||
|
op.ksl=kslMap[ksl&3];
|
||||||
|
PARAMETER;
|
||||||
|
} rightClickable
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case DIV_INS_OPZ: {
|
case DIV_INS_OPZ: {
|
||||||
// waveform
|
// waveform
|
||||||
drawWaveform(op.ws&7,ins->type==DIV_INS_OPZ,ImVec2(waveWidth,waveHeight));
|
drawWaveform(op.ws&7,ins->type==DIV_INS_OPZ,ImVec2(waveWidth,waveHeight));
|
||||||
|
@ -3613,7 +3626,11 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::Text("%s",FM_NAME(FM_RS));
|
ImGui::Text("%s",FM_NAME(FM_RS));
|
||||||
} else {
|
} else {
|
||||||
P(CWSliderScalar("##KSL",ImGuiDataType_U8,&op.ksl,&_ZERO,&_THREE)); rightClickable
|
int ksl=ins->type==DIV_INS_OPLL?op.ksl:kslMap[op.ksl&3];
|
||||||
|
if (CWSliderInt("##KSL",&ksl,0,3)) {
|
||||||
|
op.ksl=(ins->type==DIV_INS_OPLL?ksl:kslMap[ksl&3]);
|
||||||
|
PARAMETER;
|
||||||
|
} rightClickable
|
||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
ImGui::Text("%s",FM_NAME(FM_KSL));
|
ImGui::Text("%s",FM_NAME(FM_KSL));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue