Пример #1
0
 public void ProcessJoystickEvent(JoyHatEvent ev)
 {
     int id = ev.Which;
     if (IsJoystickInstanceValid(id))
     {
         int index = sdl_instanceid_to_joysticks[id];
         JoystickDevice<Sdl2JoystickDetails> joystick = (JoystickDevice<Sdl2JoystickDetails>)joysticks[index];
         // Todo: map hat to an extra axis
         joystick.Details.PacketNumber = Math.Max(0, unchecked(joystick.Details.PacketNumber + 1));
     }
     else
     {
         Debug.Print("[SDL2] Invalid joystick id {0} in {1}", id, ev.Type);
     }
 }
Пример #2
0
 public void ProcessJoystickEvent(JoyHatEvent ev)
 {
     int id = ev.Which;
     if (IsJoystickInstanceValid(id))
     {
         int index = sdl_instanceid_to_joysticks[id];
         JoystickDevice<Sdl2JoystickDetails> joystick = (JoystickDevice<Sdl2JoystickDetails>)joysticks[index];
         if (ev.Hat >= 0 && ev.Hat < JoystickState.MaxHats)
         {
             joystick.Details.Hat[ev.Hat] = new JoystickHatState(TranslateHat(ev.Value));
         }
         else
         {
             Debug.Print("[SDL2] Hat {0} out of range [0, {1}]", ev.Hat, JoystickState.MaxHats);
         }
         joystick.Details.PacketNumber = Math.Max(0, unchecked(joystick.Details.PacketNumber + 1));
     }
     else
     {
         Debug.Print("[SDL2] Invalid joystick id {0} in {1}", id, ev.Type);
     }
 }