Merge branch 'master' into ZSMv1
This commit is contained in:
commit
b14bf9ea33
202 changed files with 10451 additions and 1470 deletions
|
|
@ -47,8 +47,6 @@
|
|||
#define MARK_MODIFIED modified=true;
|
||||
#define WAKE_UP drawHalt=16;
|
||||
|
||||
#define TOGGLE_COLOR(x) ((x)?uiColors[GUI_COLOR_TOGGLE_ON]:uiColors[GUI_COLOR_TOGGLE_OFF])
|
||||
|
||||
#define BIND_FOR(x) getKeyName(actionKeys[x],true).c_str()
|
||||
|
||||
// TODO:
|
||||
|
|
@ -261,16 +259,32 @@ enum FurnaceGUIWindows {
|
|||
GUI_WINDOW_SPOILER
|
||||
};
|
||||
|
||||
enum FurnaceGUIMobileScenes {
|
||||
GUI_SCENE_PATTERN,
|
||||
GUI_SCENE_ORDERS,
|
||||
GUI_SCENE_INSTRUMENT,
|
||||
GUI_SCENE_WAVETABLE,
|
||||
GUI_SCENE_SAMPLE,
|
||||
GUI_SCENE_SONG,
|
||||
GUI_SCENE_CHANNELS,
|
||||
GUI_SCENE_CHIPS,
|
||||
GUI_SCENE_OTHER,
|
||||
};
|
||||
|
||||
enum FurnaceGUIFileDialogs {
|
||||
GUI_FILE_OPEN,
|
||||
GUI_FILE_SAVE,
|
||||
GUI_FILE_SAVE_DMF,
|
||||
GUI_FILE_SAVE_DMF_LEGACY,
|
||||
GUI_FILE_INS_OPEN,
|
||||
GUI_FILE_INS_OPEN_REPLACE,
|
||||
GUI_FILE_INS_SAVE,
|
||||
GUI_FILE_INS_SAVE_DMP,
|
||||
GUI_FILE_WAVE_OPEN,
|
||||
GUI_FILE_WAVE_OPEN_REPLACE,
|
||||
GUI_FILE_WAVE_SAVE,
|
||||
GUI_FILE_WAVE_SAVE_DMW,
|
||||
GUI_FILE_WAVE_SAVE_RAW,
|
||||
GUI_FILE_SAMPLE_OPEN,
|
||||
GUI_FILE_SAMPLE_OPEN_RAW,
|
||||
GUI_FILE_SAMPLE_OPEN_REPLACE,
|
||||
|
|
@ -457,6 +471,7 @@ enum FurnaceGUIActions {
|
|||
GUI_ACTION_INS_LIST_OPEN,
|
||||
GUI_ACTION_INS_LIST_OPEN_REPLACE,
|
||||
GUI_ACTION_INS_LIST_SAVE,
|
||||
GUI_ACTION_INS_LIST_SAVE_DMP,
|
||||
GUI_ACTION_INS_LIST_MOVE_UP,
|
||||
GUI_ACTION_INS_LIST_MOVE_DOWN,
|
||||
GUI_ACTION_INS_LIST_DELETE,
|
||||
|
|
@ -471,6 +486,8 @@ enum FurnaceGUIActions {
|
|||
GUI_ACTION_WAVE_LIST_OPEN,
|
||||
GUI_ACTION_WAVE_LIST_OPEN_REPLACE,
|
||||
GUI_ACTION_WAVE_LIST_SAVE,
|
||||
GUI_ACTION_WAVE_LIST_SAVE_DMW,
|
||||
GUI_ACTION_WAVE_LIST_SAVE_RAW,
|
||||
GUI_ACTION_WAVE_LIST_MOVE_UP,
|
||||
GUI_ACTION_WAVE_LIST_MOVE_DOWN,
|
||||
GUI_ACTION_WAVE_LIST_DELETE,
|
||||
|
|
@ -527,6 +544,7 @@ enum FurnaceGUIActions {
|
|||
GUI_ACTION_SAMPLE_ZOOM_AUTO,
|
||||
GUI_ACTION_SAMPLE_MAKE_INS,
|
||||
GUI_ACTION_SAMPLE_SET_LOOP,
|
||||
GUI_ACTION_SAMPLE_CREATE_WAVE,
|
||||
GUI_ACTION_SAMPLE_MAX,
|
||||
|
||||
GUI_ACTION_ORDERS_MIN,
|
||||
|
|
@ -873,9 +891,10 @@ struct FurnaceGUIMacroDesc {
|
|||
ImVec4 color;
|
||||
unsigned int bitOffset;
|
||||
bool isBitfield, blockMode, bit30;
|
||||
String (*hoverFunc)(int,float);
|
||||
String (*hoverFunc)(int,float,void*);
|
||||
void* hoverFuncUser;
|
||||
|
||||
FurnaceGUIMacroDesc(const char* name, DivInstrumentMacro* m, int macroMin, int macroMax, float macroHeight, ImVec4 col=ImVec4(1.0f,1.0f,1.0f,1.0f), bool block=false, const char* mName=NULL, String (*hf)(int,float)=NULL, bool bitfield=false, const char** bfVal=NULL, unsigned int bitOff=0, bool bit30Special=false):
|
||||
FurnaceGUIMacroDesc(const char* name, DivInstrumentMacro* m, int macroMin, int macroMax, float macroHeight, ImVec4 col=ImVec4(1.0f,1.0f,1.0f,1.0f), bool block=false, const char* mName=NULL, String (*hf)(int,float,void*)=NULL, bool bitfield=false, const char** bfVal=NULL, unsigned int bitOff=0, bool bit30Special=false, void* hfu=NULL):
|
||||
macro(m),
|
||||
height(macroHeight),
|
||||
displayName(name),
|
||||
|
|
@ -886,7 +905,8 @@ struct FurnaceGUIMacroDesc {
|
|||
isBitfield(bitfield),
|
||||
blockMode(block),
|
||||
bit30(bit30Special),
|
||||
hoverFunc(hf) {
|
||||
hoverFunc(hf),
|
||||
hoverFuncUser(hfu) {
|
||||
// MSVC -> hell
|
||||
this->min=macroMin;
|
||||
this->max=macroMax;
|
||||
|
|
@ -980,8 +1000,10 @@ class FurnaceGUI {
|
|||
|
||||
std::vector<DivSystem> sysSearchResults;
|
||||
std::vector<FurnaceGUISysDef> newSongSearchResults;
|
||||
std::deque<String> recentFile;
|
||||
|
||||
bool quit, warnQuit, willCommit, edit, modified, displayError, displayExporting, vgmExportLoop, zsmExportLoop, vgmExportPatternHints;
|
||||
bool portrait, mobileMenuOpen;
|
||||
bool wantCaptureKeyboard, oldWantCaptureKeyboard, displayMacroMenu;
|
||||
bool displayNew, fullScreen, preserveChanPos, wantScrollList, noteInputPoly;
|
||||
bool displayPendingIns, pendingInsSingle, displayPendingRawSample;
|
||||
|
|
@ -991,6 +1013,7 @@ class FurnaceGUI {
|
|||
int zsmExportTickRate;
|
||||
int macroPointSize;
|
||||
int waveEditStyle;
|
||||
float mobileMenuPos;
|
||||
const int* curSysSection;
|
||||
|
||||
String pendingRawSample;
|
||||
|
|
@ -1002,10 +1025,13 @@ class FurnaceGUI {
|
|||
FurnaceGUIFileDialogs curFileDialog;
|
||||
FurnaceGUIWarnings warnAction;
|
||||
FurnaceGUIWarnings postWarnAction;
|
||||
FurnaceGUIMobileScenes mobScene;
|
||||
|
||||
FurnaceGUIFileDialog* fileDialog;
|
||||
|
||||
int scrW, scrH;
|
||||
int scrW, scrH, scrConfW, scrConfH;
|
||||
int scrX, scrY, scrConfX, scrConfY;
|
||||
bool scrMax;
|
||||
|
||||
double dpiScale;
|
||||
|
||||
|
|
@ -1052,6 +1078,7 @@ class FurnaceGUI {
|
|||
int snCore;
|
||||
int nesCore;
|
||||
int fdsCore;
|
||||
int c64Core;
|
||||
int pcSpeakerOutMethod;
|
||||
String yrw801Path;
|
||||
String tg100Path;
|
||||
|
|
@ -1138,6 +1165,7 @@ class FurnaceGUI {
|
|||
int dragMovesSelection;
|
||||
int unsignedDetune;
|
||||
int noThreadedInput;
|
||||
int saveWindowPos;
|
||||
int clampSamples;
|
||||
int saveUnusedPatterns;
|
||||
int channelColors;
|
||||
|
|
@ -1145,6 +1173,7 @@ class FurnaceGUI {
|
|||
int channelStyle;
|
||||
int channelVolStyle;
|
||||
int channelFeedbackStyle;
|
||||
int maxRecentFile;
|
||||
unsigned int maxUndoSteps;
|
||||
String mainFontPath;
|
||||
String patFontPath;
|
||||
|
|
@ -1171,6 +1200,7 @@ class FurnaceGUI {
|
|||
snCore(0),
|
||||
nesCore(0),
|
||||
fdsCore(0),
|
||||
c64Core(1),
|
||||
pcSpeakerOutMethod(0),
|
||||
yrw801Path(""),
|
||||
tg100Path(""),
|
||||
|
|
@ -1264,6 +1294,7 @@ class FurnaceGUI {
|
|||
channelStyle(0),
|
||||
channelVolStyle(0),
|
||||
channelFeedbackStyle(1),
|
||||
maxRecentFile(10),
|
||||
maxUndoSteps(100),
|
||||
mainFontPath(""),
|
||||
patFontPath(""),
|
||||
|
|
@ -1297,7 +1328,7 @@ class FurnaceGUI {
|
|||
|
||||
SelectionPoint selStart, selEnd, cursor, cursorDrag, dragStart, dragEnd;
|
||||
bool selecting, selectingFull, dragging, curNibble, orderNibble, followOrders, followPattern, changeAllOrders, mobileUI;
|
||||
bool collapseWindow, demandScrollX, fancyPattern, wantPatName, firstFrame, tempoView, waveHex, waveGenVisible, lockLayout, editOptsVisible, latchNibble, nonLatchNibble;
|
||||
bool collapseWindow, demandScrollX, fancyPattern, wantPatName, firstFrame, tempoView, waveHex, waveSigned, waveGenVisible, lockLayout, editOptsVisible, latchNibble, nonLatchNibble;
|
||||
FurnaceGUIWindows curWindow, nextWindow, curWindowLast;
|
||||
float peak[2];
|
||||
float patChanX[DIV_MAX_CHANS+1];
|
||||
|
|
@ -1441,7 +1472,7 @@ class FurnaceGUI {
|
|||
int renderTimeBegin, renderTimeEnd, renderTimeDelta;
|
||||
int eventTimeBegin, eventTimeEnd, eventTimeDelta;
|
||||
|
||||
int chanToMove, sysToMove, sysToDelete;
|
||||
int chanToMove, sysToMove, sysToDelete, opToMove;
|
||||
|
||||
ImVec2 patWindowPos, patWindowSize;
|
||||
|
||||
|
|
@ -1545,7 +1576,9 @@ class FurnaceGUI {
|
|||
float waveGenPhase[16];
|
||||
float waveGenTL[4];
|
||||
int waveGenMult[4];
|
||||
float waveGenFB[4];
|
||||
int waveGenFB[4];
|
||||
int waveGenScaleX, waveGenScaleY, waveGenOffsetX, waveGenOffsetY, waveGenSmooth;
|
||||
float waveGenAmplify;
|
||||
bool waveGenFMCon1[4];
|
||||
bool waveGenFMCon2[3];
|
||||
bool waveGenFMCon3[2];
|
||||
|
|
@ -1584,16 +1617,19 @@ class FurnaceGUI {
|
|||
|
||||
void toggleMobileUI(bool enable, bool force=false);
|
||||
|
||||
void pushToggleColors(bool status);
|
||||
void popToggleColors();
|
||||
|
||||
void drawMobileControls();
|
||||
void drawEditControls();
|
||||
void drawSongInfo();
|
||||
void drawOrders();
|
||||
void drawPattern();
|
||||
void drawInsList();
|
||||
void drawInsList(bool asChild=false);
|
||||
void drawInsEdit();
|
||||
void drawWaveList();
|
||||
void drawWaveList(bool asChild=false);
|
||||
void drawWaveEdit();
|
||||
void drawSampleList();
|
||||
void drawSampleList(bool asChild=false);
|
||||
void drawSampleEdit();
|
||||
void drawMixer();
|
||||
void drawOsc();
|
||||
|
|
@ -1692,9 +1728,14 @@ class FurnaceGUI {
|
|||
void keyDown(SDL_Event& ev);
|
||||
void keyUp(SDL_Event& ev);
|
||||
|
||||
void pointDown(int x, int y, int button);
|
||||
void pointUp(int x, int y, int button);
|
||||
void pointMotion(int x, int y, int xrel, int yrel);
|
||||
|
||||
void openFileDialog(FurnaceGUIFileDialogs type);
|
||||
int save(String path, int dmfVersion);
|
||||
int load(String path);
|
||||
void pushRecentFile(String path);
|
||||
void exportAudio(String path, DivAudioExportModes mode);
|
||||
|
||||
bool parseSysEx(unsigned char* data, size_t len);
|
||||
|
|
@ -1704,7 +1745,7 @@ class FurnaceGUI {
|
|||
|
||||
void encodeMMLStr(String& target, int* macro, int macroLen, int macroLoop, int macroRel, bool hex=false, bool bit30=false);
|
||||
void decodeMMLStr(String& source, int* macro, unsigned char& macroLen, unsigned char& macroLoop, int macroMin, int macroMax, unsigned char& macroRel, bool bit30=false);
|
||||
void decodeMMLStrW(String& source, int* macro, int& macroLen, int macroMax, bool hex=false);
|
||||
void decodeMMLStrW(String& source, int* macro, int& macroLen, int macroMin, int macroMax, bool hex=false);
|
||||
|
||||
String encodeKeyMap(std::map<int,int>& map);
|
||||
void decodeKeyMap(std::map<int,int>& map, String source);
|
||||
|
|
@ -1724,6 +1765,7 @@ class FurnaceGUI {
|
|||
void runBackupThread();
|
||||
void pushPartBlend();
|
||||
void popPartBlend();
|
||||
bool detectOutOfBoundsWindow();
|
||||
int processEvent(SDL_Event* ev);
|
||||
bool loop();
|
||||
bool finish();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue