GUI: add "blank new instrument" option
This commit is contained in:
parent
1f1d2c85bd
commit
d15c276f74
8
TODO.md
8
TODO.md
|
@ -1,11 +1,13 @@
|
||||||
# to-do for 0.6pre1
|
# to-do for 0.6pre1
|
||||||
|
|
||||||
- MSM6258 pitch and clock select
|
- MSM6258 pitch and clock select
|
||||||
- Game Boy envelope macro/sequence
|
|
||||||
- rewrite the system name detection function anyway
|
- rewrite the system name detection function anyway
|
||||||
- volume commands should work on Game Boy
|
|
||||||
- add another FM editor layout
|
- add another FM editor layout
|
||||||
- if macros have release, note off should release them
|
- if macros have release, note off should release them
|
||||||
- add ability to move selection by dragging
|
- add ability to move selection by dragging
|
||||||
- find and replace
|
- 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
|
|
@ -536,6 +536,9 @@ void FurnaceGUI::doAction(int what) {
|
||||||
if (curIns==-1) {
|
if (curIns==-1) {
|
||||||
showError("too many instruments!");
|
showError("too many instruments!");
|
||||||
} else {
|
} else {
|
||||||
|
if (settings.blankIns) {
|
||||||
|
memset(&e->song.ins[curIns]->fm,0,sizeof(DivInstrumentFM));
|
||||||
|
}
|
||||||
wantScrollList=true;
|
wantScrollList=true;
|
||||||
MARK_MODIFIED;
|
MARK_MODIFIED;
|
||||||
wavePreviewInit=true;
|
wavePreviewInit=true;
|
||||||
|
|
|
@ -951,6 +951,7 @@ class FurnaceGUI {
|
||||||
int effectCellSpacing;
|
int effectCellSpacing;
|
||||||
int effectValCellSpacing;
|
int effectValCellSpacing;
|
||||||
int doubleClickColumn;
|
int doubleClickColumn;
|
||||||
|
int blankIns;
|
||||||
unsigned int maxUndoSteps;
|
unsigned int maxUndoSteps;
|
||||||
String mainFontPath;
|
String mainFontPath;
|
||||||
String patFontPath;
|
String patFontPath;
|
||||||
|
@ -1051,6 +1052,7 @@ class FurnaceGUI {
|
||||||
effectCellSpacing(0),
|
effectCellSpacing(0),
|
||||||
effectValCellSpacing(0),
|
effectValCellSpacing(0),
|
||||||
doubleClickColumn(1),
|
doubleClickColumn(1),
|
||||||
|
blankIns(0),
|
||||||
maxUndoSteps(100),
|
maxUndoSteps(100),
|
||||||
mainFontPath(""),
|
mainFontPath(""),
|
||||||
patFontPath(""),
|
patFontPath(""),
|
||||||
|
|
|
@ -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!");
|
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:");
|
ImGui::Text("Note preview behavior:");
|
||||||
if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) {
|
if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) {
|
||||||
settings.notePreviewBehavior=0;
|
settings.notePreviewBehavior=0;
|
||||||
|
@ -2029,7 +2034,8 @@ void FurnaceGUI::syncSettings() {
|
||||||
settings.insCellSpacing=e->getConfInt("insCellSpacing",0);
|
settings.insCellSpacing=e->getConfInt("insCellSpacing",0);
|
||||||
settings.volCellSpacing=e->getConfInt("volCellSpacing",0);
|
settings.volCellSpacing=e->getConfInt("volCellSpacing",0);
|
||||||
settings.effectCellSpacing=e->getConfInt("effectCellSpacing",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.mainFontSize,2,96);
|
||||||
clampSetting(settings.patFontSize,2,96);
|
clampSetting(settings.patFontSize,2,96);
|
||||||
|
@ -2114,6 +2120,7 @@ void FurnaceGUI::syncSettings() {
|
||||||
clampSetting(settings.effectCellSpacing,0,32);
|
clampSetting(settings.effectCellSpacing,0,32);
|
||||||
clampSetting(settings.effectValCellSpacing,0,32);
|
clampSetting(settings.effectValCellSpacing,0,32);
|
||||||
clampSetting(settings.doubleClickColumn,0,1);
|
clampSetting(settings.doubleClickColumn,0,1);
|
||||||
|
clampSetting(settings.blankIns,0,1);
|
||||||
|
|
||||||
settings.initialSys=e->decodeSysDesc(e->getConfString("initialSys",""));
|
settings.initialSys=e->decodeSysDesc(e->getConfString("initialSys",""));
|
||||||
if (settings.initialSys.size()<4) {
|
if (settings.initialSys.size()<4) {
|
||||||
|
@ -2247,6 +2254,7 @@ void FurnaceGUI::commitSettings() {
|
||||||
e->setConf("effectCellSpacing",settings.effectCellSpacing);
|
e->setConf("effectCellSpacing",settings.effectCellSpacing);
|
||||||
e->setConf("effectValCellSpacing",settings.effectValCellSpacing);
|
e->setConf("effectValCellSpacing",settings.effectValCellSpacing);
|
||||||
e->setConf("doubleClickColumn",settings.doubleClickColumn);
|
e->setConf("doubleClickColumn",settings.doubleClickColumn);
|
||||||
|
e->setConf("blankIns",settings.blankIns);
|
||||||
|
|
||||||
// colors
|
// colors
|
||||||
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
||||||
|
|
Loading…
Reference in a new issue