1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-11-29 15:22:09 +00:00

Add main menu

This commit is contained in:
Such Meme, Many Skill 2019-08-18 20:00:16 +02:00
parent a094ac4496
commit 7a35d2b00c
8 changed files with 61 additions and 28 deletions

View file

@ -31,8 +31,6 @@
#include "meme/main.h" #include "meme/main.h"
#include "meme/utils.h" #include "meme/utils.h"
#include "keys/keys.h"
sdmmc_t sd_sdmmc; sdmmc_t sd_sdmmc;
sdmmc_storage_t sd_storage; sdmmc_storage_t sd_storage;
__attribute__ ((aligned (16))) FATFS sd_fs; __attribute__ ((aligned (16))) FATFS sd_fs;

View file

@ -14,6 +14,9 @@
#include "../mem/emc.h" #include "../mem/emc.h"
#include "../mem/sdram.h" #include "../mem/sdram.h"
#include "../soc/t210.h" #include "../soc/t210.h"
#include "../sec/se.h"
#include "../utils/types.h"
#include "../keys/key_sources.inl"
extern void reloc_patcher(u32 payload_dst, u32 payload_src, u32 payload_size); extern void reloc_patcher(u32 payload_dst, u32 payload_src, u32 payload_size);
extern boot_cfg_t b_cfg; extern boot_cfg_t b_cfg;

View file

