Exemple #1
0
static bool HardwareInit(DEV_ID DevId)
{
	switch(DevId)
	{
		case DEV_ID_SD:
			if(!IsCardLink())
			{
				return FALSE;
			}
			FSDeInit(DEV_ID_SD);
			if(SdCardInit())	
			{
				return FALSE;
			}
			if(!FSInit(DEV_ID_SD))
			{
				return FALSE;
			}
			return TRUE;
		case DEV_ID_USB:
			Usb2SetDetectMode(1, 0);
			UsbSetCurrentPort(UDISK_PORT_NUM);
			if(!IsUDiskLink())
			{
				return FALSE;
			}
			FSDeInit(DEV_ID_SD);
			FSDeInit(DEV_ID_USB);
			if(!HostStorInit())
			{
				return FALSE;
			}
			if(!FSInit(DEV_ID_USB))
			{
				return FALSE;
			}
			return TRUE;
		default:
			break;
	}
	return FALSE;
}
Exemple #2
0
int main(){
	if (Initialize())
		while (1);

	//7.X Keys stuff
	File KeyFile;
	const char *keyfile = "/slot0x25KeyX.bin";
	if(FileOpen(&KeyFile, keyfile, 0)){
		uint8_t keyX[16];
		FileRead(&KeyFile, keyX, 16, 0);
		FileClose(&KeyFile);
		setup_aeskeyX(0x25, keyX);
	}else{
		if (sysver < 7) {
			ConsoleInit();
			ConsoleSetTitle(strings[STR_WARNING]);
			print(strings[STR_ERROR_OPENING], keyfile);
			print(strings[STR_WARNING_KEYFILE]);
			print(strings[STR_PRESS_BUTTON_ACTION], strings[STR_BUTTON_A], strings[STR_CONTINUE]);
			ConsoleShow();
			WaitForButton(BUTTON_A);
		}
	}

	//That's the Main Menu initialization, easy and cool
	OpenAnimation();
	MenuInit(&MainMenu);
	MenuShow();
	while (true) {
		uint32_t pad_state = InputWait();
		if (pad_state & (BUTTON_DOWN | BUTTON_RIGHT | BUTTON_R1)) MenuNextSelection(); //I try to support every theme style
		if (pad_state & (BUTTON_UP   | BUTTON_LEFT  | BUTTON_L1)) MenuPrevSelection();
		if (pad_state & BUTTON_A)    	{ OpenAnimation(); MenuSelect(); }
		if (pad_state & BUTTON_SELECT)	{ fadeOut(); ShutDown(); }
		if (pad_state & BUTTON_START)	{ fadeOut(); returnHomeMenu(); }
		TryScreenShot();
		MenuShow();
	}

	FSDeInit();
	return 0;
}
Exemple #3
0
int main(){
	Initialize();
	DrawString(TOP_SCREEN, "SUPPORT THE ORIGINAL, NOT THE IMITATION!", 75, 240-10, GREY, BLACK);
	//7.X Keys stuff
	File KeyFile;
	if(FileOpen(&KeyFile, "/slot0x25KeyX.bin", 0)){
		u8 keyX[16];
		FileRead(&KeyFile, keyX, 16, 0);
		FileClose(&KeyFile);
		setup_aeskeyX(0x25, keyX);
		DrawString(TOP_SCREEN, " NewKeyX ", 0, 240-8, GREEN, BLACK);
	}else{
		if(GetSystemVersion() < 3){
			ConsoleInit();
			print("WARNING:\n\nCannot find slot0x25KeyX.bin.\nSome titles decryption will fail,\nand some some EmuNANDs will not boot.\n\nPress A to continue...\n");
			ConsoleShow();
			WaitForButton(BUTTON_A);
		}
		DrawString(TOP_SCREEN, " NewKeyX ", 0, 240-8, RED, BLACK);
	}
	DrawString(TOP_SCREEN, " EmuNAND ", 0, 240-16, checkEmuNAND() ? GREEN : RED, BLACK);

	//That's the Main Menu initialization, easy and cool
	MenuInit(&MainMenu);
	MenuShow();

    while (true) {
		DrawString(TOP_SCREEN,  "[SELECT] Reboot", 349-18*8, 181-24-8, RED, BLACK);
		DrawString(TOP_SCREEN,  "[START]  Shutdown", 349-18*8, 181-24, RED, BLACK);
        u32 pad_state = InputWait();
		if(pad_state & BUTTON_DOWN) 	MenuNextSelection();
		if(pad_state & BUTTON_UP)   	MenuPrevSelection();
		if(pad_state & BUTTON_A)    	MenuSelect();
		if(pad_state & BUTTON_SELECT)	returnHomeMenu();
		if(pad_state & BUTTON_START)	ShutDown();
		TryScreenShot();
		MenuShow();
    }

    FSDeInit();
    return 0;
}
Exemple #4
0
int main(){
	Initialize();
	//7.X Keys stuff
	File KeyFile;
	if(FileOpen(&KeyFile, "/slot0x25KeyX.bin", 0)){
		u8 keyX[16];
		FileRead(&KeyFile, keyX, 16, 0);
		FileClose(&KeyFile);
		setup_aeskeyX(0x25, keyX);
	}else{
		if(GetSystemVersion() < 3){
			ConsoleInit();
			ConsoleSetTitle("          WARNING");
			print("WARNING:\n\nCannot find slot0x25KeyX.bin. If\nyour firmware version is less than\n7.X, some titles decryption will\nfail, and some EmuNANDs will not\nboot.\n\nPress A to continue...\n");
			ConsoleShow();
			WaitForButton(BUTTON_A);
		}
	}

	//That's the Main Menu initialization, easy and cool
	MenuInit(&MainMenu);
	MenuShow();

	while (true) {
		u32 pad_state = InputWait();
		if (pad_state & (BUTTON_DOWN | BUTTON_RIGHT | BUTTON_R1)) MenuNextSelection(); //I try to support every theme style
		if (pad_state & (BUTTON_UP   | BUTTON_LEFT  | BUTTON_L1)) MenuPrevSelection();
		if(pad_state & BUTTON_A)    	MenuSelect();
		if(pad_state & BUTTON_SELECT)	ShutDown();
		if(pad_state & BUTTON_START)	returnHomeMenu();
		TryScreenShot();
		MenuShow();
	}

	FSDeInit();
	return 0;
}
//设备状态消息(Plugin、PlugOut)处理,成功处理 返回TRUE,否则返回FALSE
bool SysDeviceMsgCtrl(uint16_t Msg)
{
//	uint32_t CurMode;
	uint32_t DevModuleId;

	switch(Msg)
	{
		case MSG_SD_PLUGIN:
			if((gSys.CurModuleID == MODULE_ID_USB_READER) || (gSys.CurModuleID == MODULE_ID_USB_AUDIO_READER))
            {
                return TRUE;
            }
		case MSG_USB_PLUGIN:
		case MSG_PC_PLUGIN:
		case MSG_LINEIN_PLUGIN:
		case MSG_RTC_START_ALARM_REMIND:
            if((gSys.CurModuleID == MODULE_ID_RECORDER) && (gSys.RecordState == RECORD_STATE_REC))
            {
                return TRUE;
            }

			gSys.NextModuleID = GetModeId(Msg);
			return GotoNextMode();	

		case MSG_SD_PLUGOUT:		
		case MSG_USB_PLUGOUT:
		case MSG_PC_PLUGOUT:
		case MSG_LINEIN_PLUGOUT:
		case MSG_RTC_STOP_ALARM_REMIND:
			if(Msg == MSG_SD_PLUGOUT)
			{
				FSDeInit(DEV_ID_SD);
			}
			else if(Msg == MSG_USB_PLUGOUT)
			{
				FSDeInit(DEV_ID_USB);
			}
	
			DevModuleId = GetModeId(Msg);
			if(DevModuleId != gSys.CurModuleID)
			{
				//拔出的不是当前模式对应的设备,则忽略该事件
				return FALSE;
			}
			//拔出的当前模式对应的设备,则按照优先顺序切到下一个模式
			gSys.NextModuleID = GetNextModeIdByProi(MODULE_ID_UNKNOWN);
			return GotoNextMode();			
			
		case MSG_BT_HF_INTO_MODE:
			if(gSys.NextModuleID == MODULE_ID_BT_HF || gSys.CurModuleID == MODULE_ID_BT_HF)
				return FALSE;
			gSys.NextModuleID = MODULE_ID_BT_HF;
			return GotoNextMode();
		case MSG_BT_HF_OUT_MODE:
			APP_DBG("MSG_BT_HF_OUT_MODE SetNextMode:%d\n", gSys.NextModuleID);
			return GotoNextMode();

		// 蓝牙提示音
		case MSG_BT_CONNECTED:
			SoundRemind(SOUND_BT_CONNECT);
			return FALSE;

		case MSG_BT_DISCONNECTED:
			SoundRemind(SOUND_BT_DISCONNECT);
			return FALSE;
		case MSG_BT_PHONE_CALL_INCOMING:
			return FALSE;


        case MSG_MIC_PLUGIN:
			if(gSys.CurModuleID != MODULE_ID_RECORDER)
			{
				SoundRemind(SOUND_MIC_INSERT);  
			}

			if(gSys.CurModuleID == MODULE_ID_LINEIN)
			{
				AudioAnaSetChannel(AUDIO_CH_MIC_LINEIN);
			}
			else if(gSys.CurModuleID == MODULE_ID_RADIO)
			{
				AudioAnaSetChannel(AUDIO_CH_MIC_FM);
			}
			else if(gSys.CurModuleID == MODULE_ID_RECORDER)
			{
				if(gSys.RecordSource == RECORD_SOURCE_LINEIN)
				{
					AudioAnaSetChannel(AUDIO_CH_MIC_LINEIN);
				}
				else if(gSys.RecordSource == RECORD_SOURCE_FM)
				{
					AudioAnaSetChannel(AUDIO_CH_MIC_FM);
				}
			}
			else 
			{
				AudioAnaSetChannel(AUDIO_CH_MIC);
			}	

			return FALSE;
			
		case MSG_MIC_PLUGOUT:
			if(gSys.CurModuleID != MODULE_ID_RECORDER)
			{
				SoundRemind(SOUND_MIC_PULLOUT);  
			}

			if(gSys.CurModuleID == MODULE_ID_LINEIN)
			{
				AudioAnaSetChannel(AUDIO_CH_LINEIN);
			}
			else if(gSys.CurModuleID == MODULE_ID_RADIO)
			{
				AudioAnaSetChannel(AUDIO_CH_FM);
			}
			else if(gSys.CurModuleID == MODULE_ID_RECORDER)
			{
				if(gSys.RecordSource == RECORD_SOURCE_LINEIN)
				{
					AudioAnaSetChannel(AUDIO_CH_LINEIN);
				}
				else if(gSys.RecordSource == RECORD_SOURCE_FM)
				{
					AudioAnaSetChannel(AUDIO_CH_FM);
				}
			}
			else 
			{
				AudioAnaSetChannel(AUDIO_CH_NONE);
			}	
			return FALSE;
			
		default:
			break;
	}

	return FALSE;
}