Browse Source

Merge pull request #2 from KurtE/joystick-testing

PS4 support
main
Paul Stoffregen 7 years ago
parent
commit
8fe975bc66
3 changed files with 14 additions and 5 deletions
  1. +3
    -3
      USBHost_t36.h
  2. +10
    -1
      examples/Mouse/Mouse.ino
  3. +1
    -1
      joystick.cpp

+ 3
- 3
USBHost_t36.h View File

uint16_t in_size; uint16_t in_size;
uint16_t out_size; uint16_t out_size;
setup_t setup; setup_t setup;
uint8_t descriptor[256];
uint8_t descriptor[512];
uint8_t report[64]; uint8_t report[64];
uint16_t descsize; uint16_t descsize;
bool use_report_id; bool use_report_id;
bool available() { return joystickEvent; } bool available() { return joystickEvent; }
void joystickDataClear(); void joystickDataClear();
uint32_t getButtons() { return buttons; } uint32_t getButtons() { return buttons; }
int getAxis(uint32_t index) { return (index < 8) ? axis[index] : 0; }
int getAxis(uint32_t index) { return (index < (sizeof(axis)/sizeof(axis[0]))) ? axis[index] : 0; }
protected: protected:
virtual bool claim_collection(Device_t *dev, uint32_t topusage); virtual bool claim_collection(Device_t *dev, uint32_t topusage);
virtual void hid_input_begin(uint32_t topusage, uint32_t type, int lgmin, int lgmax); virtual void hid_input_begin(uint32_t topusage, uint32_t type, int lgmin, int lgmax);
bool anychange = false; bool anychange = false;
volatile bool joystickEvent = false; volatile bool joystickEvent = false;
uint32_t buttons = 0; uint32_t buttons = 0;
int16_t axis[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int16_t axis[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
}; };


#endif #endif

+ 10
- 1
examples/Mouse/Mouse.ino View File

Serial.print(joystick1.getAxis(0)); Serial.print(joystick1.getAxis(0));
Serial.print(", Y = "); Serial.print(", Y = ");
Serial.print(joystick1.getAxis(1)); Serial.print(joystick1.getAxis(1));

Serial.print(", Z = ");
Serial.print(joystick1.getAxis(2));
Serial.print(", Rz = ");
Serial.print(joystick1.getAxis(5));
Serial.print(", Rx = ");
Serial.print(joystick1.getAxis(3));
Serial.print(", Ry = ");
Serial.print(joystick1.getAxis(4));
Serial.print(", Hat = ");
Serial.print(joystick1.getAxis(9));
Serial.println(); Serial.println();
joystick1.joystickDataClear(); joystick1.joystickDataClear();
} }

+ 1
- 1
joystick.cpp View File

anychange = true; anychange = true;
} }
} }
} else if (usage_page == 1 && usage >= 0x30 && usage <= 0x37) {
} else if (usage_page == 1 && usage >= 0x30 && usage <= 0x39) {
// TODO: need scaling of value to consistent API, 16 bit signed? // TODO: need scaling of value to consistent API, 16 bit signed?
// TODO: many joysticks repeat slider usage. Detect & map to axes? // TODO: many joysticks repeat slider usage. Detect & map to axes?
uint32_t i = usage - 0x30; uint32_t i = usage - 0x30;

Loading…
Cancel
Save