diff --git a/src/gui/doAction.cpp b/src/gui/doAction.cpp index 645c684d2..c04f14118 100644 --- a/src/gui/doAction.cpp +++ b/src/gui/doAction.cpp @@ -66,7 +66,7 @@ void FurnaceGUI::doAction(int what) { openFileDialog(GUI_FILE_SAVE); break; case GUI_ACTION_EXPORT: - curExportType=-1; + curExportType=GUI_EXPORT_NONE; displayExport=true; break; case GUI_ACTION_UNDO: diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 5a7d77fca..e74d33807 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -4139,7 +4139,42 @@ bool FurnaceGUI::loop() { ImGui::EndMenu(); } } else if (settings.exportOptionsLayout==2) { - + if (ImGui::MenuItem("export audio...")) { + curExportType=GUI_EXPORT_AUDIO; + displayExport=true; + } + if (ImGui::MenuItem("export VGM...")) { + curExportType=GUI_EXPORT_VGM; + displayExport=true; + } + int numZSMCompat=0; + for (int i=0; isong.systemLen; i++) { + if ((e->song.system[i]==DIV_SYSTEM_VERA) || (e->song.system[i]==DIV_SYSTEM_YM2151)) numZSMCompat++; + } + if (numZSMCompat>0) { + if (ImGui::MenuItem("export ZSM...")) { + curExportType=GUI_EXPORT_ZSM; + displayExport=true; + } + } + int numAmiga=0; + for (int i=0; isong.systemLen; i++) { + if (e->song.system[i]==DIV_SYSTEM_AMIGA) numAmiga++; + } + if (numAmiga && settings.iCannotWait) { + if (ImGui::MenuItem("export Amiga validation data...")) { + curExportType=GUI_EXPORT_AMIGA_VAL; + displayExport=true; + } + } + if (ImGui::MenuItem("export text...")) { + curExportType=GUI_EXPORT_TEXT; + displayExport=true; + } + if (ImGui::MenuItem("export command stream...")) { + curExportType=GUI_EXPORT_CMD_STREAM; + displayExport=true; + } } else { if (ImGui::MenuItem("export...",BIND_FOR(GUI_ACTION_EXPORT))) { displayExport=true; @@ -7597,7 +7632,7 @@ FurnaceGUI::FurnaceGUI(): curTutorial(-1), curTutorialStep(0), audioExportType(0), - curExportType(-1) { + curExportType(GUI_EXPORT_NONE) { // value keys valueKeys[SDLK_0]=0; valueKeys[SDLK_1]=1; diff --git a/src/gui/gui.h b/src/gui/gui.h index 7e1c26379..f1aa1915e 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -549,6 +549,17 @@ enum FurnaceGUIWarnings { GUI_WARN_GENERIC }; +enum FurnaceGUIExportTypes { + GUI_EXPORT_NONE=-1, + + GUI_EXPORT_AUDIO=0, + GUI_EXPORT_VGM, + GUI_EXPORT_ZSM, + GUI_EXPORT_CMD_STREAM, + GUI_EXPORT_AMIGA_VAL, + GUI_EXPORT_TEXT +}; + enum FurnaceGUIFMAlgs { FM_ALGS_4OP, FM_ALGS_2OP_OPL, @@ -2336,7 +2347,7 @@ class FurnaceGUI { // export options int audioExportType; - int curExportType; + FurnaceGUIExportTypes curExportType; void drawExportAudio(); void drawExportVGM();