@ -53,7 +53,7 @@ void meme_clearscreen(){
gfx_clear_grey(0x1B); gfx_clear_grey(0x1B);
gfx_con_setpos(0, 0); gfx_con_setpos(0, 0);
gfx_box(0, 0, 719, 15, COLOR_WHITE); gfx_box(0, 0, 719, 15, COLOR_WHITE);
gfx_printf("%k%pTegraExplorer, by SuchMemeManySkill\n%k%p", COLOR_DEFAULT, COLOR_WHITE, COLOR_WHITE, COLOR_DEFAULT); gfx_printf("%k%pTegraExplorer\n%k%p", COLOR_DEFAULT, COLOR_WHITE, COLOR_WHITE, COLOR_DEFAULT);
} }
void _printwithhighlight(int offset, int folderamount, char *items[], int highlight, unsigned int *muhbits, int *filesizes){ void _printwithhighlight(int offset, int folderamount, char *items[], int highlight, unsigned int *muhbits, int *filesizes){

View file

@ -7,14 +7,16 @@
#include "mainfunctions.h" #include "mainfunctions.h"
#include "../libs/fatfs/ff.h" #include "../libs/fatfs/ff.h"
#include "../storage/sdmmc.h" #include "../storage/sdmmc.h"
#include "../utils/util.h"
#include "../sec/se.h"
#include "graphics.h" #include "graphics.h"
#include "external_utils.h"
extern bool sd_mount(); extern bool sd_mount();
extern void sd_unmount();
void meme_main(){ void meme_main(){
utils_gfx_init(); utils_gfx_init();
//static const u32 colors[7] = {COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_VIOLET, COLOR_DEFAULT};
//gfx_printf("%k%pTegraExplorer, made by SuchMemeManySkill \n%k%p", colors[6], colors[3], colors[3], colors[6]);
sdmmc_storage_t storage; sdmmc_storage_t storage;
sdmmc_t sdmmc; sdmmc_t sdmmc;
@ -22,23 +24,62 @@ void meme_main(){
sdmmc_storage_init_mmc(&storage, &sdmmc, SDMMC_4, SDMMC_BUS_WIDTH_8, 4); sdmmc_storage_init_mmc(&storage, &sdmmc, SDMMC_4, SDMMC_BUS_WIDTH_8, 4);
sdmmc_storage_set_mmc_partition(&storage, 1); sdmmc_storage_set_mmc_partition(&storage, 1);
//f_rename("sd:/yeet.txt", "sd:/yote.txt"); char *options[5];
char *itemsinfolder[1000];
unsigned int muhbits[1000];
bool sd_mounted = false; bool sd_mounted = false;
sd_mounted = sd_mount(); sd_mounted = sd_mount();
char *itemsinfolder[500]; while (1){
unsigned int muhbits[500]; int i = 0, ret = 0;
if (sd_mounted){ if (sd_mounted){
addchartoarray("[SD:/] SD card", options, i);
i++;
}
else messagebox("\nSD INIT FAILED");
addchartoarray("\nAbout", options, i);
addchartoarray("Exit", options, i+1);
meme_clearscreen();
ret = gfx_menulist(32, options, (i + 2));
if (strcmp(options[ret - 1], "[SD:/] SD card") == 0){
sdexplorer(itemsinfolder, muhbits); sdexplorer(itemsinfolder, muhbits);
}
else if (strcmp(options[ret - 1], "\nAbout") == 0){
messagebox(ABOUT_MESSAGE);
}
else {
meme_clearscreen();
addchartoarray("Back", options, 0);
addchartoarray("\nReboot to RCM", options, 1);
addchartoarray("Reboot normally", options, 2);
addchartoarray("Power off", options, 3);
ret = gfx_menulist(32, options, 4);
if (ret != 1) sd_unmount();
switch(ret){
case 2:
reboot_rcm();
case 3:
reboot_normal();
case 4:
power_off();
default:
break;
}
}
}
//if (sd_mounted){
//write file and folder menu //write file and folder menu
//make clipboard and shit like that //make clipboard and shit like that
//figure out time from keys.c //figure out time from keys.c
//figure out how to reboot to payloads https://github.com/CTCaer/hekate/blob/101c8bc1d0813da10016be771a9919c9e8112277/bootloader/main.c#L266 //figure out how to reboot to payloads https://github.com/CTCaer/hekate/blob/101c8bc1d0813da10016be771a9919c9e8112277/bootloader/main.c#L266
gfx_printf("%k\n\nExited main loop, vol+ to reboot to rcm\nvol- to reboot normally\npower to power off\n", COLOR_GREEN); //gfx_printf("%k\n\nExited main loop, vol+ to reboot to rcm\nvol- to reboot normally\npower to power off\n", COLOR_GREEN);
} //}
else gfx_printf("%k%pSD INIT FAILED\n\nvol+ to reboot to rcm\nvol- to reboot normally\npower to power off", COLOR_RED, COLOR_DEFAULT); //else gfx_printf("%k%pSD INIT FAILED\n\nvol+ to reboot to rcm\nvol- to reboot normally\npower to power off", COLOR_RED, COLOR_DEFAULT);
utils_waitforpower(); //utils_waitforpower();
} }

View file

@ -1,3 +1,5 @@
#pragma once #pragma once
#define ABOUT_MESSAGE "\nCreator: Such Meme, Many Skill#2921\nCool guy: Denn\nTesters: PhazonicRidley, huhen\n\n\nProject based on code from:\n- Lockpick_RCM\n- Hekate"
void meme_main(); void meme_main();

View file

@ -74,7 +74,7 @@ void sdexplorer(char *items[], unsigned int *muhbits){
gfx_con_setpos(0, 0); gfx_con_setpos(0, 0);
gfx_box(0, 0, 719, 15, COLOR_WHITE); gfx_box(0, 0, 719, 15, COLOR_WHITE);
folderamount = readfolder(items, muhbits, path); folderamount = readfolder(items, muhbits, path);
gfx_printf("%k%pTegraExplorer, by SuchMemeManySkill %d\n%k%p", COLOR_DEFAULT, COLOR_WHITE, folderamount - 2, COLOR_WHITE, COLOR_DEFAULT); gfx_printf("%k%pTegraExplorer %d\n%k%p", COLOR_DEFAULT, COLOR_WHITE, folderamount - 2, COLOR_WHITE, COLOR_DEFAULT);
value = fileexplorergui(items, muhbits, path, folderamount); value = fileexplorergui(items, muhbits, path, folderamount);
if (value == 1) { if (value == 1) {

View file

@ -64,16 +64,6 @@ int getfilesize(const char *path){
return fno.fsize; return fno.fsize;
} }
void utils_waitforpower(){
u32 btn = btn_wait();
if (btn & BTN_VOL_UP)
reboot_rcm();
else if (btn & BTN_VOL_DOWN)
reboot_normal();
else
power_off();
}
void addchartoarray(char *add, char *items[], int spot){ void addchartoarray(char *add, char *items[], int spot){
size_t size = strlen(add) + 1; size_t size = strlen(add) + 1;
items[spot] = (char*) malloc (size); items[spot] = (char*) malloc (size);

View file

@ -8,7 +8,6 @@
#define PATHSIZE 512 #define PATHSIZE 512
void utils_gfx_init(); void utils_gfx_init();
void utils_waitforpower();
void removepartpath(char *path); void removepartpath(char *path);
void addpartpath(char *path, char *add); void addpartpath(char *path, char *add);
int readfolder(char *items[], unsigned int *muhbits, const char *path); int readfolder(char *items[], unsigned int *muhbits, const char *path);