GUI: add "blank new instrument" option

This commit is contained in:
tildearrow 2022-06-03 18:30:40 -05:00
parent 1f1d2c85bd
commit d15c276f74
4 changed files with 19 additions and 4 deletions

View File

@ -1,11 +1,13 @@
# to-do for 0.6pre1
- MSM6258 pitch and clock select
- Game Boy envelope macro/sequence
- rewrite the system name detection function anyway
- volume commands should work on Game Boy
- add another FM editor layout
- if macros have release, note off should release them
- add ability to move selection by dragging
- find and replace
- (maybe) add default patch selection
# to-do for 0.6pre2 (as this requires new data structures)
- Game Boy envelope macro/sequence
- volume commands should work on Game Boy

View File

@ -536,6 +536,9 @@ void FurnaceGUI::doAction(int what) {
if (curIns==-1) {
showError("too many instruments!");
} else {
if (settings.blankIns) {
memset(&e->song.ins[curIns]->fm,0,sizeof(DivInstrumentFM));
}
wantScrollList=true;
MARK_MODIFIED;
wavePreviewInit=true;

View File

@ -951,6 +951,7 @@ class FurnaceGUI {
int effectCellSpacing;
int effectValCellSpacing;
int doubleClickColumn;
int blankIns;
unsigned int maxUndoSteps;
String mainFontPath;
String patFontPath;
@ -1051,6 +1052,7 @@ class FurnaceGUI {
effectCellSpacing(0),
effectValCellSpacing(0),
doubleClickColumn(1),
blankIns(0),
maxUndoSteps(100),
mainFontPath(""),
patFontPath(""),

View File

@ -465,6 +465,11 @@ void FurnaceGUI::drawSettings() {
ImGui::SetTooltip("saves power by lowering the frame rate to 2fps when idle.\nmay cause issues under Mesa drivers!");
}
bool blankInsB=settings.blankIns;
if (ImGui::Checkbox("New instruments are blank",&blankInsB)) {
settings.blankIns=blankInsB;
}
ImGui::Text("Note preview behavior:");
if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) {
settings.notePreviewBehavior=0;
@ -2029,7 +2034,8 @@ void FurnaceGUI::syncSettings() {
settings.insCellSpacing=e->getConfInt("insCellSpacing",0);
settings.volCellSpacing=e->getConfInt("volCellSpacing",0);
settings.effectCellSpacing=e->getConfInt("effectCellSpacing",0);
settings.doubleClickColumn=e->getConfInt("doubleClickColumn",0);
settings.doubleClickColumn=e->getConfInt("doubleClickColumn",1);
settings.blankIns=e->getConfInt("blankIns",0);
clampSetting(settings.mainFontSize,2,96);
clampSetting(settings.patFontSize,2,96);
@ -2114,6 +2120,7 @@ void FurnaceGUI::syncSettings() {
clampSetting(settings.effectCellSpacing,0,32);
clampSetting(settings.effectValCellSpacing,0,32);
clampSetting(settings.doubleClickColumn,0,1);
clampSetting(settings.blankIns,0,1);
settings.initialSys=e->decodeSysDesc(e->getConfString("initialSys",""));
if (settings.initialSys.size()<4) {
@ -2247,6 +2254,7 @@ void FurnaceGUI::commitSettings() {
e->setConf("effectCellSpacing",settings.effectCellSpacing);
e->setConf("effectValCellSpacing",settings.effectValCellSpacing);
e->setConf("doubleClickColumn",settings.doubleClickColumn);
e->setConf("blankIns",settings.blankIns);
// colors
for (int i=0; i<GUI_COLOR_MAX; i++) {