Merge branch 'master' into feature/esfm

This commit is contained in:
Kagamiin~ 2023-12-15 09:15:05 -03:00
commit f42332f2c0
179 changed files with 14990 additions and 745 deletions

View file

@ -466,6 +466,7 @@ enum FurnaceGUIFileDialogs {
GUI_FILE_EXPORT_ZSM,
GUI_FILE_EXPORT_CMDSTREAM,
GUI_FILE_EXPORT_CMDSTREAM_BINARY,
GUI_FILE_EXPORT_TEXT,
GUI_FILE_EXPORT_ROM,
GUI_FILE_LOAD_MAIN_FONT,
GUI_FILE_LOAD_HEAD_FONT,
@ -723,6 +724,7 @@ enum FurnaceGUIActions {
GUI_ACTION_SAMPLE_INVERT,
GUI_ACTION_SAMPLE_SIGN,
GUI_ACTION_SAMPLE_FILTER,
GUI_ACTION_SAMPLE_CROSSFADE_LOOP,
GUI_ACTION_SAMPLE_PREVIEW,
GUI_ACTION_SAMPLE_STOP_PREVIEW,
GUI_ACTION_SAMPLE_ZOOM_IN,
@ -1274,6 +1276,20 @@ struct FurnaceGUIQueryResult {
}
};
struct FurnaceGUIWaveSizeEntry {
short width, height;
const char* sys;
FurnaceGUIWaveSizeEntry(short w, short h, const char* s):
width(w),
height(h),
sys(s) {}
FurnaceGUIWaveSizeEntry():
width(-1),
height(-1),
sys(NULL) {}
};
class FurnaceGUITexture {
};
@ -1364,11 +1380,12 @@ class FurnaceGUI {
std::vector<FurnaceGUISysDef> newSongSearchResults;
FixedQueue<String,32> recentFile;
std::vector<DivInstrumentType> makeInsTypeList;
std::vector<FurnaceGUIWaveSizeEntry> waveSizeList;
std::vector<String> availRenderDrivers;
std::vector<String> availAudioDrivers;
bool quit, warnQuit, willCommit, edit, editClone, isPatUnique, modified, displayError, displayExporting, vgmExportLoop, zsmExportLoop, zsmExportOptimize, vgmExportPatternHints;
bool vgmExportDirectStream, displayInsTypeList;
bool vgmExportDirectStream, displayInsTypeList, displayWaveSizeList;
bool portrait, injectBackUp, mobileMenuOpen, warnColorPushed;
bool wantCaptureKeyboard, oldWantCaptureKeyboard, displayMacroMenu;
bool displayNew, fullScreen, preserveChanPos, wantScrollList, noteInputPoly, notifyWaveChange;
@ -1478,6 +1495,8 @@ class FurnaceGUI {
int c64Core;
int pokeyCore;
int opnCore;
int opl2Core;
int opl3Core;
int arcadeCoreRender;
int ym2612CoreRender;
int snCoreRender;
@ -1486,6 +1505,8 @@ class FurnaceGUI {
int c64CoreRender;
int pokeyCoreRender;
int opnCoreRender;
int opl2CoreRender;
int opl3CoreRender;
int pcSpeakerOutMethod;
String yrw801Path;
String tg100Path;
@ -1634,6 +1655,7 @@ class FurnaceGUI {
int fontBitmap;
int fontAutoHint;
int fontAntiAlias;
int selectAssetOnLoad;
unsigned int maxUndoSteps;
String mainFontPath;
String headFontPath;
@ -1671,6 +1693,8 @@ class FurnaceGUI {
c64Core(0),
pokeyCore(1),
opnCore(1),
opl2Core(0),
opl3Core(0),
arcadeCoreRender(1),
ym2612CoreRender(0),
snCoreRender(0),
@ -1679,6 +1703,8 @@ class FurnaceGUI {
c64CoreRender(1),
pokeyCoreRender(1),
opnCoreRender(1),
opl2CoreRender(0),
opl3CoreRender(0),
pcSpeakerOutMethod(0),
yrw801Path(""),
tg100Path(""),
@ -1824,6 +1850,7 @@ class FurnaceGUI {
fontBitmap(0),
fontAutoHint(1),
fontAntiAlias(1),
selectAssetOnLoad(1),
maxUndoSteps(100),
mainFontPath(""),
headFontPath(""),
@ -2097,10 +2124,11 @@ class FurnaceGUI {
ImVec2 sampleDragAreaSize;
unsigned int sampleDragLen;
float sampleFilterL, sampleFilterB, sampleFilterH, sampleFilterRes, sampleFilterCutStart, sampleFilterCutEnd;
int sampleCrossFadeLoopLength, sampleCrossFadeLoopLaw;
unsigned char sampleFilterPower;
short* sampleClipboard;
size_t sampleClipboardLen;
bool openSampleResizeOpt, openSampleResampleOpt, openSampleAmplifyOpt, openSampleSilenceOpt, openSampleFilterOpt;
bool openSampleResizeOpt, openSampleResampleOpt, openSampleAmplifyOpt, openSampleSilenceOpt, openSampleFilterOpt, openSampleCrossFadeOpt;
// mixer
// 0xxx: output
@ -2124,7 +2152,7 @@ class FurnaceGUI {
// per-channel oscilloscope
int chanOscCols, chanOscAutoColsType, chanOscColorX, chanOscColorY;
float chanOscWindowSize, chanOscTextX, chanOscTextY, chanOscAmplify;
bool chanOscWaveCorr, chanOscOptions, updateChanOscGradTex, chanOscUseGrad, chanOscNormalize;
bool chanOscWaveCorr, chanOscOptions, updateChanOscGradTex, chanOscUseGrad, chanOscNormalize, chanOscRandomPhase;
String chanOscTextFormat;
ImVec4 chanOscColor, chanOscTextColor;
Gradient2D chanOscGrad;
@ -2145,7 +2173,7 @@ class FurnaceGUI {
double inBufPosFrac;
double waveLen;
int waveLenBottom, waveLenTop, relatedCh;
float pitch, windowSize;
float pitch, windowSize, phaseOff;
unsigned short needle;
bool ready, loudEnough, waveCorr;
fftw_plan plan;
@ -2163,6 +2191,7 @@ class FurnaceGUI {
relatedCh(0),
pitch(0.0f),
windowSize(1.0f),
phaseOff(0.0f),
needle(0),
ready(false),
loudEnough(false),
@ -2421,6 +2450,8 @@ class FurnaceGUI {
void doInsert();
void doTranspose(int amount, OperationMask& mask);
String doCopy(bool cut, bool writeClipboard, const SelectionPoint& sStart, const SelectionPoint& sEnd);
void doPasteFurnace(PasteMode mode, int arg, bool readClipboard, String clipb, std::vector<String> data, int startOff, bool invalidData);
void doPasteMPT(PasteMode mode, int arg, bool readClipboard, String clipb, std::vector<String> data, int mptFormat);
void doPaste(PasteMode mode=GUI_PASTE_MODE_NORMAL, int arg=0, bool readClipboard=true, String clipb="");
void doChangeIns(int ins);
void doInterpolate();