Added some comments

This commit is contained in:
Kristian Sloth Lauszus 2012-12-29 14:16:11 +01:00
parent db37672e2c
commit fedb7445ce

View file

@ -32,7 +32,7 @@
/* Endpoint types */ /* Endpoint types */
#define EP_INTERRUPT 0x03 #define EP_INTERRUPT 0x03
/* Names we give to the 3 Xbox360 pipes */ /* Names we give to the 9 Xbox360 pipes */
#define XBOX_CONTROL_PIPE 0 #define XBOX_CONTROL_PIPE 0
#define XBOX_INPUT_PIPE_1 1 #define XBOX_INPUT_PIPE_1 1
#define XBOX_OUTPUT_PIPE_1 2 #define XBOX_OUTPUT_PIPE_1 2
@ -50,10 +50,6 @@
#define MADCATZ_VID 0x1BAD // For unofficial Mad Catz controllers #define MADCATZ_VID 0x1BAD // For unofficial Mad Catz controllers
// Used in control endpoint header for HID Commands
#define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
#define HID_REQUEST_SET_REPORT 0x09
#define XBOX_MAX_ENDPOINTS 9 #define XBOX_MAX_ENDPOINTS 9
enum LED { enum LED {
@ -113,12 +109,18 @@ public:
virtual uint8_t GetAddress() { return bAddress; }; virtual uint8_t GetAddress() { return bAddress; };
virtual bool isReady() { return bPollEnable; }; virtual bool isReady() { return bPollEnable; };
/* XBOX Controller Readings */ /*
Xbox Controller Readings.
getButtonPress will return true as long as the button is held down
While getButtonClick will only return it once
So for instance if you need to increase a variable once you would use getButtonClick,
but if you need to drive a robot forward you would use getButtonPress
*/
uint8_t getButtonPress(uint8_t controller, Button b); uint8_t getButtonPress(uint8_t controller, Button b);
bool getButtonClick(uint8_t controller, Button b); bool getButtonClick(uint8_t controller, Button b);
int16_t getAnalogHat(uint8_t controller, AnalogHat a); int16_t getAnalogHat(uint8_t controller, AnalogHat a);
/* Commands for Dualshock 3 and Navigation controller */ /* Xbox Controller Command */
void setAllOff(uint8_t controller) { setRumbleOn(controller,0,0); setLedOff(controller); }; void setAllOff(uint8_t controller) { setRumbleOn(controller,0,0); setLedOff(controller); };
void setRumbleOff(uint8_t controller) { setRumbleOn(controller,0,0); }; void setRumbleOff(uint8_t controller) { setRumbleOn(controller,0,0); };
void setRumbleOn(uint8_t controller, uint8_t lValue, uint8_t rValue); void setRumbleOn(uint8_t controller, uint8_t lValue, uint8_t rValue);
@ -128,11 +130,11 @@ public:
void setLedBlink(uint8_t controller, LED l); void setLedBlink(uint8_t controller, LED l);
void setLedMode(uint8_t controller, LEDMode lm); void setLedMode(uint8_t controller, LEDMode lm);
bool XboxReceiverConnected; bool XboxReceiverConnected; // True if a wireless receiver is connected
bool Xbox360Connected[4];// Variable used to indicate if the XBOX 360 controller is successfully connected bool Xbox360Connected[4]; // Variable used to indicate if the XBOX 360 controller is successfully connected
protected: protected:
/* mandatory members */ /* Mandatory members */
USB *pUsb; USB *pUsb;
uint8_t bAddress; // device address uint8_t bAddress; // device address
EpInfo epInfo[XBOX_MAX_ENDPOINTS]; //endpoint info structure EpInfo epInfo[XBOX_MAX_ENDPOINTS]; //endpoint info structure
@ -140,12 +142,13 @@ protected:
private: private:
bool bPollEnable; bool bPollEnable;
/* Variables to store the buttons */
uint32_t ButtonState[4]; uint32_t ButtonState[4];
uint32_t OldButtonState[4]; uint32_t OldButtonState[4];
uint16_t ButtonClickState[4]; uint16_t ButtonClickState[4];
int16_t hatValue[4][4]; int16_t hatValue[4][4];
bool L2Clicked; bool L2Clicked; // These buttons are analog, so we use we use these bools to check if they where clicked or not
bool R2Clicked; bool R2Clicked;
uint8_t readBuf[EP_MAXPKTSIZE]; // General purpose buffer for input data uint8_t readBuf[EP_MAXPKTSIZE]; // General purpose buffer for input data