#include #include #include #include #include "sys.h" #include "wpad.h" //#include "wkb.h" /* Constants */ #define MAX_WIIMOTES 4 int start; void __Wpad_PowerCallback(s32 chan) { /* Poweroff console */ Sys_Shutdown(); } s32 Wpad_Init(void) { s32 ret; /* Initialize Wiimote subsystem */ ret = WPAD_Init(); if (ret < 0) return ret; /* Set POWER button callback */ WPAD_SetPowerButtonCallback(__Wpad_PowerCallback); return ret; } void Wpad_Disconnect(void) { u32 cnt; /* Disconnect Wiimotes */ for (cnt = 0; cnt < MAX_WIIMOTES; cnt++) WPAD_Disconnect(cnt); /* Shutdown Wiimote subsystem */ WPAD_Shutdown(); } u32 Wpad_GetButtons(void) { u32 buttons = 0, cnt; /* Scan pads */ WPAD_ScanPads(); /* Get pressed buttons */ for (cnt = 0; cnt < MAX_WIIMOTES; cnt++) buttons |= WPAD_ButtonsDown(cnt); return buttons; } u32 Wpad_WaitButtons(void) { u32 buttons = 0; /* Wait for button pressing */ while (!buttons) { buttons = Wpad_GetButtons(); VIDEO_WaitVSync(); } return buttons; } u32 Wpad_HeldButtons(void) { u32 buttons = 0, cnt; /* Scan pads */ WPAD_ScanPads(); /* Get pressed buttons */ for (cnt = 0; cnt < MAX_WIIMOTES; cnt++) buttons |= WPAD_ButtonsHeld(cnt); return buttons; } bool Wpad_TimeButton(void) { u32 buttons = 1; time_t start,end; time (&start); int dif; /* Wait for button pressing */ while (buttons) { buttons = Wpad_HeldButtons(); VIDEO_WaitVSync(); time (&end); dif = difftime (end,start); if(dif>=2) return true; } return false; }