예제 #1
0
파일: main.c 프로젝트: haroturbo/PRO-JAP
int main_thread(SceSize size, void *argp)
{
	int thid;
	
	u32 psp_model;

	thid = get_thread_id("SCE_VSH_GRAPHICS");

	if(thid < 0) {
		no_vsh = 1;
	}

	sctrlSEGetConfig(&g_config);
	vpl_init();
	suspend_vsh_thread();
	proDebugScreenInit();
	psp_model = kuKernelGetModel();
	
	fontlist_init(&g_font_list);
	get_fontlist(&g_font_list, fontpath);
	get_fontlist(&g_font_list, fontgopath);
	load_recovery_font_select();

	if(g_cur_font_select[0] != '\0') {
		proDebugScreenSetFontFile(g_cur_font_select, 1);
	}
	
	if(zenkaku!=0){
	fontlist_init(&g_font_list);
	get_fontlist(&g_font_list, kanji);
	get_fontlist(&g_font_list, kanjigo);
	}
	
	proDebugScreenClearLineDisable();
	get_confirm_button();
	main_menu();
	recovery_exit();

	return 0;
}
예제 #2
0
파일: gui.c 프로젝트: sseary/procfw-chn
// exit menu when returns 1
static int menu_ctrl(struct Menu *menu)
{
	u32 key;
	char buf[80];
	int NEW_MAX_MENU_NUMBER_PER_PAGE = ((g_messages == g_messages_chs) || (g_messages == g_messages_cht)) ? (MAX_MENU_NUMBER_PER_PAGE-10) : (MAX_MENU_NUMBER_PER_PAGE);///+

	key = ctrl_read();

	if(key & PSP_CTRL_UP) {
		get_sel_index(menu, -1);
	} else if(key & PSP_CTRL_DOWN) {
		get_sel_index(menu, +1);
	} else if(key & PSP_CTRL_RIGHT) {
		menu_change_value(menu, 1);
	} else if(key & PSP_CTRL_LEFT) {
		menu_change_value(menu, -1);
	} else if(key & PSP_CTRL_LTRIGGER) {
		if(menu->cur_sel > NEW_MAX_MENU_NUMBER_PER_PAGE) {///|if(menu->cur_sel > MAX_MENU_NUMBER_PER_PAGE) {
			menu->cur_sel -= NEW_MAX_MENU_NUMBER_PER_PAGE;///|menu->cur_sel -= MAX_MENU_NUMBER_PER_PAGE;
		} else {
			menu->cur_sel = 0;
		}
	} else if(key & PSP_CTRL_RTRIGGER) {
		if(menu->cur_sel + NEW_MAX_MENU_NUMBER_PER_PAGE < menu->submenu_size) {///|if(menu->cur_sel + MAX_MENU_NUMBER_PER_PAGE < menu->submenu_size) {
			menu->cur_sel += NEW_MAX_MENU_NUMBER_PER_PAGE;///|menu->cur_sel += MAX_MENU_NUMBER_PER_PAGE;
		} else {
			menu->cur_sel = menu->submenu_size;
		}
	} else if(key & g_ctrl_OK) {
		struct MenuEntry *entry;
		int (*enter_callback)(struct MenuEntry *);

		if(menu->cur_sel == 0) {
			goto exit;
		}

		entry = &menu->submenu[menu->cur_sel-1];
		enter_callback = entry->enter_callback;

		if(entry->type == TYPE_SUBMENU) {
			sprintf(buf, "> %s...", g_messages[ENTERING]);
			set_bottom_info(buf, 0xFF);
			frame_end();
			sceKernelDelayThread(ENTER_DELAY);
			set_bottom_info("", 0);
		}
		
		if(enter_callback != NULL) {
			(*enter_callback)(entry);
		}
	} else if(key & g_ctrl_CANCEL) {
exit:
		sprintf(buf, "> %s...", g_messages[EXITING]);
		set_bottom_info(buf, 0xFF);
		frame_end();
		sceKernelDelayThread(EXIT_DELAY);
		set_bottom_info("", 0);

		return 1;
	} else if(key & PSP_CTRL_SELECT) {
		recovery_exit();
		
		return 1;
	}

	return 0;
}