Merge branch 'master' into spectrum

This commit is contained in:
Eknous-P 2025-11-01 00:13:38 +04:00
commit a78116ba02
64 changed files with 2700 additions and 640 deletions

View file

@ -573,6 +573,7 @@ enum FurnaceGUIWindows {
GUI_WINDOW_MEMORY,
GUI_WINDOW_CS_PLAYER,
GUI_WINDOW_USER_PRESETS,
GUI_WINDOW_REF_PLAYER,
GUI_WINDOW_SPOILER
};
@ -653,6 +654,7 @@ enum FurnaceGUIFileDialogs {
GUI_FILE_TG100_ROM_OPEN,
GUI_FILE_MU5_ROM_OPEN,
GUI_FILE_CMDSTREAM_OPEN,
GUI_FILE_MUSIC_OPEN,
GUI_FILE_TEST_OPEN,
GUI_FILE_TEST_OPEN_MULTI,
@ -779,6 +781,7 @@ enum FurnaceGUIActions {
GUI_ACTION_WINDOW_MEMORY,
GUI_ACTION_WINDOW_CS_PLAYER,
GUI_ACTION_WINDOW_USER_PRESETS,
GUI_ACTION_WINDOW_REF_PLAYER,
GUI_ACTION_COLLAPSE_WINDOW,
GUI_ACTION_CLOSE_WINDOW,
@ -1696,7 +1699,7 @@ class FurnaceGUI {
String workingDirSong, workingDirIns, workingDirWave, workingDirSample, workingDirAudioExport;
String workingDirVGMExport, workingDirROMExport;
String workingDirFont, workingDirColors, workingDirKeybinds;
String workingDirLayout, workingDirROM, workingDirTest;
String workingDirLayout, workingDirROM, workingDirMusic, workingDirTest;
String workingDirConfig;
String mmlString[32];
String mmlStringW, grooveString, grooveListString, mmlStringModTable;
@ -1718,7 +1721,9 @@ class FurnaceGUI {
bool vgmExportDirectStream, displayInsTypeList, displayWaveSizeList;
bool portrait, injectBackUp, mobileMenuOpen, warnColorPushed;
bool wantCaptureKeyboard, oldWantCaptureKeyboard, displayMacroMenu;
bool displayNew, displayExport, displayPalette, fullScreen, preserveChanPos, sysDupCloneChannels, sysDupEnd, noteInputPoly, notifyWaveChange, notifySampleChange;
bool displayNew, displayExport, displayPalette, fullScreen, preserveChanPos, sysDupCloneChannels, sysDupEnd, noteInputPoly, noteInputChord;
bool notifyWaveChange, notifySampleChange;
bool recalcTimestamps;
bool wantScrollListIns, wantScrollListWave, wantScrollListSample;
bool displayPendingIns, pendingInsSingle, displayPendingRawSample, snesFilterHex, modTableHex, displayEditString;
bool displayPendingSamples, replacePendingSample;
@ -1731,7 +1736,8 @@ class FurnaceGUI {
bool safeMode;
bool midiWakeUp;
bool makeDrumkitMode;
bool audioEngineChanged, settingsChanged, debugFFT;
bool filePlayerSync;
bool audioEngineChanged, settingsChanged, debugFFT, debugRowTimestamps;
bool willExport[DIV_MAX_CHIPS];
int vgmExportVersion;
int vgmExportTrailingTicks;
@ -1740,6 +1746,7 @@ class FurnaceGUI {
int drawHalt;
int macroPointSize;
int waveEditStyle;
int chordInputOffset;
int displayInsTypeListMakeInsSample;
int makeDrumkitOctave;
int mobileEditPage;
@ -1826,13 +1833,8 @@ class FurnaceGUI {
char emptyLabel[32];
char emptyLabel2[32];
std::vector<int> songOrdersLengths; // lengths of all orders (for drawing song export progress)
int songLength; // length of all the song in rows
int songLoopedSectionLength; // length of looped part of the song
int songFadeoutSectionLength; // length of fading part of the song
bool songHasSongEndCommand; // song has "Song end" command (FFxx)
int lengthOfOneFile; // length of one rendering pass. song length times num of loops + fadeout
int totalLength; // total length of render (lengthOfOneFile times num of files for per-channel export)
double songLength; // length of the song in seconds
double totalLength; // total length of render (songLength times num of files for per-channel export)
float curProgress;
int totalFiles;
@ -2385,7 +2387,7 @@ class FurnaceGUI {
FixedQueue<bool*,64> pendingLayoutImportReopen;
int curIns, curWave, curSample, curOctave, curOrder, playOrder, prevIns, oldRow, editStep, editStepCoarse, soloChan, orderEditMode, orderCursor;
int loopOrder, loopRow, loopEnd, isClipping, newSongCategory, latchTarget, undoOrder;
int isClipping, newSongCategory, latchTarget, undoOrder;
int wheelX, wheelY, dragSourceX, dragSourceXFine, dragSourceY, dragSourceOrder, dragDestinationX, dragDestinationXFine, dragDestinationY, dragDestinationOrder, oldBeat, oldBar;
int curGroove, exitDisabledTimer;
int curPaletteChoice, curPaletteType;
@ -2402,7 +2404,7 @@ class FurnaceGUI {
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
bool pianoOpen, notesOpen, tunerOpen, spectrumOpen, channelsOpen, regViewOpen, logOpen, effectListOpen, chanOscOpen;
bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen;
bool groovesOpen, xyOscOpen, memoryOpen, csPlayerOpen, cvOpen, userPresetsOpen;
bool groovesOpen, xyOscOpen, memoryOpen, csPlayerOpen, cvOpen, userPresetsOpen, refPlayerOpen;
bool cvNotSerious;
@ -2631,7 +2633,7 @@ class FurnaceGUI {
int resizeSize, silenceSize;
double resampleTarget;
int resampleStrat;
float amplifyVol;
float amplifyVol, amplifyOff;
int sampleSelStart, sampleSelEnd;
bool sampleInfo, sampleCompatRate;
bool sampleDragActive, sampleDragMode, sampleDrag16, sampleZoomAuto;
@ -2776,6 +2778,11 @@ class FurnaceGUI {
float keyHit1[DIV_MAX_CHANS];
int lastIns[DIV_MAX_CHANS];
// file player temp variables
String fpCueInput;
bool fpCueInputFailed;
String fpCueInputFailReason;
// log window
bool followLog;
@ -3036,6 +3043,7 @@ class FurnaceGUI {
void drawTutorial();
void drawXYOsc();
void drawUserPresets();
void drawRefPlayer();
float drawSystemChannelInfo(const DivSysDef* whichDef, int keyHitOffset=-1, float width=-1.0f);
void drawSystemChannelInfoText(const DivSysDef* whichDef);
@ -3118,7 +3126,7 @@ class FurnaceGUI {
void doDrag(bool copy=false);
void editOptions(bool topMenu);
DivSystem systemPicker(bool fullWidth);
void noteInput(int num, int key, int vol=-1);
void noteInput(int num, int key, int vol=-1, int chanOff=0);
void valueInput(int num, bool direct=false, int target=-1);
void orderInput(int num);