mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-19 17:59:16 +01:00
d5ba67e305
now, when doing a full update/full channel update, whatever .lang files are in the language path should get updated as well. changed thread priority (70->75) for GX thread since it wasn't originally created to be drawing as many different images at once as we are throwing at it. hopefully this will fix some of the black artifacts that are popping up on the screen during the gameinfo and homebrew info windows.
72 lines
1.9 KiB
C++
72 lines
1.9 KiB
C++
/****************************************************************************
|
|
* languagefile updater
|
|
* for USB Loader GX *giantpune*
|
|
***************************************************************************/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <sys/dir.h>
|
|
|
|
#include "UpdateLanguage.h"
|
|
#include "listfiles.h"
|
|
#include "menu.h"
|
|
#include "network/networkops.h"
|
|
#include "network/http.h"
|
|
|
|
int updateLanguageFiles()
|
|
{
|
|
char languageFiles[20][MAXLANGUAGEFILES];
|
|
|
|
//get all the files in the language path
|
|
int countfiles = GetAllDirFiles(Settings.languagefiles_path);
|
|
|
|
//give up now if we didn't find any
|
|
if(countfiles==0)return -2;
|
|
|
|
//now from the files we got, get only the .lang files
|
|
for (int cnt = 0; cnt < countfiles; cnt++) {
|
|
char filename[64];
|
|
strncpy(filename, GetFileName(cnt),63);
|
|
if (strcasestr(filename,".lang"))
|
|
{
|
|
strcpy(languageFiles[cnt],filename);
|
|
}
|
|
}
|
|
|
|
//we assume that the network will already be init by another function
|
|
// ( that has gui eletents in it because this one doesn't)
|
|
int done =0,j=0;
|
|
if(IsNetworkInit()) {
|
|
//build the URL, save path, and download each file and save it
|
|
while (j<countfiles)
|
|
{
|
|
char savepath[150];
|
|
char codeurl[200];
|
|
snprintf(codeurl, sizeof(codeurl), "http://usbloader-gui.googlecode.com/svn/trunk/Languages/%s",languageFiles[j]);
|
|
snprintf(savepath, sizeof(savepath), "%s%s",Settings.languagefiles_path,languageFiles[j]);
|
|
|
|
struct block file = downloadfile(codeurl);
|
|
|
|
if(file.data != NULL){
|
|
FILE * pfile;
|
|
pfile = fopen(savepath, "wb");
|
|
fwrite(file.data,1,file.size,pfile);
|
|
fclose(pfile);
|
|
free(file.data);
|
|
done++;
|
|
}
|
|
|
|
j++;
|
|
}
|
|
|
|
}
|
|
//if there was no network init
|
|
else return -1;
|
|
|
|
// return the number of files we updated
|
|
return done;
|
|
}
|
|
|
|
|
|
|