void PSPSaveDialog::DisplaySaveList(bool canMove) { lock_guard guard(paramLock); static int upFramesHeld = 0; static int downFramesHeld = 0; for (int displayCount = 0; displayCount < param.GetFilenameCount(); displayCount++) { int textureColor = 0xFFFFFFFF; auto fileInfo = param.GetFileInfo(displayCount); if (fileInfo.size == 0 && fileInfo.texture != NULL) textureColor = 0xFF777777; // Calc save image position on screen float w, h , x, b; float y = 97; if (displayCount != currentSelectedSave) { w = 81; h = 45; x = 58.5f; } else { w = 144; h = 80; x = 27; b = 1.2; PPGeDrawRect(x-b, y-b, x+w+b, y, CalcFadedColor(0xD0FFFFFF)); // top border PPGeDrawRect(x-b, y, x, y+h, CalcFadedColor(0xD0FFFFFF)); // left border PPGeDrawRect(x-b, y+h, x+w+b, y+h+b, CalcFadedColor(0xD0FFFFFF)); //bottom border PPGeDrawRect(x+w, y, x+w+b, y+h, CalcFadedColor(0xD0FFFFFF)); //right border } if (displayCount < currentSelectedSave) y -= 13 + 45 * (currentSelectedSave - displayCount); else if (displayCount > currentSelectedSave) y += 48 + 45 * (displayCount - currentSelectedSave); // Skip if it's well outside the screen. if (y > 472.0f || y < -200.0f) continue; int tw = 256; int th = 256; if (fileInfo.texture != NULL) { fileInfo.texture->SetTexture(); tw = fileInfo.texture->Width(); th = fileInfo.texture->Height(); PPGeDrawImage(x, y, w, h, 0, 0, 1, 1, tw, th, textureColor); } PPGeSetDefaultTexture(); } if (canMove) { if ( (IsButtonPressed(CTRL_UP) || IsButtonHeld(CTRL_UP, upFramesHeld)) && currentSelectedSave > 0) currentSelectedSave--; else if ( (IsButtonPressed(CTRL_DOWN) || IsButtonHeld(CTRL_DOWN, downFramesHeld)) && currentSelectedSave < (param.GetFilenameCount() - 1)) currentSelectedSave++; } }
TBool CCommandParser::IsButtonJustPressed(TRemoteInfo& aInfo, TUint16 aButton) { TBool ret(EFalse); if( IsButtonPressed(aInfo,aButton) && !IsButtonHeld(aInfo,aButton)) ret = ETrue; return ret; }
void CCommandParser::HandleButtonReport(TUint16 aButton) { TUint16 all(0); TRemoteInfo info; info = iObserver.RemoteInfo(); all = aButton & TControllerDataTypes::EWiiMoteButtonAll; info.iButtonsHeld = (all & info.iButtons); info.iButtonsReleased = ((info.iButtons | info.iButtonsHeld) & ~all); info.iButtons = all; iObserver.UpdateRemoteInfo(info); // button held will be button with repeat flag if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonOne)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonOne),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonTwo)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonTwo),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonDown)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonDown),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonUp)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonUp),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonLeft)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonLeft),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonRight)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonRight),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonB)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonB),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonA)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonA),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonPlus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonPlus),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonMinus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonMinus),TControllerDataTypes::EButtonClickRepeat); if(IsButtonHeld(info,TControllerDataTypes::EWiiMoteButtonHome)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonHome),TControllerDataTypes::EButtonClickRepeat); // just pressed if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonOne)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonOne),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonTwo)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonTwo),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonDown)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonDown),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonUp)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonUp),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonLeft)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonLeft),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonRight)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonRight),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonB)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonB),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonA)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonA),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonPlus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonPlus),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonMinus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonMinus),TControllerDataTypes::EButtonClickJustPressed); if(IsButtonJustPressed(info,TControllerDataTypes::EWiiMoteButtonHome)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonHome),TControllerDataTypes::EButtonClickJustPressed); // check released buttons if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonOne)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonOne),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonTwo)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonTwo),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonDown)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonDown),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonUp)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonUp),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonLeft)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonLeft),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonRight)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonRight),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonB)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonB),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonA)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonA),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonPlus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonPlus),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonMinus)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonMinus),TControllerDataTypes::EButtonClickReleased); if(IsButtonReleased(info,TControllerDataTypes::EWiiMoteButtonHome)) iObserver.SendButtonClick( FindButton(TControllerDataTypes::EWiiMoteButtonHome),TControllerDataTypes::EButtonClickReleased); }