GUI: insEdit refactor, part 3
prepare to split
This commit is contained in:
parent
fb95d7d44c
commit
f994c7c5e3
|
@ -2925,224 +2925,7 @@ void FurnaceGUI::insTabSample(DivInstrument* ins) {
|
|||
}
|
||||
}
|
||||
|
||||
void FurnaceGUI::drawInsEdit() {
|
||||
if (nextWindow==GUI_WINDOW_INS_EDIT) {
|
||||
insEditOpen=true;
|
||||
ImGui::SetNextWindowFocus();
|
||||
nextWindow=GUI_WINDOW_NOTHING;
|
||||
}
|
||||
if (!insEditOpen) return;
|
||||
if (mobileUI) {
|
||||
patWindowPos=(portrait?ImVec2(0.0f,(mobileMenuPos*-0.65*canvasH)):ImVec2((0.16*canvasH)+0.5*canvasW*mobileMenuPos,0.0f));
|
||||
patWindowSize=(portrait?ImVec2(canvasW,canvasH-(0.16*canvasW)-(pianoOpen?(0.4*canvasW):0.0f)):ImVec2(canvasW-(0.16*canvasH),canvasH-(pianoOpen?(0.3*canvasH):0.0f)));
|
||||
ImGui::SetNextWindowPos(patWindowPos);
|
||||
ImGui::SetNextWindowSize(patWindowSize);
|
||||
} else {
|
||||
ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(canvasW,canvasH));
|
||||
}
|
||||
if (ImGui::Begin("Instrument Editor",&insEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
|
||||
if (curIns==-2) {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)*0.5f);
|
||||
CENTER_TEXT("waiting...");
|
||||
ImGui::Text("waiting...");
|
||||
} else if (curIns<0 || curIns>=(int)e->song.ins.size()) {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*(e->song.ins.empty()?2.0f:3.0f)+ImGui::GetStyle().ItemSpacing.y)*0.5f);
|
||||
CENTER_TEXT("no instrument selected");
|
||||
ImGui::Text("no instrument selected");
|
||||
if (ImGui::BeginTable("noAssetCenter",3)) {
|
||||
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f);
|
||||
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.5f);
|
||||
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
if (e->song.ins.size()>0) {
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
if (ImGui::BeginCombo("##InsSelect","select one...")) {
|
||||
String name;
|
||||
for (size_t i=0; i<e->song.ins.size(); i++) {
|
||||
name=fmt::sprintf("%.2X: %s##_INSS%d",i,e->song.ins[i]->name,i);
|
||||
if (ImGui::Selectable(name.c_str(),curIns==(int)i)) {
|
||||
curIns=i;
|
||||
wavePreviewInit=true;
|
||||
updateFMPreview=true;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::TextUnformatted("or");
|
||||
ImGui::SameLine();
|
||||
}
|
||||
if (ImGui::Button("Open")) {
|
||||
doAction(GUI_ACTION_INS_LIST_OPEN);
|
||||
}
|
||||
ImGui::SameLine();
|
||||
ImGui::TextUnformatted("or");
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Create New")) {
|
||||
doAction(GUI_ACTION_INS_LIST_ADD);
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::EndTable();
|
||||
}
|
||||
} else {
|
||||
DivInstrument* ins=e->song.ins[curIns];
|
||||
if (updateFMPreview) {
|
||||
renderFMPreview(ins);
|
||||
updateFMPreview=false;
|
||||
}
|
||||
if (settings.insEditColorize) {
|
||||
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);
|
||||
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch);
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
String insIndex=fmt::sprintf("%.2X",curIns);
|
||||
ImGui::SetNextItemWidth(72.0f*dpiScale);
|
||||
if (ImGui::BeginCombo("##InsSelect",insIndex.c_str())) {
|
||||
String name;
|
||||
for (size_t i=0; i<e->song.ins.size(); i++) {
|
||||
name=fmt::sprintf("%.2X: %s##_INSS%d",i,e->song.ins[i]->name,i);
|
||||
if (ImGui::Selectable(name.c_str(),curIns==(int)i)) {
|
||||
curIns=i;
|
||||
ins=e->song.ins[curIns];
|
||||
wavePreviewInit=true;
|
||||
updateFMPreview=true;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("Name");
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
ImGui::PushID(2+curIns);
|
||||
if (ImGui::InputText("##Name",&ins->name)) {
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
ImGui::PopID();
|
||||
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##IELoad")) {
|
||||
doAction(GUI_ACTION_INS_LIST_OPEN_REPLACE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Open");
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##IESave")) {
|
||||
doAction(GUI_ACTION_INS_LIST_SAVE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Save");
|
||||
}
|
||||
if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) {
|
||||
if (ImGui::MenuItem("save as .dmp...")) {
|
||||
doAction(GUI_ACTION_INS_LIST_SAVE_DMP);
|
||||
}
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("Type");
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
int insType=ins->type;
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
bool warnType=true;
|
||||
for (DivInstrumentType i: e->getPossibleInsTypes()) {
|
||||
if (i==insType) {
|
||||
warnType=false;
|
||||
}
|
||||
}
|
||||
|
||||
pushWarningColor(warnType,warnType && failedNoteOn);
|
||||
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++) {
|
||||
insTypeList.push_back((DivInstrumentType)i);
|
||||
}
|
||||
} else {
|
||||
insTypeList=e->getPossibleInsTypes();
|
||||
}
|
||||
for (DivInstrumentType i: insTypeList) {
|
||||
if (ImGui::Selectable(insTypes[i][0],insType==i)) {
|
||||
ins->type=i;
|
||||
|
||||
// reset macro zoom
|
||||
ins->std.volMacro.vZoom=-1;
|
||||
ins->std.dutyMacro.vZoom=-1;
|
||||
ins->std.waveMacro.vZoom=-1;
|
||||
ins->std.ex1Macro.vZoom=-1;
|
||||
ins->std.ex2Macro.vZoom=-1;
|
||||
ins->std.ex3Macro.vZoom=-1;
|
||||
ins->std.ex4Macro.vZoom=-1;
|
||||
ins->std.ex5Macro.vZoom=-1;
|
||||
ins->std.ex6Macro.vZoom=-1;
|
||||
ins->std.ex7Macro.vZoom=-1;
|
||||
ins->std.ex8Macro.vZoom=-1;
|
||||
ins->std.panLMacro.vZoom=-1;
|
||||
ins->std.panRMacro.vZoom=-1;
|
||||
ins->std.phaseResetMacro.vZoom=-1;
|
||||
ins->std.algMacro.vZoom=-1;
|
||||
ins->std.fbMacro.vZoom=-1;
|
||||
ins->std.fmsMacro.vZoom=-1;
|
||||
ins->std.amsMacro.vZoom=-1;
|
||||
for (int j=0; j<4; j++) {
|
||||
ins->std.opMacros[j].amMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].arMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].drMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].multMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].rrMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].slMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].tlMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dt2Macro.vZoom=-1;
|
||||
ins->std.opMacros[j].rsMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dtMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].d2rMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].ssgMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].damMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dvbMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].egtMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].kslMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].susMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].vibMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].wsMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].ksrMacro.vZoom=-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
} else if (warnType) {
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("none of the currently present chips are able to play this instrument type!");
|
||||
}
|
||||
}
|
||||
popWarningColor();
|
||||
|
||||
ImGui::EndTable();
|
||||
}
|
||||
|
||||
|
||||
if (ImGui::BeginTabBar("insEditTab")) {
|
||||
std::vector<FurnaceGUIMacroDesc> macroList;
|
||||
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPLL || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPL_DRUMS || ins->type==DIV_INS_OPM || ins->type==DIV_INS_ESFM) {
|
||||
char label[32];
|
||||
void FurnaceGUI::insTabFM(DivInstrument* ins) {
|
||||
int opCount=4;
|
||||
if (ins->type==DIV_INS_OPLL) opCount=2;
|
||||
if (ins->type==DIV_INS_OPL) opCount=(ins->fm.ops==4)?4:2;
|
||||
|
@ -5261,6 +5044,232 @@ void FurnaceGUI::drawInsEdit() {
|
|||
ImGui::EndDisabled();
|
||||
ImGui::EndTabItem();
|
||||
}
|
||||
}
|
||||
|
||||
void FurnaceGUI::drawInsEdit() {
|
||||
if (nextWindow==GUI_WINDOW_INS_EDIT) {
|
||||
insEditOpen=true;
|
||||
ImGui::SetNextWindowFocus();
|
||||
nextWindow=GUI_WINDOW_NOTHING;
|
||||
}
|
||||
if (!insEditOpen) return;
|
||||
if (mobileUI) {
|
||||
patWindowPos=(portrait?ImVec2(0.0f,(mobileMenuPos*-0.65*canvasH)):ImVec2((0.16*canvasH)+0.5*canvasW*mobileMenuPos,0.0f));
|
||||
patWindowSize=(portrait?ImVec2(canvasW,canvasH-(0.16*canvasW)-(pianoOpen?(0.4*canvasW):0.0f)):ImVec2(canvasW-(0.16*canvasH),canvasH-(pianoOpen?(0.3*canvasH):0.0f)));
|
||||
ImGui::SetNextWindowPos(patWindowPos);
|
||||
ImGui::SetNextWindowSize(patWindowSize);
|
||||
} else {
|
||||
ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(canvasW,canvasH));
|
||||
}
|
||||
if (ImGui::Begin("Instrument Editor",&insEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
|
||||
if (curIns==-2) {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)*0.5f);
|
||||
CENTER_TEXT("waiting...");
|
||||
ImGui::Text("waiting...");
|
||||
} else if (curIns<0 || curIns>=(int)e->song.ins.size()) {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*(e->song.ins.empty()?2.0f:3.0f)+ImGui::GetStyle().ItemSpacing.y)*0.5f);
|
||||
CENTER_TEXT("no instrument selected");
|
||||
ImGui::Text("no instrument selected");
|
||||
if (ImGui::BeginTable("noAssetCenter",3)) {
|
||||
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f);
|
||||
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.5f);
|
||||
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
if (e->song.ins.size()>0) {
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
if (ImGui::BeginCombo("##InsSelect","select one...")) {
|
||||
String name;
|
||||
for (size_t i=0; i<e->song.ins.size(); i++) {
|
||||
name=fmt::sprintf("%.2X: %s##_INSS%d",i,e->song.ins[i]->name,i);
|
||||
if (ImGui::Selectable(name.c_str(),curIns==(int)i)) {
|
||||
curIns=i;
|
||||
wavePreviewInit=true;
|
||||
updateFMPreview=true;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
ImGui::AlignTextToFramePadding();
|
||||
ImGui::TextUnformatted("or");
|
||||
ImGui::SameLine();
|
||||
}
|
||||
if (ImGui::Button("Open")) {
|
||||
doAction(GUI_ACTION_INS_LIST_OPEN);
|
||||
}
|
||||
ImGui::SameLine();
|
||||
ImGui::TextUnformatted("or");
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Create New")) {
|
||||
doAction(GUI_ACTION_INS_LIST_ADD);
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::EndTable();
|
||||
}
|
||||
} else {
|
||||
DivInstrument* ins=e->song.ins[curIns];
|
||||
if (updateFMPreview) {
|
||||
renderFMPreview(ins);
|
||||
updateFMPreview=false;
|
||||
}
|
||||
if (settings.insEditColorize) {
|
||||
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);
|
||||
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch);
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
String insIndex=fmt::sprintf("%.2X",curIns);
|
||||
ImGui::SetNextItemWidth(72.0f*dpiScale);
|
||||
if (ImGui::BeginCombo("##InsSelect",insIndex.c_str())) {
|
||||
String name;
|
||||
for (size_t i=0; i<e->song.ins.size(); i++) {
|
||||
name=fmt::sprintf("%.2X: %s##_INSS%d",i,e->song.ins[i]->name,i);
|
||||
if (ImGui::Selectable(name.c_str(),curIns==(int)i)) {
|
||||
curIns=i;
|
||||
ins=e->song.ins[curIns];
|
||||
wavePreviewInit=true;
|
||||
updateFMPreview=true;
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("Name");
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
ImGui::PushID(2+curIns);
|
||||
if (ImGui::InputText("##Name",&ins->name)) {
|
||||
MARK_MODIFIED;
|
||||
}
|
||||
ImGui::PopID();
|
||||
|
||||
ImGui::TableNextRow();
|
||||
ImGui::TableNextColumn();
|
||||
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##IELoad")) {
|
||||
doAction(GUI_ACTION_INS_LIST_OPEN_REPLACE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Open");
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button(ICON_FA_FLOPPY_O "##IESave")) {
|
||||
doAction(GUI_ACTION_INS_LIST_SAVE);
|
||||
}
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("Save");
|
||||
}
|
||||
if (ImGui::BeginPopupContextItem("InsSaveFormats",ImGuiMouseButton_Right)) {
|
||||
if (ImGui::MenuItem("save as .dmp...")) {
|
||||
doAction(GUI_ACTION_INS_LIST_SAVE_DMP);
|
||||
}
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("Type");
|
||||
|
||||
ImGui::TableNextColumn();
|
||||
int insType=ins->type;
|
||||
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x);
|
||||
bool warnType=true;
|
||||
for (DivInstrumentType i: e->getPossibleInsTypes()) {
|
||||
if (i==insType) {
|
||||
warnType=false;
|
||||
}
|
||||
}
|
||||
|
||||
pushWarningColor(warnType,warnType && failedNoteOn);
|
||||
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++) {
|
||||
insTypeList.push_back((DivInstrumentType)i);
|
||||
}
|
||||
} else {
|
||||
insTypeList=e->getPossibleInsTypes();
|
||||
}
|
||||
for (DivInstrumentType i: insTypeList) {
|
||||
if (ImGui::Selectable(insTypes[i][0],insType==i)) {
|
||||
ins->type=i;
|
||||
|
||||
// reset macro zoom
|
||||
ins->std.volMacro.vZoom=-1;
|
||||
ins->std.dutyMacro.vZoom=-1;
|
||||
ins->std.waveMacro.vZoom=-1;
|
||||
ins->std.ex1Macro.vZoom=-1;
|
||||
ins->std.ex2Macro.vZoom=-1;
|
||||
ins->std.ex3Macro.vZoom=-1;
|
||||
ins->std.ex4Macro.vZoom=-1;
|
||||
ins->std.ex5Macro.vZoom=-1;
|
||||
ins->std.ex6Macro.vZoom=-1;
|
||||
ins->std.ex7Macro.vZoom=-1;
|
||||
ins->std.ex8Macro.vZoom=-1;
|
||||
ins->std.panLMacro.vZoom=-1;
|
||||
ins->std.panRMacro.vZoom=-1;
|
||||
ins->std.phaseResetMacro.vZoom=-1;
|
||||
ins->std.algMacro.vZoom=-1;
|
||||
ins->std.fbMacro.vZoom=-1;
|
||||
ins->std.fmsMacro.vZoom=-1;
|
||||
ins->std.amsMacro.vZoom=-1;
|
||||
for (int j=0; j<4; j++) {
|
||||
ins->std.opMacros[j].amMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].arMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].drMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].multMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].rrMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].slMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].tlMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dt2Macro.vZoom=-1;
|
||||
ins->std.opMacros[j].rsMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dtMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].d2rMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].ssgMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].damMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].dvbMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].egtMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].kslMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].susMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].vibMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].wsMacro.vZoom=-1;
|
||||
ins->std.opMacros[j].ksrMacro.vZoom=-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGui::EndCombo();
|
||||
} else if (warnType) {
|
||||
if (ImGui::IsItemHovered()) {
|
||||
ImGui::SetTooltip("none of the currently present chips are able to play this instrument type!");
|
||||
}
|
||||
}
|
||||
popWarningColor();
|
||||
|
||||
ImGui::EndTable();
|
||||
}
|
||||
|
||||
|
||||
if (ImGui::BeginTabBar("insEditTab")) {
|
||||
std::vector<FurnaceGUIMacroDesc> macroList;
|
||||
if (ins->type==DIV_INS_FM || ins->type==DIV_INS_OPL || ins->type==DIV_INS_OPLL || ins->type==DIV_INS_OPZ || ins->type==DIV_INS_OPL_DRUMS || ins->type==DIV_INS_OPM || ins->type==DIV_INS_ESFM) {
|
||||
char label[32];
|
||||
int opCount=4;
|
||||
if (ins->type==DIV_INS_OPLL) opCount=2;
|
||||
if (ins->type==DIV_INS_OPL) opCount=(ins->fm.ops==4)?4:2;
|
||||
|
||||
insTabFM(ins);
|
||||
|
||||
if (ins->type!=DIV_INS_ESFM) {
|
||||
if (ImGui::BeginTabItem("FM Macros")) {
|
||||
if (ins->type==DIV_INS_OPLL) {
|
||||
|
|
Loading…
Reference in a new issue