USB HID Joystick Example (modified USBMouse)

Dependencies:   mbed

Committer:
bricklife
Date:
Wed Jan 19 11:27:13 2011 +0000
Revision:
1:ec6deffecbd3
Parent:
0:d450e82033a1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bricklife 0:d450e82033a1 1 /* usbhid.h */
bricklife 0:d450e82033a1 2 /* USB HID class device */
bricklife 0:d450e82033a1 3 /* Copyright (c) Phil Wright 2008 */
bricklife 0:d450e82033a1 4
bricklife 0:d450e82033a1 5 /* modified by Shinichiro Oba <http://mbed.org/users/bricklife/> */
bricklife 0:d450e82033a1 6
bricklife 0:d450e82033a1 7 #ifndef USBHID_H
bricklife 0:d450e82033a1 8 #define USBHID_H
bricklife 0:d450e82033a1 9
bricklife 0:d450e82033a1 10 #include "usbdevice.h"
bricklife 0:d450e82033a1 11
bricklife 0:d450e82033a1 12 /* Mouse buttons */
bricklife 0:d450e82033a1 13 #define MOUSE_L (1<<0)
bricklife 0:d450e82033a1 14 #define MOUSE_M (1<<1)
bricklife 0:d450e82033a1 15 #define MOUSE_R (1<<2)
bricklife 0:d450e82033a1 16
bricklife 0:d450e82033a1 17 class usbhid : public usbdevice
bricklife 0:d450e82033a1 18 {
bricklife 0:d450e82033a1 19 public:
bricklife 0:d450e82033a1 20 usbhid();
bricklife 0:d450e82033a1 21 bool keyboard(char c);
bricklife 0:d450e82033a1 22 bool keyboard(char *string);
bricklife 0:d450e82033a1 23 bool mouse(signed char x, signed char y, unsigned char buttons=0, signed char wheel=0);
bricklife 0:d450e82033a1 24 protected:
bricklife 0:d450e82033a1 25 virtual bool requestSetConfiguration();
bricklife 0:d450e82033a1 26 virtual void endpointEventEP1In(void);
bricklife 0:d450e82033a1 27 virtual void deviceEventReset(void);
bricklife 0:d450e82033a1 28 virtual bool requestGetDescriptor(void);
bricklife 0:d450e82033a1 29 virtual bool requestSetup(void);
bricklife 0:d450e82033a1 30 private:
bricklife 0:d450e82033a1 31 bool sendInputReport(unsigned char id, unsigned char *data, unsigned char size);
bricklife 0:d450e82033a1 32 };
bricklife 0:d450e82033a1 33
bricklife 0:d450e82033a1 34
bricklife 0:d450e82033a1 35 //
bricklife 0:d450e82033a1 36 // USBJoystick
bricklife 0:d450e82033a1 37 //
bricklife 0:d450e82033a1 38
bricklife 0:d450e82033a1 39 #define JOYSTICK_UP (1<<0)
bricklife 0:d450e82033a1 40 #define JOYSTICK_DOWN (1<<1)
bricklife 0:d450e82033a1 41 #define JOYSTICK_LEFT (1<<2)
bricklife 0:d450e82033a1 42 #define JOYSTICK_RIGHT (1<<3)
bricklife 0:d450e82033a1 43
bricklife 0:d450e82033a1 44 class USBJoystick : public usbhid
bricklife 0:d450e82033a1 45 {
bricklife 0:d450e82033a1 46 public:
bricklife 0:d450e82033a1 47 USBJoystick();
bricklife 0:d450e82033a1 48 bool joystick(unsigned char stick, unsigned short buttons=0, signed char x=0, signed char y=0, signed char z=0, signed char rz=0);
bricklife 0:d450e82033a1 49 protected:
bricklife 0:d450e82033a1 50 virtual bool requestGetDescriptor(void);
bricklife 0:d450e82033a1 51 private:
bricklife 0:d450e82033a1 52 bool sendInputReport(unsigned char *data, unsigned char size);
bricklife 0:d450e82033a1 53 };
bricklife 0:d450e82033a1 54
bricklife 0:d450e82033a1 55 #endif