port .ftm loading progress
from LTVA
This commit is contained in:
parent
e809995fa1
commit
c0df3df4ed
|
@ -547,7 +547,7 @@ class DivEngine {
|
||||||
bool loadFur(unsigned char* file, size_t len, int variantID=0);
|
bool loadFur(unsigned char* file, size_t len, int variantID=0);
|
||||||
bool loadMod(unsigned char* file, size_t len);
|
bool loadMod(unsigned char* file, size_t len);
|
||||||
bool loadS3M(unsigned char* file, size_t len);
|
bool loadS3M(unsigned char* file, size_t len);
|
||||||
bool loadFTM(unsigned char* file, size_t len);
|
bool loadFTM(unsigned char* file, size_t len, bool dnft, bool dnftSig, bool eft);
|
||||||
bool loadFC(unsigned char* file, size_t len);
|
bool loadFC(unsigned char* file, size_t len);
|
||||||
|
|
||||||
void loadDMP(SafeReader& reader, std::vector<DivInstrument*>& ret, String& stripPath);
|
void loadDMP(SafeReader& reader, std::vector<DivInstrument*>& ret, String& stripPath);
|
||||||
|
|
|
@ -128,7 +128,7 @@ bool DivEngine::load(unsigned char* f, size_t slen) {
|
||||||
if (memcmp(file,DIV_DMF_MAGIC,16)==0) {
|
if (memcmp(file,DIV_DMF_MAGIC,16)==0) {
|
||||||
return loadDMF(file,len);
|
return loadDMF(file,len);
|
||||||
} else if (memcmp(file,DIV_FTM_MAGIC,18)==0) {
|
} else if (memcmp(file,DIV_FTM_MAGIC,18)==0) {
|
||||||
return loadFTM(file,len);
|
return loadFTM(file,len,false,false,false);
|
||||||
} else if (memcmp(file,DIV_FUR_MAGIC,16)==0) {
|
} else if (memcmp(file,DIV_FUR_MAGIC,16)==0) {
|
||||||
return loadFur(file,len);
|
return loadFur(file,len);
|
||||||
} else if (memcmp(file,DIV_FUR_MAGIC_DS0,16)==0) {
|
} else if (memcmp(file,DIV_FUR_MAGIC_DS0,16)==0) {
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -259,6 +259,40 @@ bool DivInstrumentPowerNoise::operator==(const DivInstrumentPowerNoise& other) {
|
||||||
|
|
||||||
#undef _C
|
#undef _C
|
||||||
|
|
||||||
|
#define CONSIDER(x,t) \
|
||||||
|
case t: \
|
||||||
|
return &x; \
|
||||||
|
break;
|
||||||
|
|
||||||
|
DivInstrumentMacro* DivInstrumentSTD::macroByType(DivMacroType type) {
|
||||||
|
switch (type) {
|
||||||
|
CONSIDER(volMacro,DIV_MACRO_VOL)
|
||||||
|
CONSIDER(arpMacro,DIV_MACRO_ARP)
|
||||||
|
CONSIDER(dutyMacro,DIV_MACRO_DUTY)
|
||||||
|
CONSIDER(waveMacro,DIV_MACRO_WAVE)
|
||||||
|
CONSIDER(pitchMacro,DIV_MACRO_PITCH)
|
||||||
|
CONSIDER(ex1Macro,DIV_MACRO_EX1)
|
||||||
|
CONSIDER(ex2Macro,DIV_MACRO_EX2)
|
||||||
|
CONSIDER(ex3Macro,DIV_MACRO_EX3)
|
||||||
|
CONSIDER(algMacro,DIV_MACRO_ALG)
|
||||||
|
CONSIDER(fbMacro,DIV_MACRO_FB)
|
||||||
|
CONSIDER(fmsMacro,DIV_MACRO_FMS)
|
||||||
|
CONSIDER(amsMacro,DIV_MACRO_AMS)
|
||||||
|
CONSIDER(panLMacro,DIV_MACRO_PAN_LEFT)
|
||||||
|
CONSIDER(panRMacro,DIV_MACRO_PAN_RIGHT)
|
||||||
|
CONSIDER(phaseResetMacro,DIV_MACRO_PHASE_RESET)
|
||||||
|
CONSIDER(ex4Macro,DIV_MACRO_EX4)
|
||||||
|
CONSIDER(ex5Macro,DIV_MACRO_EX5)
|
||||||
|
CONSIDER(ex6Macro,DIV_MACRO_EX6)
|
||||||
|
CONSIDER(ex7Macro,DIV_MACRO_EX7)
|
||||||
|
CONSIDER(ex8Macro,DIV_MACRO_EX8)
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef CONSIDER
|
||||||
|
|
||||||
#define FEATURE_BEGIN(x) \
|
#define FEATURE_BEGIN(x) \
|
||||||
w->write(x,2); \
|
w->write(x,2); \
|
||||||
size_t featStartSeek=w->tell(); \
|
size_t featStartSeek=w->tell(); \
|
||||||
|
|
|
@ -329,6 +329,9 @@ struct DivInstrumentSTD {
|
||||||
damMacro(DIV_MACRO_OP_DAM), dvbMacro(DIV_MACRO_OP_DVB), egtMacro(DIV_MACRO_OP_EGT), kslMacro(DIV_MACRO_OP_KSL),
|
damMacro(DIV_MACRO_OP_DAM), dvbMacro(DIV_MACRO_OP_DVB), egtMacro(DIV_MACRO_OP_EGT), kslMacro(DIV_MACRO_OP_KSL),
|
||||||
susMacro(DIV_MACRO_OP_SUS), vibMacro(DIV_MACRO_OP_VIB), wsMacro(DIV_MACRO_OP_WS), ksrMacro(DIV_MACRO_OP_KSR) {}
|
susMacro(DIV_MACRO_OP_SUS), vibMacro(DIV_MACRO_OP_VIB), wsMacro(DIV_MACRO_OP_WS), ksrMacro(DIV_MACRO_OP_KSR) {}
|
||||||
} opMacros[4];
|
} opMacros[4];
|
||||||
|
|
||||||
|
DivInstrumentMacro* macroByType(DivMacroType type);
|
||||||
|
|
||||||
DivInstrumentSTD():
|
DivInstrumentSTD():
|
||||||
volMacro(DIV_MACRO_VOL,true),
|
volMacro(DIV_MACRO_VOL,true),
|
||||||
arpMacro(DIV_MACRO_ARP),
|
arpMacro(DIV_MACRO_ARP),
|
||||||
|
|
|
@ -1637,7 +1637,7 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
|
||||||
if (!dirExists(workingDirSong)) workingDirSong=getHomeDir();
|
if (!dirExists(workingDirSong)) workingDirSong=getHomeDir();
|
||||||
hasOpened=fileDialog->openLoad(
|
hasOpened=fileDialog->openLoad(
|
||||||
"Open File",
|
"Open File",
|
||||||
{"compatible files", "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc",
|
{"compatible files", "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc *.ftm *.0cc *.dnm *.eft",
|
||||||
"all files", "*"},
|
"all files", "*"},
|
||||||
workingDirSong,
|
workingDirSong,
|
||||||
dpiScale
|
dpiScale
|
||||||
|
|
|
@ -5654,6 +5654,9 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
|
||||||
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".fc",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".fc",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".smod",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".smod",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".ftm",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".ftm",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".0cc",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".dnm",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".eft",uiColors[GUI_COLOR_FILE_SONG_IMPORT],ICON_FA_FILE);
|
||||||
|
|
||||||
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".tfi",uiColors[GUI_COLOR_FILE_INSTR],ICON_FA_FILE);
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".tfi",uiColors[GUI_COLOR_FILE_INSTR],ICON_FA_FILE);
|
||||||
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".vgi",uiColors[GUI_COLOR_FILE_INSTR],ICON_FA_FILE);
|
ImGuiFileDialog::Instance()->SetFileStyle(IGFD_FileStyleByExtension,".vgi",uiColors[GUI_COLOR_FILE_INSTR],ICON_FA_FILE);
|
||||||
|
|
Loading…
Reference in a new issue