Mamecontroller/joystick device wrapper library

Dependencies:   USBDevice mbed

Committer:
uswickra
Date:
Mon Dec 01 21:07:44 2014 +0000
Revision:
1:89c1c7f9245a
Child:
2:018f204f6037
included gpio joystick

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uswickra 1:89c1c7f9245a 1 #include "joystick.h"
uswickra 1:89c1c7f9245a 2
uswickra 1:89c1c7f9245a 3 //#define DELAY_ENABLED 1
uswickra 1:89c1c7f9245a 4
uswickra 1:89c1c7f9245a 5 GPIOJoystick::GPIOJoystick()
uswickra 1:89c1c7f9245a 6 {
uswickra 1:89c1c7f9245a 7
uswickra 1:89c1c7f9245a 8 }
uswickra 1:89c1c7f9245a 9
uswickra 1:89c1c7f9245a 10 void GPIOJoystick::init()
uswickra 1:89c1c7f9245a 11 {
uswickra 1:89c1c7f9245a 12 bool quit = false ;
uswickra 1:89c1c7f9245a 13 while(1) {
uswickra 1:89c1c7f9245a 14 char ch = uart.getc();
uswickra 1:89c1c7f9245a 15 switch(ch) {
uswickra 1:89c1c7f9245a 16 case 'a':
uswickra 1:89c1c7f9245a 17 pressLeft();
uswickra 1:89c1c7f9245a 18 break;
uswickra 1:89c1c7f9245a 19 case 's':
uswickra 1:89c1c7f9245a 20 pressDown();
uswickra 1:89c1c7f9245a 21 break;
uswickra 1:89c1c7f9245a 22 case 'd':
uswickra 1:89c1c7f9245a 23 pressRight();
uswickra 1:89c1c7f9245a 24 break;
uswickra 1:89c1c7f9245a 25 case 'w':
uswickra 1:89c1c7f9245a 26 pressUp();
uswickra 1:89c1c7f9245a 27 break;
uswickra 1:89c1c7f9245a 28 case ' ':
uswickra 1:89c1c7f9245a 29 pressJump();
uswickra 1:89c1c7f9245a 30 break;
uswickra 1:89c1c7f9245a 31 case 'n':
uswickra 1:89c1c7f9245a 32 pressFire1();
uswickra 1:89c1c7f9245a 33 break;
uswickra 1:89c1c7f9245a 34 case 'm':
uswickra 1:89c1c7f9245a 35 pressFire2();
uswickra 1:89c1c7f9245a 36 break;
uswickra 1:89c1c7f9245a 37 case '\n':
uswickra 1:89c1c7f9245a 38 pressMenuSelect1();
uswickra 1:89c1c7f9245a 39 break;
uswickra 1:89c1c7f9245a 40 case '\r':
uswickra 1:89c1c7f9245a 41 pressMenuSelect1();
uswickra 1:89c1c7f9245a 42 break;
uswickra 1:89c1c7f9245a 43 case '1':
uswickra 1:89c1c7f9245a 44 pressMenuSelect2();
uswickra 1:89c1c7f9245a 45 break;
uswickra 1:89c1c7f9245a 46 case 0x1b:
uswickra 1:89c1c7f9245a 47 pressMenuSelect3();
uswickra 1:89c1c7f9245a 48 break;
uswickra 1:89c1c7f9245a 49 case 'u':
uswickra 1:89c1c7f9245a 50 uart.printf("pi\r\n");
uswickra 1:89c1c7f9245a 51 router.sendEvent(USER);
uswickra 1:89c1c7f9245a 52 break;
uswickra 1:89c1c7f9245a 53 case 'p':
uswickra 1:89c1c7f9245a 54 uart.printf("raspberry\r\n");
uswickra 1:89c1c7f9245a 55 router.sendEvent(PASS);
uswickra 1:89c1c7f9245a 56 break;
uswickra 1:89c1c7f9245a 57 case 'k':
uswickra 1:89c1c7f9245a 58 uart.printf("/home/pi/mame/mame4all_comp/mame_run/mame \r\n");
uswickra 1:89c1c7f9245a 59 router.sendEvent(RUN);
uswickra 1:89c1c7f9245a 60 break;
uswickra 1:89c1c7f9245a 61 case 'q':
uswickra 1:89c1c7f9245a 62 uart.printf("Quitting now !! \r\n");
uswickra 1:89c1c7f9245a 63 quit = true ;
uswickra 1:89c1c7f9245a 64 break;
uswickra 1:89c1c7f9245a 65
uswickra 1:89c1c7f9245a 66 }
uswickra 1:89c1c7f9245a 67 if(quit) break;
uswickra 1:89c1c7f9245a 68 }
uswickra 1:89c1c7f9245a 69 }
uswickra 1:89c1c7f9245a 70
uswickra 1:89c1c7f9245a 71 void GPIOJoystick::pressMenuSelect1()
uswickra 1:89c1c7f9245a 72 {
uswickra 1:89c1c7f9245a 73 uart.printf("Pressed Select Coins \r\n");
uswickra 1:89c1c7f9245a 74 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 75 wait(5);
uswickra 1:89c1c7f9245a 76 #endif
uswickra 1:89c1c7f9245a 77 router.sendEvent(COIN1);
uswickra 1:89c1c7f9245a 78 }
uswickra 1:89c1c7f9245a 79
uswickra 1:89c1c7f9245a 80 void GPIOJoystick::pressMenuSelect2()
uswickra 1:89c1c7f9245a 81 {
uswickra 1:89c1c7f9245a 82 uart.printf("Pressed Start \r\n");
uswickra 1:89c1c7f9245a 83 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 84 wait(5);
uswickra 1:89c1c7f9245a 85 #endif
uswickra 1:89c1c7f9245a 86 router.sendEvent(START);
uswickra 1:89c1c7f9245a 87 }
uswickra 1:89c1c7f9245a 88
uswickra 1:89c1c7f9245a 89 void GPIOJoystick::pressMenuSelect3()
uswickra 1:89c1c7f9245a 90 {
uswickra 1:89c1c7f9245a 91 uart.printf("Pressed Back \r\n");
uswickra 1:89c1c7f9245a 92 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 93 wait(5);
uswickra 1:89c1c7f9245a 94 #endif
uswickra 1:89c1c7f9245a 95 router.sendEvent(BACK);
uswickra 1:89c1c7f9245a 96 }
uswickra 1:89c1c7f9245a 97
uswickra 1:89c1c7f9245a 98 void GPIOJoystick::pressUp()
uswickra 1:89c1c7f9245a 99 {
uswickra 1:89c1c7f9245a 100 uart.printf("Pressed Up \r\n");
uswickra 1:89c1c7f9245a 101 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 102 wait(5);
uswickra 1:89c1c7f9245a 103 #endif
uswickra 1:89c1c7f9245a 104 router.sendEvent(MOVE_UP);
uswickra 1:89c1c7f9245a 105 }
uswickra 1:89c1c7f9245a 106
uswickra 1:89c1c7f9245a 107 void GPIOJoystick::pressDown()
uswickra 1:89c1c7f9245a 108 {
uswickra 1:89c1c7f9245a 109 uart.printf("Pressed Down \r\n");
uswickra 1:89c1c7f9245a 110 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 111 wait(5);
uswickra 1:89c1c7f9245a 112 #endif
uswickra 1:89c1c7f9245a 113 router.sendEvent(MOVE_DOWN);
uswickra 1:89c1c7f9245a 114 }
uswickra 1:89c1c7f9245a 115
uswickra 1:89c1c7f9245a 116 void GPIOJoystick::pressLeft()
uswickra 1:89c1c7f9245a 117 {
uswickra 1:89c1c7f9245a 118 uart.printf("Pressed Left \r\n");
uswickra 1:89c1c7f9245a 119 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 120 wait(5);
uswickra 1:89c1c7f9245a 121 #endif
uswickra 1:89c1c7f9245a 122 router.sendEvent(MOVE_LEFT);
uswickra 1:89c1c7f9245a 123 }
uswickra 1:89c1c7f9245a 124
uswickra 1:89c1c7f9245a 125 void GPIOJoystick::pressRight()
uswickra 1:89c1c7f9245a 126 {
uswickra 1:89c1c7f9245a 127 uart.printf("Pressed Right \r\n");
uswickra 1:89c1c7f9245a 128 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 129 wait(5);
uswickra 1:89c1c7f9245a 130 #endif
uswickra 1:89c1c7f9245a 131 router.sendEvent(MOVE_RIGHT);
uswickra 1:89c1c7f9245a 132 }
uswickra 1:89c1c7f9245a 133
uswickra 1:89c1c7f9245a 134 void GPIOJoystick::pressJump()
uswickra 1:89c1c7f9245a 135 {
uswickra 1:89c1c7f9245a 136 uart.printf("Pressed Jump \r\n");
uswickra 1:89c1c7f9245a 137 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 138 wait(5);
uswickra 1:89c1c7f9245a 139 #endif
uswickra 1:89c1c7f9245a 140 router.sendEvent(JUMP);
uswickra 1:89c1c7f9245a 141 }
uswickra 1:89c1c7f9245a 142
uswickra 1:89c1c7f9245a 143 void GPIOJoystick::pressFire1()
uswickra 1:89c1c7f9245a 144 {
uswickra 1:89c1c7f9245a 145 uart.printf("Pressed Fire1 \r\n");
uswickra 1:89c1c7f9245a 146 #ifdef DELAY_ENABLED
uswickra 1:89c1c7f9245a 147 wait(5);
uswickra 1:89c1c7f9245a 148 #endif
uswickra 1:89c1c7f9245a 149 router.sendEvent(FIRE1);
uswickra 1:89c1c7f9245a 150 }
uswickra 1:89c1c7f9245a 151
uswickra 1:89c1c7f9245a 152 void GPIOJoystick::pressFire2()
uswickra 1:89c1c7f9245a 153 {
uswickra 1:89c1c7f9245a 154 uart.printf("Pressed Fire2 \r\n");
uswickra 1:89c1c7f9245a 155 }