Merge branch 'master' into feature/esfm

This commit is contained in:
Kagamiin~ 2024-01-01 14:45:54 -03:00
commit 215c8c375a
46 changed files with 1596 additions and 829 deletions

View file

@ -2967,7 +2967,11 @@ void FurnaceGUI::drawInsEdit() {
updateFMPreview=false;
}
if (settings.insEditColorize) {
pushAccentColors(uiColors[GUI_COLOR_INSTR_STD+ins->type],uiColors[GUI_COLOR_INSTR_STD+ins->type],uiColors[GUI_COLOR_INSTR_STD+ins->type],ImVec4(0.0f,0.0f,0.0f,0.0f));
if (ins->type>=DIV_INS_MAX) {
pushAccentColors(uiColors[GUI_COLOR_INSTR_UNKNOWN],uiColors[GUI_COLOR_INSTR_UNKNOWN],uiColors[GUI_COLOR_INSTR_UNKNOWN],ImVec4(0.0f,0.0f,0.0f,0.0f));
} else {
pushAccentColors(uiColors[GUI_COLOR_INSTR_STD+ins->type],uiColors[GUI_COLOR_INSTR_STD+ins->type],uiColors[GUI_COLOR_INSTR_STD+ins->type],ImVec4(0.0f,0.0f,0.0f,0.0f));
}
}
if (ImGui::BeginTable("InsProp",3)) {
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
@ -3028,14 +3032,8 @@ void FurnaceGUI::drawInsEdit() {
ImGui::Text("Type");
ImGui::TableNextColumn();
if (ins->type>=DIV_INS_MAX) ins->type=DIV_INS_FM;
int insType=ins->type;
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
/*
if (ImGui::Combo("##Type",&insType,insTypes,DIV_INS_MAX,DIV_INS_MAX)) {
ins->type=(DivInstrumentType)insType;
}
*/
bool warnType=true;
for (DivInstrumentType i: e->getPossibleInsTypes()) {
if (i==insType) {
@ -3044,7 +3042,7 @@ void FurnaceGUI::drawInsEdit() {
}
pushWarningColor(warnType,warnType && failedNoteOn);
if (ImGui::BeginCombo("##Type",insTypes[insType][0])) {
if (ImGui::BeginCombo("##Type",(insType>=DIV_INS_MAX)?"Unknown":insTypes[insType][0])) {
std::vector<DivInstrumentType> insTypeList;
if (settings.displayAllInsTypes) {
for (int i=0; insTypes[i][0]; i++) {
@ -6689,7 +6687,7 @@ void FurnaceGUI::drawInsEdit() {
ImGui::EndTabItem();
}
}
if (ImGui::BeginTabItem("Macros")) {
if (ins->type<DIV_INS_MAX) if (ImGui::BeginTabItem("Macros")) {
const char* volumeLabel="Volume";
int volMax=15;
@ -7247,6 +7245,12 @@ void FurnaceGUI::drawInsEdit() {
ins->type==DIV_INS_VRC6) {
insTabSample(ins);
}
if (ins->type>=DIV_INS_MAX) {
if (ImGui::BeginTabItem("Error")) {
ImGui::Text("invalid instrument type! change it first.");
ImGui::EndTabItem();
}
}
ImGui::EndTabBar();
}
if (settings.insEditColorize) {