Mamecontroller/joystick device wrapper library

Dependencies:   USBDevice mbed

Committer:
uswickra
Date:
Wed Nov 26 23:24:53 2014 +0000
Revision:
0:4babde63a16e
Child:
1:89c1c7f9245a
Mamecontroller repo

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 0:4babde63a16e 49 case 'q':
uswickra 0:4babde63a16e 50 uart.printf("Quitting now !! \r\n");
uswickra 0:4babde63a16e 51 quit = true ;
uswickra 0:4babde63a16e 52 break;
uswickra 0:4babde63a16e 53
uswickra 0:4babde63a16e 54 }
uswickra 0:4babde63a16e 55 if(quit) break;
uswickra 0:4babde63a16e 56 }
uswickra 0:4babde63a16e 57 }
uswickra 0:4babde63a16e 58
uswickra 0:4babde63a16e 59 void SerialJoystick::pressMenuSelect1()
uswickra 0:4babde63a16e 60 {
uswickra 0:4babde63a16e 61 uart.printf("Pressed Select Coins \r\n");
uswickra 0:4babde63a16e 62 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 63 wait(5);
uswickra 0:4babde63a16e 64 #endif
uswickra 0:4babde63a16e 65 router.sendEvent(COIN1);
uswickra 0:4babde63a16e 66 }
uswickra 0:4babde63a16e 67
uswickra 0:4babde63a16e 68 void SerialJoystick::pressMenuSelect2()
uswickra 0:4babde63a16e 69 {
uswickra 0:4babde63a16e 70 uart.printf("Pressed Start \r\n");
uswickra 0:4babde63a16e 71 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 72 wait(5);
uswickra 0:4babde63a16e 73 #endif
uswickra 0:4babde63a16e 74 router.sendEvent(START);
uswickra 0:4babde63a16e 75 }
uswickra 0:4babde63a16e 76
uswickra 0:4babde63a16e 77 void SerialJoystick::pressMenuSelect3()
uswickra 0:4babde63a16e 78 {
uswickra 0:4babde63a16e 79 uart.printf("Pressed Back \r\n");
uswickra 0:4babde63a16e 80 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 81 wait(5);
uswickra 0:4babde63a16e 82 #endif
uswickra 0:4babde63a16e 83 router.sendEvent(BACK);
uswickra 0:4babde63a16e 84 }
uswickra 0:4babde63a16e 85
uswickra 0:4babde63a16e 86 void SerialJoystick::pressUp()
uswickra 0:4babde63a16e 87 {
uswickra 0:4babde63a16e 88 uart.printf("Pressed Up \r\n");
uswickra 0:4babde63a16e 89 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 90 wait(5);
uswickra 0:4babde63a16e 91 #endif
uswickra 0:4babde63a16e 92 router.sendEvent(MOVE_UP);
uswickra 0:4babde63a16e 93 }
uswickra 0:4babde63a16e 94
uswickra 0:4babde63a16e 95 void SerialJoystick::pressDown()
uswickra 0:4babde63a16e 96 {
uswickra 0:4babde63a16e 97 uart.printf("Pressed Down \r\n");
uswickra 0:4babde63a16e 98 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 99 wait(5);
uswickra 0:4babde63a16e 100 #endif
uswickra 0:4babde63a16e 101 router.sendEvent(MOVE_DOWN);
uswickra 0:4babde63a16e 102 }
uswickra 0:4babde63a16e 103
uswickra 0:4babde63a16e 104 void SerialJoystick::pressLeft()
uswickra 0:4babde63a16e 105 {
uswickra 0:4babde63a16e 106 uart.printf("Pressed Left \r\n");
uswickra 0:4babde63a16e 107 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 108 wait(5);
uswickra 0:4babde63a16e 109 #endif
uswickra 0:4babde63a16e 110 router.sendEvent(MOVE_LEFT);
uswickra 0:4babde63a16e 111 }
uswickra 0:4babde63a16e 112
uswickra 0:4babde63a16e 113 void SerialJoystick::pressRight()
uswickra 0:4babde63a16e 114 {
uswickra 0:4babde63a16e 115 uart.printf("Pressed Right \r\n");
uswickra 0:4babde63a16e 116 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 117 wait(5);
uswickra 0:4babde63a16e 118 #endif
uswickra 0:4babde63a16e 119 router.sendEvent(MOVE_RIGHT);
uswickra 0:4babde63a16e 120 }
uswickra 0:4babde63a16e 121
uswickra 0:4babde63a16e 122 void SerialJoystick::pressJump()
uswickra 0:4babde63a16e 123 {
uswickra 0:4babde63a16e 124 uart.printf("Pressed Jump \r\n");
uswickra 0:4babde63a16e 125 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 126 wait(5);
uswickra 0:4babde63a16e 127 #endif
uswickra 0:4babde63a16e 128 router.sendEvent(JUMP);
uswickra 0:4babde63a16e 129 }
uswickra 0:4babde63a16e 130
uswickra 0:4babde63a16e 131 void SerialJoystick::pressFire1()
uswickra 0:4babde63a16e 132 {
uswickra 0:4babde63a16e 133 uart.printf("Pressed Fire1 \r\n");
uswickra 0:4babde63a16e 134 #ifdef DELAY_ENABLED
uswickra 0:4babde63a16e 135 wait(5);
uswickra 0:4babde63a16e 136 #endif
uswickra 0:4babde63a16e 137 router.sendEvent(FIRE1);
uswickra 0:4babde63a16e 138 }
uswickra 0:4babde63a16e 139
uswickra 0:4babde63a16e 140 void SerialJoystick::pressFire2()
uswickra 0:4babde63a16e 141 {
uswickra 0:4babde63a16e 142 uart.printf("Pressed Fire2 \r\n");
uswickra 0:4babde63a16e 143 }