mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2025-01-23 09:11:11 +01:00
-fixed flow lists game titles so all titles show and are alphabatized. a strange issue that appeared last commit.
-now if you select a single source button that has multiple magic numbers it will remember the flow layout you selected. -attempted to fix cover downloading since last commit. now covers should download but when you go back to main screen with coverflow wfl crashes. but restarts in 10 seconds with the covers ready. if anyone can fix this please let me know.
This commit is contained in:
parent
d94c66d773
commit
8fe2349084
BIN
out/boot.dol
BIN
out/boot.dol
Binary file not shown.
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
@ -165,7 +165,7 @@ bool Config::load(const char *filename)
|
|||||||
if (!file.bad() && !file.fail())
|
if (!file.bad() && !file.fail())
|
||||||
{
|
{
|
||||||
line = trimEnd(line);
|
line = trimEnd(line);
|
||||||
if (line.empty() || line[0] == '#') continue;
|
if (line.empty() || line[0] == '#' || line[0] == '\0') continue;
|
||||||
if (line[0] == '[')
|
if (line[0] == '[')
|
||||||
{
|
{
|
||||||
string::size_type i = line.find_first_of(']');
|
string::size_type i = line.find_first_of(']');
|
||||||
|
@ -79,21 +79,26 @@ static void AddISO(const char *GameID, const char *GameTitle, const char *GamePa
|
|||||||
if(GameID != NULL) strncpy(ListElement.id, GameID, 6);
|
if(GameID != NULL) strncpy(ListElement.id, GameID, 6);
|
||||||
if(GamePath != NULL) strncpy(ListElement.path, GamePath, sizeof(ListElement.path) - 1);
|
if(GamePath != NULL) strncpy(ListElement.path, GamePath, sizeof(ListElement.path) - 1);
|
||||||
ListElement.casecolor = CustomTitles.getColor("COVERS", ListElement.id, GameColor).intVal();
|
ListElement.casecolor = CustomTitles.getColor("COVERS", ListElement.id, GameColor).intVal();
|
||||||
const char *CustomTitle = CustomTitles.getString("TITLES", ListElement.id).c_str();
|
char CustomTitle[64];
|
||||||
|
memset(CustomTitle, 0, sizeof(CustomTitle));
|
||||||
|
strncpy(CustomTitle, CustomTitles.getString("TITLES", ListElement.id).c_str(), 63);
|
||||||
|
const char *gameTDB_Title = NULL;
|
||||||
if(gameTDB.IsLoaded())
|
if(gameTDB.IsLoaded())
|
||||||
{
|
{
|
||||||
if(ListElement.casecolor == GameColor)
|
if(ListElement.casecolor == GameColor)
|
||||||
ListElement.casecolor = gameTDB.GetCaseColor(ListElement.id);
|
ListElement.casecolor = gameTDB.GetCaseColor(ListElement.id);
|
||||||
ListElement.wifi = gameTDB.GetWifiPlayers(ListElement.id);
|
ListElement.wifi = gameTDB.GetWifiPlayers(ListElement.id);
|
||||||
ListElement.players = gameTDB.GetPlayers(ListElement.id);
|
ListElement.players = gameTDB.GetPlayers(ListElement.id);
|
||||||
if(CustomTitle == NULL || CustomTitle[0] == '\0')
|
if(strlen(CustomTitle) == 0)
|
||||||
gameTDB.GetTitle(ListElement.id, CustomTitle);
|
gameTDB.GetTitle(ListElement.id, gameTDB_Title);
|
||||||
}
|
}
|
||||||
if(!ValidColor(ListElement.casecolor))
|
if(!ValidColor(ListElement.casecolor))
|
||||||
ListElement.casecolor = CoverFlow.InternalCoverColor(ListElement.id, GameColor);
|
ListElement.casecolor = CoverFlow.InternalCoverColor(ListElement.id, GameColor);
|
||||||
|
|
||||||
if(CustomTitle != NULL && CustomTitle[0] != '\0')
|
if(strlen(CustomTitle) > 0)
|
||||||
mbstowcs(ListElement.title, CustomTitle, 63);
|
mbstowcs(ListElement.title, CustomTitle, 63);
|
||||||
|
else if(gameTDB_Title != NULL && gameTDB_Title[0] != '\0')
|
||||||
|
mbstowcs(ListElement.title, gameTDB_Title, 63);
|
||||||
else if(GameTitle != NULL)
|
else if(GameTitle != NULL)
|
||||||
mbstowcs(ListElement.title, GameTitle, 63);
|
mbstowcs(ListElement.title, GameTitle, 63);
|
||||||
Asciify(ListElement.title);
|
Asciify(ListElement.title);
|
||||||
@ -183,8 +188,10 @@ static void Create_Plugin_List(char *FullPath)
|
|||||||
char PluginMagicWord[9];
|
char PluginMagicWord[9];
|
||||||
memset(PluginMagicWord, 0, sizeof(PluginMagicWord));
|
memset(PluginMagicWord, 0, sizeof(PluginMagicWord));
|
||||||
strncpy(PluginMagicWord, fmt("%08x", m_cacheList.Magic), 8);
|
strncpy(PluginMagicWord, fmt("%08x", m_cacheList.Magic), 8);
|
||||||
const char *CustomTitle = CustomTitles.getString(PluginMagicWord, FolderTitle).c_str();
|
char CustomTitle[64];
|
||||||
if(CustomTitle != NULL && CustomTitle[0] != '\0')
|
memset(CustomTitle, 0, sizeof(CustomTitle));
|
||||||
|
strncpy(CustomTitle, CustomTitles.getString(PluginMagicWord, FolderTitle).c_str(), 63);
|
||||||
|
if(strlen(CustomTitle) > 0)
|
||||||
mbstowcs(ListElement.title, CustomTitle, 63);
|
mbstowcs(ListElement.title, CustomTitle, 63);
|
||||||
else
|
else
|
||||||
mbstowcs(ListElement.title, FolderTitle, 63);
|
mbstowcs(ListElement.title, FolderTitle, 63);
|
||||||
@ -236,18 +243,23 @@ static void Create_Channel_List(bool realNAND)
|
|||||||
else
|
else
|
||||||
strncpy(ListElement.id, chan->id, 4);
|
strncpy(ListElement.id, chan->id, 4);
|
||||||
ListElement.casecolor = CustomTitles.getColor("COVERS", ListElement.id, 0xFFFFFF).intVal();
|
ListElement.casecolor = CustomTitles.getColor("COVERS", ListElement.id, 0xFFFFFF).intVal();
|
||||||
const char *CustomTitle = CustomTitles.getString("TITLES", ListElement.id).c_str();
|
char CustomTitle[64];
|
||||||
|
memset(CustomTitle, 0, sizeof(CustomTitle));
|
||||||
|
strncpy(CustomTitle, CustomTitles.getString("TITLES", ListElement.id).c_str(), 63);
|
||||||
|
const char *gameTDB_Title = NULL;
|
||||||
if(gameTDB.IsLoaded())
|
if(gameTDB.IsLoaded())
|
||||||
{
|
{
|
||||||
if(ListElement.casecolor == 0xFFFFFF)
|
if(ListElement.casecolor == 0xFFFFFF)
|
||||||
ListElement.casecolor = gameTDB.GetCaseColor(ListElement.id);
|
ListElement.casecolor = gameTDB.GetCaseColor(ListElement.id);
|
||||||
ListElement.wifi = gameTDB.GetWifiPlayers(ListElement.id);
|
ListElement.wifi = gameTDB.GetWifiPlayers(ListElement.id);
|
||||||
ListElement.players = gameTDB.GetPlayers(ListElement.id);
|
ListElement.players = gameTDB.GetPlayers(ListElement.id);
|
||||||
if(CustomTitle == NULL || CustomTitle[0] == '\0')
|
if(strlen(CustomTitle) == 0)
|
||||||
gameTDB.GetTitle(ListElement.id, CustomTitle);
|
gameTDB.GetTitle(ListElement.id, gameTDB_Title);
|
||||||
}
|
}
|
||||||
if(CustomTitle != NULL && CustomTitle[0] != '\0')
|
if(strlen(CustomTitle) > 0)
|
||||||
mbstowcs(ListElement.title, CustomTitle, 63);
|
mbstowcs(ListElement.title, CustomTitle, 63);
|
||||||
|
else if(gameTDB_Title != NULL && gameTDB_Title[0] != '\0')
|
||||||
|
mbstowcs(ListElement.title, gameTDB_Title, 63);
|
||||||
else
|
else
|
||||||
wcsncpy(ListElement.title, chan->name, 64);
|
wcsncpy(ListElement.title, chan->name, 64);
|
||||||
if(realNAND)
|
if(realNAND)
|
||||||
|
@ -54,6 +54,7 @@ private:
|
|||||||
u8 enabledPluginsCount;
|
u8 enabledPluginsCount;
|
||||||
u8 m_catStartPage;
|
u8 m_catStartPage;
|
||||||
u8 m_max_categories;
|
u8 m_max_categories;
|
||||||
|
char single_sourcebtn[16];
|
||||||
bool m_clearCats;
|
bool m_clearCats;
|
||||||
bool m_newGame;
|
bool m_newGame;
|
||||||
bool show_mem;
|
bool show_mem;
|
||||||
|
@ -434,8 +434,7 @@ int CMenu::_initNetwork()
|
|||||||
|
|
||||||
int CMenu::_coverDownloader(bool missingOnly)
|
int CMenu::_coverDownloader(bool missingOnly)
|
||||||
{
|
{
|
||||||
vector<string> coverList;
|
vector<string> coverIDList;
|
||||||
//vector<dir_discHdr> pluginCoverList;
|
|
||||||
|
|
||||||
int count = 0, countFlat = 0;
|
int count = 0, countFlat = 0;
|
||||||
float listWeight = missingOnly ? 0.125f : 0.f; // 1/8 of the progress bar for testing the PNGs we already have
|
float listWeight = missingOnly ? 0.125f : 0.f; // 1/8 of the progress bar for testing the PNGs we already have
|
||||||
@ -467,53 +466,42 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
c_gameTDB.OpenFile(fmt("%s/wiitdb.xml", m_settingsDir.c_str()));
|
c_gameTDB.OpenFile(fmt("%s/wiitdb.xml", m_settingsDir.c_str()));
|
||||||
c_gameTDB.SetLanguageCode(m_curLanguage.c_str());
|
c_gameTDB.SetLanguageCode(m_curLanguage.c_str());
|
||||||
}
|
}
|
||||||
|
char path[256];
|
||||||
|
char id[7];
|
||||||
|
|
||||||
//Config m_checksums;
|
/* create list of cover ID's that need downloading */
|
||||||
//m_checksums.load(fmt("%s/%s", m_settingsDir.c_str(), PLUGIN_CRCS_FILENAME));
|
|
||||||
|
|
||||||
if (m_coverDLGameId.empty())
|
if (m_coverDLGameId.empty())
|
||||||
{
|
{
|
||||||
coverList.reserve(m_gameList.size());
|
coverIDList.reserve(m_gameList.size());
|
||||||
for (u32 i = 0; i < m_gameList.size() && !m_thrdStop; ++i)
|
for (u32 i = 0; i < m_gameList.size() && !m_thrdStop; ++i)
|
||||||
{
|
{
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(_t("dlmsg7", L"Listing covers to download..."), listWeight * (float)step / (float)nbSteps);
|
_setThrdMsg(_t("dlmsg7", L"Listing covers to download..."), listWeight * (float)step / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
++step;
|
++step;
|
||||||
char *path = NULL;
|
|
||||||
const char *id = NULL;
|
memset(path, 0, sizeof(path));
|
||||||
if(m_gameList[i].type == TYPE_PLUGIN)
|
memset(id, 0, sizeof(id));
|
||||||
{
|
if(m_gameList[i].type == TYPE_PLUGIN || m_gameList[i].type == TYPE_HOMEBREW)
|
||||||
continue;
|
continue;
|
||||||
/* char gamePath[256];
|
|
||||||
if(strchr(m_gameList[i].path, '/') != NULL)
|
|
||||||
strncpy(gamePath, strrchr(m_gameList[i].path, '/') + 1, sizeof(gamePath));
|
|
||||||
else
|
|
||||||
strncpy(gamePath, m_gameList[i].path, sizeof(gamePath));
|
|
||||||
path = fmt_malloc("%s/%s.png", m_boxPicDir.c_str(), gamePath);
|
|
||||||
id = path;*/
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
path = fmt_malloc("%s/%s.png", m_boxPicDir.c_str(), m_gameList[i].id);
|
strncpy(id, m_gameList[i].id, 6);
|
||||||
id = m_gameList[i].id;
|
strncpy(path, fmt("%s/%s.png", m_boxPicDir.c_str(), id), 255);
|
||||||
}
|
}
|
||||||
if(!missingOnly || (id != NULL && !CoverFlow.fullCoverCached(id) && path != NULL && !checkPNGFile(path)))
|
if(!missingOnly || (strlen(id) > 0 && !CoverFlow.fullCoverCached(id) && strlen(path) > 0 && !checkPNGFile(path)))
|
||||||
{
|
{
|
||||||
//if(m_gameList[i].type == TYPE_PLUGIN)
|
if(strlen(id) > 0)
|
||||||
// pluginCoverList.push_back(m_gameList[i]);
|
coverIDList.push_back(id);
|
||||||
if(id != NULL)
|
|
||||||
coverList.push_back(id);
|
|
||||||
}
|
}
|
||||||
if(path != NULL)
|
|
||||||
MEM2_free(path);
|
|
||||||
path = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
coverList.push_back(m_coverDLGameId);
|
coverIDList.push_back(m_coverDLGameId);
|
||||||
|
|
||||||
u32 n = coverList.size();
|
u32 n = coverIDList.size();
|
||||||
|
|
||||||
|
/* initialize network connection */
|
||||||
if (n > 0 && !m_thrdStop)
|
if (n > 0 && !m_thrdStop)
|
||||||
{
|
{
|
||||||
step = 0;
|
step = 0;
|
||||||
@ -532,30 +520,33 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
}
|
}
|
||||||
m_thrdStepLen = dlWeight / (float)nbSteps;
|
m_thrdStepLen = dlWeight / (float)nbSteps;
|
||||||
|
|
||||||
|
/* download covers in the list */
|
||||||
Config m_newID;
|
Config m_newID;
|
||||||
m_newID.load(fmt("%s/newid.ini", m_settingsDir.c_str()));
|
m_newID.load(fmt("%s/newid.ini", m_settingsDir.c_str()));
|
||||||
m_newID.setString("CHANNELS", "WFSF", "DWFA");
|
|
||||||
u32 CoverType = 0;
|
u32 CoverType = 0;
|
||||||
|
|
||||||
for(u32 i = 0; i < coverList.size() && !m_thrdStop; ++i)
|
for(u32 i = 0; i < coverIDList.size() && !m_thrdStop; ++i)
|
||||||
{
|
{
|
||||||
|
string coverID = coverIDList[i];
|
||||||
string url;
|
string url;
|
||||||
const char *domain = "NEWID";
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
bool original = true;
|
bool original = true;
|
||||||
bool custom = false;
|
bool custom = false;
|
||||||
int c_altCase = 0;
|
int c_altCase = 0;
|
||||||
|
|
||||||
const string &newID = m_newID.getString(domain, coverList[i], coverList[i]);
|
if(m_newID.loaded())
|
||||||
|
|
||||||
if(!newID.empty() && strncasecmp(newID.c_str(), coverList[i].c_str(), coverList[i].length()) == 0)
|
|
||||||
m_newID.remove(domain, coverList[i]);
|
|
||||||
else if(!newID.empty())
|
|
||||||
{
|
{
|
||||||
gprintf("old id = %s\nnew id = %s\n", coverList[i].c_str(), newID.c_str());
|
const string &newID = m_newID.getString("NEWID", coverID, coverID);
|
||||||
|
if(!newID.empty() && strncasecmp(newID.c_str(), coverID.c_str(), coverID.length()) == 0)
|
||||||
|
m_newID.remove("NEWID", coverID);
|
||||||
|
else if(!newID.empty())
|
||||||
|
{
|
||||||
|
gprintf("old id = %s\nnew id = %s\n", coverID.c_str(), newID.c_str());
|
||||||
|
coverID = newID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for( int p = 0; p < 4; ++p )
|
for(int p = 0; p < 4; ++p)
|
||||||
{
|
{
|
||||||
switch(p)
|
switch(p)
|
||||||
{
|
{
|
||||||
@ -573,22 +564,22 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch( CoverType )
|
switch(CoverType)
|
||||||
{
|
{
|
||||||
case BOX:
|
case BOX:
|
||||||
if( m_downloadPrioVal&C_TYPE_ONOR )
|
if(m_downloadPrioVal & C_TYPE_ONOR)
|
||||||
original = false;
|
original = false;
|
||||||
if (!success && !m_thrdStop && original)
|
if(!success && !m_thrdStop && original)
|
||||||
{
|
{
|
||||||
char *path = fmt_malloc("%s/%s.png", m_boxPicDir.c_str(), coverList[i].c_str());
|
memset(path, 0, sizeof(path));
|
||||||
if(path != NULL && !checkPNGFile(path))
|
strncpy(path, fmt("%s/%s.png", m_boxPicDir.c_str(), coverID.c_str()), 255);
|
||||||
|
|
||||||
|
/* if cover png doesn't already exist download it */
|
||||||
|
if(strlen(path) > 0 && !checkPNGFile(path))
|
||||||
{
|
{
|
||||||
for (u32 j = 0; !success && j < fmtURLBox.size() && !m_thrdStop; ++j)
|
for(u32 j = 0; !success && j < fmtURLBox.size() && !m_thrdStop; ++j)
|
||||||
{
|
{
|
||||||
/*if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
url = makeURL(fmtURLBox[j], coverID, countryCode(coverID));
|
||||||
url = m_plugin.GenerateCoverLink(pluginCoverList[i], fmtURLBox[j], m_checksums);
|
|
||||||
else*/
|
|
||||||
url = makeURL(fmtURLBox[j], newID, countryCode(newID));
|
|
||||||
if (j == 0) ++step;
|
if (j == 0) ++step;
|
||||||
m_thrdStep = listWeight + dlWeight * (float)step / (float)nbSteps;
|
m_thrdStep = listWeight + dlWeight * (float)step / (float)nbSteps;
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
@ -596,96 +587,94 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
download = downloadfile(buffer, bufferSize, url.c_str(), CMenu::_downloadProgress, this);
|
download = downloadfile(buffer, bufferSize, url.c_str(), CMenu::_downloadProgress, this);
|
||||||
|
|
||||||
for( int o = 0; o < 12; ++o )
|
for(int o = 0; o < 12; ++o)
|
||||||
{
|
{
|
||||||
bool tdl = false;
|
bool tdl = false;
|
||||||
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
||||||
break;
|
break;
|
||||||
//if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
|
||||||
// break;
|
|
||||||
switch( o )
|
switch( o )
|
||||||
{
|
{
|
||||||
case EN:
|
case EN:
|
||||||
if(( newID[3] == 'E' || newID[3] == 'X' || newID[3] == 'Y' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
if((coverID[3] == 'E' || coverID[3] == 'X' || coverID[3] == 'Y' || coverID[3] == 'P') && m_downloadPrioVal & C_TYPE_EN)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "EN");
|
url = makeURL(fmtURLBox[j], coverID, "EN");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case JA:
|
case JA:
|
||||||
if(newID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
if(coverID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "JA");
|
url = makeURL(fmtURLBox[j], coverID, "JA");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FR:
|
case FR:
|
||||||
if((newID[3] == 'F' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
if((coverID[3] == 'F' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "FR");
|
url = makeURL(fmtURLBox[j], coverID, "FR");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DE:
|
case DE:
|
||||||
if((newID[3] == 'D' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
if((coverID[3] == 'D' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "DE");
|
url = makeURL(fmtURLBox[j], coverID, "DE");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES:
|
case ES:
|
||||||
if((newID[3] == 'S' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
if((coverID[3] == 'S' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "ES");
|
url = makeURL(fmtURLBox[j], coverID, "ES");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IT:
|
case IT:
|
||||||
if((newID[3] == 'I' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
if((coverID[3] == 'I' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "IT");
|
url = makeURL(fmtURLBox[j], coverID, "IT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NL:
|
case NL:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "NL");
|
url = makeURL(fmtURLBox[j], coverID, "NL");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PT:
|
case PT:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "PT");
|
url = makeURL(fmtURLBox[j], coverID, "PT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RU:
|
case RU:
|
||||||
if((newID[3] == 'R' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
if((coverID[3] == 'R' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "RU");
|
url = makeURL(fmtURLBox[j], coverID, "RU");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KO:
|
case KO:
|
||||||
if(newID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
if(coverID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "KO");
|
url = makeURL(fmtURLBox[j], coverID, "KO");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AU:
|
case AU:
|
||||||
if(newID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
if(coverID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLBox[j], newID, "ZH");
|
url = makeURL(fmtURLBox[j], coverID, "ZH");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ZHCN:
|
case ZHCN:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ( tdl )
|
if(tdl)
|
||||||
{
|
{
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg3", L"Downloading from %s"), url.c_str()), m_thrdStep);
|
_setThrdMsg(wfmt(_fmt("dlmsg3", L"Downloading from %s"), url.c_str()), m_thrdStep);
|
||||||
@ -705,35 +694,31 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
fsop_WriteFile(path, download.data, download.size);
|
fsop_WriteFile(path, download.data, download.size);
|
||||||
}
|
}
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverID.c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, true))
|
if(CoverFlow.preCacheCover(coverID.c_str(), download.data, true))
|
||||||
{
|
{
|
||||||
++count;
|
++count;
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(path != NULL)
|
|
||||||
MEM2_free(path);
|
|
||||||
path = NULL;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CBOX:
|
case CBOX:
|
||||||
if( m_downloadPrioVal&C_TYPE_ONCU )
|
if( m_downloadPrioVal&C_TYPE_ONCU )
|
||||||
custom = true;
|
custom = true;
|
||||||
c_altCase = c_gameTDB.GetCaseVersions( coverList[i].c_str() );
|
c_altCase = c_gameTDB.GetCaseVersions( coverID.c_str() );
|
||||||
if(!success && !m_thrdStop && c_gameTDB.IsLoaded() && c_altCase > 1 && custom)
|
if(!success && !m_thrdStop && c_gameTDB.IsLoaded() && c_altCase > 1 && custom)
|
||||||
{
|
{
|
||||||
char *path = fmt_malloc("%s/%s.png", m_boxPicDir.c_str(), coverList[i].c_str());
|
memset(path, 0, sizeof(path));
|
||||||
if(path != NULL && !checkPNGFile(path))
|
strncpy(path, fmt("%s/%s.png", m_boxPicDir.c_str(), coverID.c_str()), 255);
|
||||||
|
|
||||||
|
if(strlen(path) > 0 && !checkPNGFile(path))
|
||||||
{
|
{
|
||||||
for (u32 j = 0; !success && j < fmtURLCBox.size() && !m_thrdStop; ++j)
|
for (u32 j = 0; !success && j < fmtURLCBox.size() && !m_thrdStop; ++j)
|
||||||
{
|
{
|
||||||
/*if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
url = makeURL(fmtURLCBox[j], coverID, countryCode(coverID));
|
||||||
url = m_plugin.GenerateCoverLink(pluginCoverList[i], fmtURLCBox[j], m_checksums);
|
|
||||||
else*/
|
|
||||||
url = makeURL(fmtURLCBox[j], newID, countryCode(newID));
|
|
||||||
if (j == 0) ++step;
|
if (j == 0) ++step;
|
||||||
m_thrdStep = listWeight + dlWeight * (float)step / (float)nbSteps;
|
m_thrdStep = listWeight + dlWeight * (float)step / (float)nbSteps;
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
@ -745,84 +730,82 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
bool tdl = false;
|
bool tdl = false;
|
||||||
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
||||||
break;
|
break;
|
||||||
//if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
|
||||||
// break;
|
|
||||||
switch( o )
|
switch( o )
|
||||||
{
|
{
|
||||||
case EN:
|
case EN:
|
||||||
if(( newID[3] == 'E' || newID[3] == 'X' || newID[3] == 'Y' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
if(( coverID[3] == 'E' || coverID[3] == 'X' || coverID[3] == 'Y' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "EN");
|
url = makeURL(fmtURLCBox[j], coverID, "EN");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case JA:
|
case JA:
|
||||||
if(newID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
if(coverID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "JA");
|
url = makeURL(fmtURLCBox[j], coverID, "JA");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FR:
|
case FR:
|
||||||
if((newID[3] == 'F' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
if((coverID[3] == 'F' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "FR");
|
url = makeURL(fmtURLCBox[j], coverID, "FR");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DE:
|
case DE:
|
||||||
if((newID[3] == 'D' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
if((coverID[3] == 'D' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "DE");
|
url = makeURL(fmtURLCBox[j], coverID, "DE");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES:
|
case ES:
|
||||||
if((newID[3] == 'S' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
if((coverID[3] == 'S' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "ES");
|
url = makeURL(fmtURLCBox[j], coverID, "ES");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IT:
|
case IT:
|
||||||
if((newID[3] == 'I' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
if((coverID[3] == 'I' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "IT");
|
url = makeURL(fmtURLCBox[j], coverID, "IT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NL:
|
case NL:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "NL");
|
url = makeURL(fmtURLCBox[j], coverID, "NL");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PT:
|
case PT:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "PT");
|
url = makeURL(fmtURLCBox[j], coverID, "PT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RU:
|
case RU:
|
||||||
if((newID[3] == 'R' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
if((coverID[3] == 'R' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "RU");
|
url = makeURL(fmtURLCBox[j], coverID, "RU");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KO:
|
case KO:
|
||||||
if(newID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
if(coverID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "KO");
|
url = makeURL(fmtURLCBox[j], coverID, "KO");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AU:
|
case AU:
|
||||||
if(newID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
if(coverID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCBox[j], newID, "ZH");
|
url = makeURL(fmtURLCBox[j], coverID, "ZH");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -850,18 +833,15 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
fsop_WriteFile(path, download.data, download.size);
|
fsop_WriteFile(path, download.data, download.size);
|
||||||
}
|
}
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverID.c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, true))
|
if (CoverFlow.preCacheCover(coverID.c_str(), download.data, true))
|
||||||
{
|
{
|
||||||
++count;
|
++count;
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(path != NULL)
|
|
||||||
MEM2_free(path);
|
|
||||||
path = NULL;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FLAT:
|
case FLAT:
|
||||||
@ -869,17 +849,16 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
original = false;
|
original = false;
|
||||||
if(!success && !m_thrdStop && original)
|
if(!success && !m_thrdStop && original)
|
||||||
{
|
{
|
||||||
char *path = fmt_malloc("%s/%s.png", m_picDir.c_str(), coverList[i].c_str());
|
memset(path, 0, sizeof(path));
|
||||||
if(path != NULL && !checkPNGFile(path))
|
strncpy(path, fmt("%s/%s.png", m_picDir.c_str(), coverID.c_str()), 255);
|
||||||
|
|
||||||
|
if(strlen(path) > 0 && !checkPNGFile(path))
|
||||||
{
|
{
|
||||||
// Try to get the front cover
|
// Try to get the front cover
|
||||||
if (m_thrdStop) break;
|
if (m_thrdStop) break;
|
||||||
for (u32 j = 0; !success && j < fmtURLFlat.size() && !m_thrdStop; ++j)
|
for (u32 j = 0; !success && j < fmtURLFlat.size() && !m_thrdStop; ++j)
|
||||||
{
|
{
|
||||||
/*if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
url = makeURL(fmtURLFlat[j], coverID, countryCode(coverID));
|
||||||
url = m_plugin.GenerateCoverLink(pluginCoverList[i], fmtURLFlat[j], m_checksums);
|
|
||||||
else*/
|
|
||||||
url = makeURL(fmtURLFlat[j], newID, countryCode(newID));
|
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg8", L"Full cover not found. Downloading from %s"), url.c_str()), listWeight + dlWeight * (float)step / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg8", L"Full cover not found. Downloading from %s"), url.c_str()), listWeight + dlWeight * (float)step / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
@ -890,84 +869,82 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
bool tdl = false;
|
bool tdl = false;
|
||||||
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
if(download.data != NULL && download.size > 0 && checkPNGBuf(download.data))
|
||||||
break;
|
break;
|
||||||
//if(pluginCoverList.size() && pluginCoverList[i].type == TYPE_PLUGIN)
|
|
||||||
// break;
|
|
||||||
switch( o )
|
switch( o )
|
||||||
{
|
{
|
||||||
case EN:
|
case EN:
|
||||||
if(( newID[3] == 'E' || newID[3] == 'X' || newID[3] == 'Y' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
if(( coverID[3] == 'E' || coverID[3] == 'X' || coverID[3] == 'Y' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "EN");
|
url = makeURL(fmtURLFlat[j], coverID, "EN");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case JA:
|
case JA:
|
||||||
if(newID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
if(coverID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "JA");
|
url = makeURL(fmtURLFlat[j], coverID, "JA");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FR:
|
case FR:
|
||||||
if((newID[3] == 'F' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
if((coverID[3] == 'F' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "FR");
|
url = makeURL(fmtURLFlat[j], coverID, "FR");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DE:
|
case DE:
|
||||||
if((newID[3] == 'D' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
if((coverID[3] == 'D' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "DE");
|
url = makeURL(fmtURLFlat[j], coverID, "DE");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES:
|
case ES:
|
||||||
if((newID[3] == 'S' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
if((coverID[3] == 'S' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "ES");
|
url = makeURL(fmtURLFlat[j], coverID, "ES");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IT:
|
case IT:
|
||||||
if((newID[3] == 'I' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
if((coverID[3] == 'I' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "IT");
|
url = makeURL(fmtURLFlat[j], coverID, "IT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NL:
|
case NL:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "NL");
|
url = makeURL(fmtURLFlat[j], coverID, "NL");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PT:
|
case PT:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "PT");
|
url = makeURL(fmtURLFlat[j], coverID, "PT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RU:
|
case RU:
|
||||||
if((newID[3] == 'R' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
if((coverID[3] == 'R' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "RU");
|
url = makeURL(fmtURLFlat[j], coverID, "RU");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KO:
|
case KO:
|
||||||
if(newID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
if(coverID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "KO");
|
url = makeURL(fmtURLFlat[j], coverID, "KO");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AU:
|
case AU:
|
||||||
if(newID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
if(coverID[3] == 'W' && m_downloadPrioVal&C_TYPE_ZHCN)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLFlat[j], newID, "ZH");
|
url = makeURL(fmtURLFlat[j], coverID, "ZH");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -994,18 +971,15 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
fsop_WriteFile(path, download.data, download.size);
|
fsop_WriteFile(path, download.data, download.size);
|
||||||
}
|
}
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverID.c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, false))
|
if (CoverFlow.preCacheCover(coverID.c_str(), download.data, false))
|
||||||
{
|
{
|
||||||
++countFlat;
|
++countFlat;
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(path != NULL)
|
|
||||||
MEM2_free(path);
|
|
||||||
path = NULL;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CFLAT:
|
case CFLAT:
|
||||||
@ -1013,14 +987,16 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
custom = true;
|
custom = true;
|
||||||
if(!success && !m_thrdStop && c_gameTDB.IsLoaded() && c_altCase > 1 && custom)
|
if(!success && !m_thrdStop && c_gameTDB.IsLoaded() && c_altCase > 1 && custom)
|
||||||
{
|
{
|
||||||
char *path = fmt_malloc("%s/%s.png", m_picDir.c_str(), coverList[i].c_str());
|
memset(path, 0, sizeof(path));
|
||||||
if(path != NULL && !checkPNGFile(path))
|
strncpy(path, fmt("%s/%s.png", m_picDir.c_str(), coverID.c_str()), 255);
|
||||||
|
|
||||||
|
if(strlen(path) > 0 && !checkPNGFile(path))
|
||||||
{
|
{
|
||||||
// Try to get the front cover
|
// Try to get the front cover
|
||||||
if (m_thrdStop) break;
|
if (m_thrdStop) break;
|
||||||
for (u32 j = 0; !success && j < fmtURLCFlat.size() && !m_thrdStop; ++j)
|
for (u32 j = 0; !success && j < fmtURLCFlat.size() && !m_thrdStop; ++j)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, countryCode(newID));
|
url = makeURL(fmtURLCFlat[j], coverID, countryCode(coverID));
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg8", L"Full cover not found. Downloading from %s"), url.c_str()), listWeight + dlWeight * (float)step / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg8", L"Full cover not found. Downloading from %s"), url.c_str()), listWeight + dlWeight * (float)step / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
@ -1035,79 +1011,79 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
switch( o )
|
switch( o )
|
||||||
{
|
{
|
||||||
case EN:
|
case EN:
|
||||||
if(( newID[3] == 'E' || newID[3] == 'X' || newID[3] == 'Y' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
if(( coverID[3] == 'E' || coverID[3] == 'X' || coverID[3] == 'Y' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_EN )
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "EN");
|
url = makeURL(fmtURLCFlat[j], coverID, "EN");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case JA:
|
case JA:
|
||||||
if(newID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
if(coverID[3] == 'J' && m_downloadPrioVal&C_TYPE_JA)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "JA");
|
url = makeURL(fmtURLCFlat[j], coverID, "JA");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FR:
|
case FR:
|
||||||
if((newID[3] == 'F' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
if((coverID[3] == 'F' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_FR)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "FR");
|
url = makeURL(fmtURLCFlat[j], coverID, "FR");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DE:
|
case DE:
|
||||||
if((newID[3] == 'D' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
if((coverID[3] == 'D' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_DE)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "DE");
|
url = makeURL(fmtURLCFlat[j], coverID, "DE");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES:
|
case ES:
|
||||||
if((newID[3] == 'S' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
if((coverID[3] == 'S' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_ES)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "ES");
|
url = makeURL(fmtURLCFlat[j], coverID, "ES");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IT:
|
case IT:
|
||||||
if((newID[3] == 'I' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
if((coverID[3] == 'I' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_IT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "IT");
|
url = makeURL(fmtURLCFlat[j], coverID, "IT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NL:
|
case NL:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_NL)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "NL");
|
url = makeURL(fmtURLCFlat[j], coverID, "NL");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PT:
|
case PT:
|
||||||
if(newID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
if(coverID[3] == 'P' && m_downloadPrioVal&C_TYPE_PT)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "PT");
|
url = makeURL(fmtURLCFlat[j], coverID, "PT");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RU:
|
case RU:
|
||||||
if((newID[3] == 'R' || newID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
if((coverID[3] == 'R' || coverID[3] == 'P') && m_downloadPrioVal&C_TYPE_RU)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "RU");
|
url = makeURL(fmtURLCFlat[j], coverID, "RU");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KO:
|
case KO:
|
||||||
if(newID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
if(coverID[3] == 'K' && m_downloadPrioVal&C_TYPE_KO)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "KO");
|
url = makeURL(fmtURLCFlat[j], coverID, "KO");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AU:
|
case AU:
|
||||||
if((newID[3] == 'P' || newID[3] == 'Y' || newID[3] == 'X') && m_downloadPrioVal&C_TYPE_ZHCN)
|
if((coverID[3] == 'P' || coverID[3] == 'Y' || coverID[3] == 'X') && m_downloadPrioVal&C_TYPE_ZHCN)
|
||||||
{
|
{
|
||||||
url = makeURL(fmtURLCFlat[j], newID, "ZH");
|
url = makeURL(fmtURLCFlat[j], coverID, "ZH");
|
||||||
tdl = true;
|
tdl = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1134,18 +1110,15 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
fsop_WriteFile(path, download.data, download.size);
|
fsop_WriteFile(path, download.data, download.size);
|
||||||
}
|
}
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverList[i].c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
_setThrdMsg(wfmt(_fmt("dlmsg10", L"Making %s"), sfmt("%s.wfc", coverID.c_str()).c_str()), listWeight + dlWeight * (float)(step + 1) / (float)nbSteps);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
if (CoverFlow.preCacheCover(coverList[i].c_str(), download.data, false))
|
if (CoverFlow.preCacheCover(coverID.c_str(), download.data, false))
|
||||||
{
|
{
|
||||||
++countFlat;
|
++countFlat;
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(path != NULL)
|
|
||||||
MEM2_free(path);
|
|
||||||
path = NULL;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1154,9 +1127,9 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
}
|
}
|
||||||
if(c_gameTDB.IsLoaded())
|
if(c_gameTDB.IsLoaded())
|
||||||
c_gameTDB.CloseFile();
|
c_gameTDB.CloseFile();
|
||||||
coverList.clear();
|
coverIDList.clear();
|
||||||
//m_checksums.unload();
|
if(m_newID.loaded())
|
||||||
m_newID.unload();
|
m_newID.unload();
|
||||||
}
|
}
|
||||||
LWP_MutexLock(m_mutex);
|
LWP_MutexLock(m_mutex);
|
||||||
if (countFlat == 0)
|
if (countFlat == 0)
|
||||||
@ -1165,8 +1138,7 @@ int CMenu::_coverDownloader(bool missingOnly)
|
|||||||
_setThrdMsg(wfmt(_fmt("dlmsg9", L"%i/%i files downloaded. %i are front covers only."), count + countFlat, n, countFlat), 1.f);
|
_setThrdMsg(wfmt(_fmt("dlmsg9", L"%i/%i files downloaded. %i are front covers only."), count + countFlat, n, countFlat), 1.f);
|
||||||
LWP_MutexUnlock(m_mutex);
|
LWP_MutexUnlock(m_mutex);
|
||||||
m_thrdWorking = false;
|
m_thrdWorking = false;
|
||||||
//pluginCoverList.clear();
|
MEM2_free(buffer);
|
||||||
free(buffer);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1184,17 +1156,7 @@ void CMenu::_download(string gameId)
|
|||||||
m_thrdStop = false;
|
m_thrdStop = false;
|
||||||
m_thrdMessageAdded = false;
|
m_thrdMessageAdded = false;
|
||||||
|
|
||||||
/*if(gameId.size() && CoverFlow.getHdr()->type == TYPE_PLUGIN)
|
m_coverDLGameId = gameId;
|
||||||
{
|
|
||||||
char gamePath[256];
|
|
||||||
if(strchr(CoverFlow.getHdr()->path, '/') != NULL)
|
|
||||||
strncpy(gamePath, strrchr(CoverFlow.getHdr()->path, '/') + 1, sizeof(gamePath));
|
|
||||||
else
|
|
||||||
strncpy(gamePath, CoverFlow.getHdr()->path, sizeof(gamePath));
|
|
||||||
m_coverDLGameId = gamePath;
|
|
||||||
}
|
|
||||||
else*/
|
|
||||||
m_coverDLGameId = gameId;
|
|
||||||
|
|
||||||
while(!m_exit)
|
while(!m_exit)
|
||||||
{
|
{
|
||||||
@ -1218,7 +1180,7 @@ void CMenu::_download(string gameId)
|
|||||||
{
|
{
|
||||||
if ((m_btnMgr.selected(m_downloadBtnAll) || m_btnMgr.selected(m_downloadBtnMissing) || !gameId.empty()) && !m_thrdWorking)
|
if ((m_btnMgr.selected(m_downloadBtnAll) || m_btnMgr.selected(m_downloadBtnMissing) || !gameId.empty()) && !m_thrdWorking)
|
||||||
{
|
{
|
||||||
m_refreshGameList = true;
|
m_refreshGameList = true;//
|
||||||
bool dlAll = m_btnMgr.selected(m_downloadBtnAll);
|
bool dlAll = m_btnMgr.selected(m_downloadBtnAll);
|
||||||
m_btnMgr.show(m_downloadPBar);
|
m_btnMgr.show(m_downloadPBar);
|
||||||
m_btnMgr.setProgress(m_downloadPBar, 0.f);
|
m_btnMgr.setProgress(m_downloadPBar, 0.f);
|
||||||
|
@ -1055,6 +1055,8 @@ int CMenu::_getCFVersion()
|
|||||||
return m_cfg.getInt("PLUGIN_CFVERSION", m_plugin.PluginMagicWord, 1);
|
return m_cfg.getInt("PLUGIN_CFVERSION", m_plugin.PluginMagicWord, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(strlen(single_sourcebtn))
|
||||||
|
return m_cfg.getInt("PLUGIN_CFVERSION", single_sourcebtn, 1);
|
||||||
}
|
}
|
||||||
return m_cfg.getInt(_domainFromView(), "last_cf_mode", 1);
|
return m_cfg.getInt(_domainFromView(), "last_cf_mode", 1);
|
||||||
}
|
}
|
||||||
@ -1075,6 +1077,11 @@ void CMenu::_setCFVersion(int version)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(strlen(single_sourcebtn))
|
||||||
|
{
|
||||||
|
m_cfg.setInt("PLUGIN_CFVERSION", single_sourcebtn, version);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m_cfg.setInt(_domainFromView(), "last_cf_mode", version);
|
m_cfg.setInt(_domainFromView(), "last_cf_mode", version);
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ void CMenu::_sourceFlow()
|
|||||||
else
|
else
|
||||||
m_cfg.remove(SOURCEFLOW_DOMAIN, "current_item");
|
m_cfg.remove(SOURCEFLOW_DOMAIN, "current_item");
|
||||||
|
|
||||||
|
memset(single_sourcebtn, 0, 16);
|
||||||
memset(btn_selected, 0, 16);
|
memset(btn_selected, 0, 16);
|
||||||
strncpy(btn_selected, fmt("BUTTON_%i", hdr->settings[0]), 15);
|
strncpy(btn_selected, fmt("BUTTON_%i", hdr->settings[0]), 15);
|
||||||
source = m_source.getString(btn_selected, "source", "");
|
source = m_source.getString(btn_selected, "source", "");
|
||||||
@ -67,6 +68,7 @@ void CMenu::_sourceFlow()
|
|||||||
}
|
}
|
||||||
else if(source == "allplugins")
|
else if(source == "allplugins")
|
||||||
{
|
{
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
m_current_view = COVERFLOW_PLUGIN;
|
m_current_view = COVERFLOW_PLUGIN;
|
||||||
for(k = 0; k < m_numPlugins; ++k)
|
for(k = 0; k < m_numPlugins; ++k)
|
||||||
m_plugin.SetEnablePlugin(m_cfg, k, 2); /* force enable */
|
m_plugin.SetEnablePlugin(m_cfg, k, 2); /* force enable */
|
||||||
@ -75,8 +77,10 @@ void CMenu::_sourceFlow()
|
|||||||
{
|
{
|
||||||
magicNums.clear();
|
magicNums.clear();
|
||||||
magicNums = m_source.getStrings(btn_selected, "magic", ',');
|
magicNums = m_source.getStrings(btn_selected, "magic", ',');
|
||||||
if(magicNums.size() > 0 )
|
if(magicNums.size() > 0)
|
||||||
{
|
{
|
||||||
|
if(magicNums.size() > 1)
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
m_current_view = COVERFLOW_PLUGIN;
|
m_current_view = COVERFLOW_PLUGIN;
|
||||||
for(k = 0; k < m_numPlugins; ++k)
|
for(k = 0; k < m_numPlugins; ++k)
|
||||||
m_plugin.SetEnablePlugin(m_cfg, k, 1); /* force disable */
|
m_plugin.SetEnablePlugin(m_cfg, k, 1); /* force disable */
|
||||||
@ -271,8 +275,20 @@ bool CMenu::_Source()
|
|||||||
}
|
}
|
||||||
if(selectedBtns == 1)
|
if(selectedBtns == 1)
|
||||||
{
|
{
|
||||||
|
memset(single_sourcebtn, 0, 16);
|
||||||
memset(btn_selected, 0, 16);
|
memset(btn_selected, 0, 16);
|
||||||
strncpy(btn_selected, fmt("BUTTON_%i", sourceBtn), 15);
|
strncpy(btn_selected, fmt("BUTTON_%i", sourceBtn), 15);
|
||||||
|
|
||||||
|
source = m_source.getString(btn_selected, "source", "");
|
||||||
|
if(source == "allplugins")
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
|
else if(source == "plugin")
|
||||||
|
{
|
||||||
|
magicNums.clear();
|
||||||
|
magicNums = m_source.getStrings(btn_selected, "magic", ',');
|
||||||
|
if(magicNums.size() > 1)
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
|
}
|
||||||
_setSrcOptions();
|
_setSrcOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,6 +345,7 @@ bool CMenu::_Source()
|
|||||||
}
|
}
|
||||||
if(!m_multisource && i <12)
|
if(!m_multisource && i <12)
|
||||||
{
|
{
|
||||||
|
memset(single_sourcebtn, 0, 16);
|
||||||
exitSource = true;
|
exitSource = true;
|
||||||
m_catStartPage = 1;
|
m_catStartPage = 1;
|
||||||
if(source == "dml")
|
if(source == "dml")
|
||||||
@ -359,6 +376,7 @@ bool CMenu::_Source()
|
|||||||
}
|
}
|
||||||
else if(source == "allplugins")
|
else if(source == "allplugins")
|
||||||
{
|
{
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
m_current_view = COVERFLOW_PLUGIN;
|
m_current_view = COVERFLOW_PLUGIN;
|
||||||
for(k = 0; k < m_numPlugins; ++k)
|
for(k = 0; k < m_numPlugins; ++k)
|
||||||
m_plugin.SetEnablePlugin(m_cfg, k, 2); /* force enable */
|
m_plugin.SetEnablePlugin(m_cfg, k, 2); /* force enable */
|
||||||
@ -374,6 +392,8 @@ bool CMenu::_Source()
|
|||||||
magicNums = m_source.getStrings(btn_selected, "magic", ',');
|
magicNums = m_source.getStrings(btn_selected, "magic", ',');
|
||||||
if(magicNums.size() > 0)
|
if(magicNums.size() > 0)
|
||||||
{
|
{
|
||||||
|
if(magicNums.size() > 1)
|
||||||
|
strncpy(single_sourcebtn, btn_selected, 16);
|
||||||
for(vector<string>::iterator itr = magicNums.begin(); itr != magicNums.end(); itr++)
|
for(vector<string>::iterator itr = magicNums.begin(); itr != magicNums.end(); itr++)
|
||||||
{
|
{
|
||||||
s8 exist = m_plugin.GetPluginPosition(strtoul(itr->c_str(), NULL, 16));// make sure magic# is valid
|
s8 exist = m_plugin.GetPluginPosition(strtoul(itr->c_str(), NULL, 16));// make sure magic# is valid
|
||||||
@ -562,6 +582,7 @@ void CMenu::_setSrcOptions(void)
|
|||||||
|
|
||||||
void CMenu::_initSourceMenu()
|
void CMenu::_initSourceMenu()
|
||||||
{
|
{
|
||||||
|
memset(single_sourcebtn, 0, 16);
|
||||||
m_use_source = false;
|
m_use_source = false;
|
||||||
themeName = m_cfg.getString("GENERAL", "theme", "default").c_str();
|
themeName = m_cfg.getString("GENERAL", "theme", "default").c_str();
|
||||||
if(!m_source.load(fmt("%s/%s/%s", m_sourceDir.c_str(), themeName, SOURCE_FILENAME)))
|
if(!m_source.load(fmt("%s/%s/%s", m_sourceDir.c_str(), themeName, SOURCE_FILENAME)))
|
||||||
|
@ -226,7 +226,9 @@ vector<dir_discHdr> Plugin::ParseScummvmINI(Config &ini, const char *Device, u32
|
|||||||
{
|
{
|
||||||
if(strlen(GameDomain) < 2)
|
if(strlen(GameDomain) < 2)
|
||||||
break;
|
break;
|
||||||
const char *GameName = ini.getString(GameDomain, "description").c_str();
|
char GameName[64];
|
||||||
|
memset(GameName, 0, sizeof(GameName));
|
||||||
|
strncpy(GameName, ini.getString(GameDomain, "description").c_str(), 63);
|
||||||
if(strlen(GameName) < 2 || strncasecmp(Device, ini.getString(GameDomain, "path").c_str(), 2) != 0)
|
if(strlen(GameName) < 2 || strncasecmp(Device, ini.getString(GameDomain, "path").c_str(), 2) != 0)
|
||||||
{
|
{
|
||||||
GameDomain = ini.nextDomain().c_str();
|
GameDomain = ini.nextDomain().c_str();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user