![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Mamecontroller/joystick device wrapper library
GPIOJoystick.cpp@1:89c1c7f9245a, 2014-12-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |