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); }
void CInputManager::_Test() { short stickLeft = GetLeftStickX(0); USHORT left = 0; USHORT right = 0; if (stickLeft < 0) left = -stickLeft * 2; else right = stickLeft * 2; SetMotorSpeed(0, left, right); if (IsButtonDown(0, Buttons::A)) DebugManager->Debug(L"A", L"A"); if (IsButtonDown(0, Buttons::B)) DebugManager->Debug(L"B", L"B"); if (IsButtonDown(0, Buttons::Back)) DebugManager->Debug(L"Back", L"Back"); if (IsButtonDown(0, Buttons::Down)) DebugManager->Debug(L"Down", L"Down"); if (IsButtonDown(0, Buttons::LB)) DebugManager->Debug(L"LB", L"LB"); if (IsButtonDown(0, Buttons::Left)) DebugManager->Debug(L"Left", L"Left"); if (IsButtonDown(0, Buttons::LeftStick)) DebugManager->Debug(L"LeftStick", L"LeftStick"); if (IsButtonDown(0, Buttons::RB)) DebugManager->Debug(L"RB", L"RB"); if (IsButtonDown(0, Buttons::Right)) DebugManager->Debug(L"Right", L"Right"); if (IsButtonDown(0, Buttons::RightStick)) DebugManager->Debug(L"RightStick", L"RightStick"); if (IsButtonDown(0, Buttons::Start)) DebugManager->Debug(L"Start", L"Start"); if (IsButtonDown(0, Buttons::Up)) DebugManager->Debug(L"Up", L"Up"); if (IsButtonDown(0, Buttons::X)) DebugManager->Debug(L"X", L"X"); if (IsButtonDown(0, Buttons::Y)) DebugManager->Debug(L"Y", L"Y"); DebugManager->Debug(GetLeftTrigger(0), L"left trigger"); DebugManager->Debug(GetRightTrigger(0), L"right trigger"); DebugManager->Debug(GetLeftStickX(0), L"left stick x"); DebugManager->Debug(GetLeftStickY(0), L"left stick y"); DebugManager->Debug(GetRightStickX(0), L"right stick x"); DebugManager->Debug(GetRightStickY(0), L"right stick y"); DebugManager->Debug(GetLeftTriggerDelta(0), L"left trigger Delta"); DebugManager->Debug(GetRightTriggerDelta(0), L"right trigger Delta"); DebugManager->Debug(GetLeftStickXDelta(0), L"left stick x Delta"); DebugManager->Debug(GetLeftStickYDelta(0), L"left stick y Delta"); DebugManager->Debug(GetRightStickXDelta(0), L"right stick x Delta"); DebugManager->Debug(GetRightStickYDelta(0), L"right stick y Delta"); if (IsButtonPressed(0, Buttons::A)) printf("A pressed\n"); if (IsButtonPressed(0, Buttons::B)) printf("B pressed\n"); if (IsButtonPressed(0, Buttons::Back)) printf("Back pressed\n"); if (IsButtonPressed(0, Buttons::Down)) printf("Down pressed\n"); if (IsButtonPressed(0, Buttons::LB)) printf("LB pressed\n"); if (IsButtonPressed(0, Buttons::Left)) printf("Left pressed\n"); if (IsButtonPressed(0, Buttons::LeftStick)) printf("LeftStick pressed\n"); if (IsButtonPressed(0, Buttons::RB)) printf("RB pressed\n"); if (IsButtonPressed(0, Buttons::Right)) printf("Right pressed\n"); if (IsButtonPressed(0, Buttons::RightStick)) printf("RightStick pressed\n"); if (IsButtonPressed(0, Buttons::Start)) printf("Start pressed\n"); if (IsButtonPressed(0, Buttons::Up)) printf("Up pressed\n"); if (IsButtonPressed(0, Buttons::X)) printf("X pressed\n"); if (IsButtonPressed(0, Buttons::Y)) printf("Y pressed\n"); if (IsButtonReleased(0, Buttons::A)) printf("A released\n"); if (IsButtonReleased(0, Buttons::B)) printf("B released\n"); if (IsButtonReleased(0, Buttons::Back)) printf("Back released\n"); if (IsButtonReleased(0, Buttons::Down)) printf("Down released\n"); if (IsButtonReleased(0, Buttons::LB)) printf("LB released\n"); if (IsButtonReleased(0, Buttons::Left)) printf("Left released\n"); if (IsButtonReleased(0, Buttons::LeftStick)) printf("LeftStick released\n"); if (IsButtonReleased(0, Buttons::RB)) printf("RB released\n"); if (IsButtonReleased(0, Buttons::Right)) printf("Right released\n"); if (IsButtonReleased(0, Buttons::RightStick)) printf("RightStick released\n"); if (IsButtonReleased(0, Buttons::Start)) printf("Start released\n"); if (IsButtonReleased(0, Buttons::Up)) printf("Up released\n"); if (IsButtonReleased(0, Buttons::X)) printf("X released\n"); if (IsButtonReleased(0, Buttons::Y)) printf("Y released\n"); if (GamepadConnected()) printf("gamepad connected\n"); if (GamepadDisconnected()) printf("gamepad disconnected\n"); UINT connectedGamepads = 0; for (UINT i = 0; i < XUSER_MAX_COUNT; i++) if (IsGamepadActive(i)) connectedGamepads++; DebugManager->Debug((int)connectedGamepads, L"Connected gamepads"); }