uwick. W
/
MameController
Mamecontroller/joystick device wrapper library
serial_joystick.cpp@1:89c1c7f9245a, 2014-12-01 (annotated)
- Committer:
- uswickra
- Date:
- Mon Dec 01 21:07:44 2014 +0000
- Revision:
- 1:89c1c7f9245a
- Parent:
- 0:4babde63a16e
included gpio joystick
Who changed what in which revision?
User | Revision | Line number | New 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 | } |