Mamecontroller/joystick device wrapper library

Dependencies:   USBDevice mbed

Revision:
1:89c1c7f9245a
Child:
2:018f204f6037
diff -r 4babde63a16e -r 89c1c7f9245a GPIOJoystick.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GPIOJoystick.cpp	Mon Dec 01 21:07:44 2014 +0000
@@ -0,0 +1,155 @@
+#include "joystick.h"
+
+//#define DELAY_ENABLED 1
+
+GPIOJoystick::GPIOJoystick()
+{
+
+}
+
+void GPIOJoystick::init()
+{
+    bool quit = false ;
+    while(1) {
+        char ch = uart.getc();
+        switch(ch) {
+            case 'a':
+                pressLeft();
+                break;
+            case 's':
+                pressDown();
+                break;
+            case 'd':
+                pressRight();
+                break;
+            case 'w':
+                pressUp();
+                break;
+            case ' ':
+                pressJump();
+                break;
+            case 'n':
+                pressFire1();
+                break;
+            case 'm':
+                pressFire2();
+                break;
+            case '\n':
+                pressMenuSelect1();
+                break;
+            case '\r':
+                pressMenuSelect1();
+                break;
+            case '1':
+                pressMenuSelect2();
+                break;
+            case 0x1b:
+                pressMenuSelect3();
+                break;
+            case 'u':
+                uart.printf("pi\r\n");
+                router.sendEvent(USER);
+                break;
+            case 'p':
+                uart.printf("raspberry\r\n");
+                router.sendEvent(PASS);
+                break;
+            case 'k':
+                uart.printf("/home/pi/mame/mame4all_comp/mame_run/mame  \r\n");
+                router.sendEvent(RUN);
+                break;
+            case 'q':
+                uart.printf("Quitting now !! \r\n");
+                quit = true ;
+                break;
+
+        }
+        if(quit) break;
+    }
+}
+
+void GPIOJoystick::pressMenuSelect1()
+{
+    uart.printf("Pressed Select Coins \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(COIN1);
+}
+
+void GPIOJoystick::pressMenuSelect2()
+{
+    uart.printf("Pressed Start \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(START);
+}
+
+void GPIOJoystick::pressMenuSelect3()
+{
+    uart.printf("Pressed Back \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(BACK);
+}
+
+void GPIOJoystick::pressUp()
+{
+    uart.printf("Pressed Up \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(MOVE_UP);
+}
+
+void GPIOJoystick::pressDown()
+{
+    uart.printf("Pressed Down \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(MOVE_DOWN);
+}
+
+void GPIOJoystick::pressLeft()
+{
+    uart.printf("Pressed Left \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(MOVE_LEFT);
+}
+
+void GPIOJoystick::pressRight()
+{
+    uart.printf("Pressed Right \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(MOVE_RIGHT);
+}
+
+void GPIOJoystick::pressJump()
+{
+    uart.printf("Pressed Jump \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(JUMP);
+}
+
+void GPIOJoystick::pressFire1()
+{
+    uart.printf("Pressed Fire1 \r\n");
+    #ifdef DELAY_ENABLED
+    wait(5);
+    #endif
+    router.sendEvent(FIRE1);
+}
+
+void GPIOJoystick::pressFire2()
+{
+    uart.printf("Pressed Fire2 \r\n");
+}
\ No newline at end of file