N64 to USB HID interface

Dependencies:   mbed

Revision:
0:547c5459faa6
Child:
5:eb93a4f91396
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBHID/usbhid.h	Sun Sep 25 03:44:08 2011 +0000
@@ -0,0 +1,55 @@
+/* usbhid.h */
+/* USB HID class device */
+/* Copyright (c) Phil Wright 2008 */
+
+/* modified by Shinichiro Oba <http://mbed.org/users/bricklife/> */
+
+#ifndef USBHID_H
+#define USBHID_H
+
+#include "usbdevice.h"
+
+/* Mouse buttons */
+#define MOUSE_L (1<<0)
+#define MOUSE_M (1<<1)
+#define MOUSE_R (1<<2)
+
+class usbhid : public usbdevice
+{
+public:
+    usbhid();
+    bool keyboard(char c);
+    bool keyboard(char *string);
+    bool mouse(signed char x, signed char y, unsigned char buttons=0, signed char wheel=0);
+protected:
+    virtual bool requestSetConfiguration();
+    virtual void endpointEventEP1In(void);
+    virtual void deviceEventReset(void);
+    virtual bool requestGetDescriptor(void);
+    virtual bool requestSetup(void);
+private:
+    bool sendInputReport(unsigned char id, unsigned char *data, unsigned char size);
+};
+
+
+//
+// USBJoystick
+//
+
+#define JOYSTICK_UP    (1<<0)
+#define JOYSTICK_DOWN  (1<<1)
+#define JOYSTICK_LEFT  (1<<2)
+#define JOYSTICK_RIGHT (1<<3)
+
+class USBJoystick : public usbhid
+{
+public:
+    USBJoystick();
+    bool joystick(unsigned char buttons1, unsigned short buttons2, signed char x, signed char y);
+protected:
+    virtual bool requestGetDescriptor(void);
+private:
+    bool sendInputReport(unsigned char *data, unsigned char size);
+};
+
+#endif
\ No newline at end of file