finally got theme deletion working + qr stuff

Theme deletion [SDMC] now works, although no button currently has it assigned. The QR reader now works properly with Unicode filenames.
This commit is contained in:
Helloman892
2017-09-07 22:36:44 +01:00
parent dc1cbda232
commit 6b5b391d7b
4 changed files with 24 additions and 20 deletions

View File

@@ -158,7 +158,15 @@ Result get_themes(Theme_s **themes_list, int *theme_count)
if (R_FAILED(res))
return res;
if (*themes_list != NULL) //used for QR reading and also for theme deletion
{
free(*themes_list);
*themes_list = NULL;
*theme_count = 0;
}
u32 entries_read = 1;
while (entries_read)
{
FS_DirectoryEntry entry = {0};
@@ -196,25 +204,18 @@ Result get_themes(Theme_s **themes_list, int *theme_count)
return res;
}
void add_theme(Theme_s **themes_list, int *theme_count, char *path, char *filename)
void del_theme(u16 *path)
{
*theme_count += 1;
*themes_list = realloc(*themes_list, (*theme_count) * sizeof(Theme_s));
Theme_s *current_theme = &(*themes_list)[*theme_count - 1];
memset(current_theme, 0, sizeof(Theme_s));
u16 theme_path[0x106] = {0};
utf8_to_utf16(theme_path, (u8*)path, 0x106);
u16 ufilename[0x106] = {0};
utf8_to_utf16(ufilename, (u8*)filename, 0x106);
memcpy(current_theme->path, theme_path, 0x106 * sizeof(u16));
current_theme->is_zip = true;
ssize_t iconID = TEXTURE_PREVIEW + *theme_count;
parse_smdh(current_theme, iconID, ufilename);
Handle dir_handle;
Result res = FSUSER_OpenDirectory(&dir_handle, ArchiveSD, fsMakePath(PATH_UTF16, path));
if (R_SUCCEEDED(res))
{
FSDIR_Close(dir_handle);
FSUSER_DeleteDirectoryRecursively(ArchiveSD, fsMakePath(PATH_UTF16, path));
} else
{
FSUSER_DeleteFile(ArchiveSD, fsMakePath(PATH_UTF16, path));
}
}
Result bgm_install(Theme_s bgm_to_install)