Mamecontroller/joystick device wrapper library

Dependencies:   USBDevice mbed

Committer:
uswickra
Date:
Wed Dec 10 05:51:13 2014 +0000
Revision:
4:4f6e38b6c07e
Parent:
1:89c1c7f9245a
my controller;

Who changed what in which revision?

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