prepare for ins/wave loading/saving

This commit is contained in:
tildearrow 2022-01-19 03:15:20 -05:00
parent 464714df00
commit a989fa8920
2 changed files with 36 additions and 0 deletions

View File

@ -536,6 +536,14 @@ void FurnaceGUI::drawInsList() {
}
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##InsLoad")) {
openFileDialog(GUI_FILE_INS_OPEN);
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FLOPPY_O "##InsSave")) {
if (curIns>=0 && curIns<(int)e->song.ins.size()) openFileDialog(GUI_FILE_INS_SAVE);
}
ImGui::SameLine();
if (ImGui::ArrowButton("InsUp",ImGuiDir_Up)) {
if (e->moveInsUp(curIns)) curIns--;
}
@ -1104,6 +1112,14 @@ void FurnaceGUI::drawWaveList() {
}
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FOLDER_OPEN "##WaveLoad")) {
openFileDialog(GUI_FILE_WAVE_OPEN);
}
ImGui::SameLine();
if (ImGui::Button(ICON_FA_FLOPPY_O "##WaveSave")) {
if (curWave>=0 && curWave<(int)e->song.wave.size()) openFileDialog(GUI_FILE_WAVE_SAVE);
}
ImGui::SameLine();
if (ImGui::ArrowButton("WaveUp",ImGuiDir_Up)) {
if (e->moveWaveUp(curWave)) curWave--;
}
@ -2837,6 +2853,18 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
case GUI_FILE_SAVE:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Save File","Furnace song{.fur},DefleMask module{.dmf}",workingDir);
break;
case GUI_FILE_INS_OPEN:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Load Instrument","Furnace instrument{.fui},DefleMask preset{.dmp},.*",workingDir);
break;
case GUI_FILE_INS_SAVE:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Save Instrument","Furnace instrument{.fui}",workingDir);
break;
case GUI_FILE_WAVE_OPEN:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Load Wavetable","Furnace wavetable{.fuw},DefleMask wavetable{.dmw},.*",workingDir);
break;
case GUI_FILE_WAVE_SAVE:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Save Wavetable","Furnace wavetable{.fuw}",workingDir);
break;
case GUI_FILE_SAMPLE_OPEN:
ImGuiFileDialog::Instance()->OpenModal("FileDialog","Load Sample","Wave file{.wav},.*",workingDir);
break;
@ -3402,6 +3430,10 @@ bool FurnaceGUI::loop() {
case GUI_FILE_EXPORT_AUDIO_PER_CHANNEL:
exportAudio(copyOfName,DIV_EXPORT_MODE_MANY_CHAN);
break;
case GUI_FILE_INS_OPEN:
case GUI_FILE_INS_SAVE:
case GUI_FILE_WAVE_OPEN:
case GUI_FILE_WAVE_SAVE:
case GUI_FILE_EXPORT_VGM:
case GUI_FILE_EXPORT_ROM:
showError("Coming soon!");

View File

@ -79,6 +79,10 @@ enum FurnaceGUIWindows {
enum FurnaceGUIFileDialogs {
GUI_FILE_OPEN,
GUI_FILE_SAVE,
GUI_FILE_INS_OPEN,
GUI_FILE_INS_SAVE,
GUI_FILE_WAVE_OPEN,
GUI_FILE_WAVE_SAVE,
GUI_FILE_SAMPLE_OPEN,
GUI_FILE_SAMPLE_SAVE,
GUI_FILE_EXPORT_AUDIO_ONE,