Logitech Cordless RumblePad 2, can't get feedback

Feb 12, 2011 at 9:30 PM

Hey there,

first of all, thanks for the great stuff you've been doing, I see tons of people being helped by your work.

Now then; I've been trying for 2 hours now to get this thing to work, and I'm getting nervous for not being able to resolve this issue :)

IGamePad gp = input.GetGamePad(ExtendedPlayerIndex.Five);
testField1 = gp.GetExtendedState().GetButton(4) == ButtonState.Pressed ? "true" : "false";

when I compile, some previous code actually detects the RumblePad as being connected, since the IsAttached bool return true; sadly I can't seem to work out how or why I'm not getting a true returned in my piece of code above.

Any help in the right direction would be greatly appreciated.

Tia

Feb 15, 2011 at 11:53 AM

if you need more information I can post more, I thought this would be enough but I can be mistaken :)

Coordinator
Feb 21, 2011 at 6:09 PM

Sorry, I'm sometimes buried in (non-XNA) work and don't respond immediately ;)

Are you calling input.Update() in your Game.Update() method (or have you added the InputManager to the Game.Components collection instead)?

The InputManager retains the state of all input devices until the next time its Update() method is called, the advantages being

  • the potentially costly Poll() call in DirectInput will not happen multiple times if a lazy programmer calls GetState() or GetExtendedState() each time he wants to check the state of just one button or axis.
  • state change events are triggered at a well-controlled time (during Game.Update()) versus unexpectedly inmidst execution when the game calls aforementioned GetState() / GetExtendedState() methods.
  • the snapshot system requires this (snapshots means that input device states are recorded in regular intervals and returned from a queue each time Update() is called, making input independent of the game's frame rate).

If you are calling input.Update() (or have modified the demo application, which already does this), maybe you could try to isolate the issue in a small example project (or send me your actual game sources if they're Open Sources or if you trust me :D).