s32 menu_update_index (s32 idx, struct menu_t *menu) { s32 newidx = 0; s32 count = menu_get_element_count(menu); newidx = idx < 0 ? count - 1 : idx >= count ? 0 : idx; return newidx; }
int menu_update_index (int idx, struct menu_t *menu) { int newidx = 0; int count = menu_get_element_count(menu); newidx = idx < 0 ? count-1:idx >= count ? 0:idx; return newidx; }
s32 print_menu (s32 idx, struct menu_t *menu) { s32 i; s32 newidx; s32 count = menu_get_element_count(menu); newidx = menu_update_index(idx, menu); for (i=0; i<count; i++) { if (newidx == i) printf("[ %s ]\n", menu_get_element_name(i, menu)); else printf(" %s \n", menu_get_element_name(i, menu)); } return newidx; }
s32 print_file_list (s32 idx, struct menu_t *menu) { s32 i = 0; s32 newidx; DIR *dp; struct dirent *entry; char *filename = 0; s32 totalfiles = 0; s32 num_printed = 0; consoleClear(); printf("ARM9 payload (%s):\n\n\n", BRAHMADIR); printf("===========================\n"); s32 count = menu_get_element_count(menu); newidx = menu_update_index(idx, menu); if((dp = opendir(BRAHMADIR))) { for (i=0; i<count; i++) { if ((entry = readdir(dp)) != 0) { filename = entry->d_name; } else { filename = "---"; } if (newidx == i) printf("[ %s ] %s\n", menu_get_element_name(i, menu), filename); else printf(" %s %s\n", menu_get_element_name(i, menu), filename); } closedir(dp); } else { printf("[!] Could not open '%s'\n", BRAHMADIR); } printf("===========================\n\n"); printf("A: Confirm\n"); printf("B: Back\n"); return newidx; }
s32 menu_is_valid_index (s32 idx, struct menu_t *menu) { return (menu != 0 && (idx >= 0 && idx < menu_get_element_count(menu))); }