uwick. W
/
MameController
Mamecontroller/joystick device wrapper library
joystick.h@4:4f6e38b6c07e, 2014-12-10 (annotated)
- Committer:
- uswickra
- Date:
- Wed Dec 10 05:51:13 2014 +0000
- Revision:
- 4:4f6e38b6c07e
- Parent:
- 2:018f204f6037
my controller;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
uswickra | 0:4babde63a16e | 1 | #pragma once |
uswickra | 0:4babde63a16e | 2 | #include "mbed.h" |
uswickra | 0:4babde63a16e | 3 | #include "USBSerial.h" |
uswickra | 0:4babde63a16e | 4 | #include "signals.h" |
bhavk11 | 2:018f204f6037 | 5 | #include "DebounceIn.h" |
bhavk11 | 2:018f204f6037 | 6 | |
uswickra | 0:4babde63a16e | 7 | |
uswickra | 0:4babde63a16e | 8 | extern USBKeyboard keyboard; |
uswickra | 0:4babde63a16e | 9 | extern Serial uart; |
uswickra | 0:4babde63a16e | 10 | |
bhavk11 | 2:018f204f6037 | 11 | |
uswickra | 4:4f6e38b6c07e | 12 | #define ON 1 |
bhavk11 | 2:018f204f6037 | 13 | extern DebounceIn Up; |
bhavk11 | 2:018f204f6037 | 14 | extern DebounceIn Down; |
bhavk11 | 2:018f204f6037 | 15 | extern DebounceIn Left; |
bhavk11 | 2:018f204f6037 | 16 | extern DebounceIn Right; |
bhavk11 | 2:018f204f6037 | 17 | extern DebounceIn Jump; |
bhavk11 | 2:018f204f6037 | 18 | extern DebounceIn Fire1; |
bhavk11 | 2:018f204f6037 | 19 | extern DebounceIn Fire2; |
bhavk11 | 2:018f204f6037 | 20 | |
uswickra | 0:4babde63a16e | 21 | /* |
uswickra | 0:4babde63a16e | 22 | *Base Joystic controller class |
uswickra | 0:4babde63a16e | 23 | */ |
uswickra | 0:4babde63a16e | 24 | class Joystick |
uswickra | 0:4babde63a16e | 25 | { |
uswickra | 0:4babde63a16e | 26 | protected: |
uswickra | 0:4babde63a16e | 27 | SignalRouter router; |
uswickra | 0:4babde63a16e | 28 | public: |
uswickra | 0:4babde63a16e | 29 | Joystick(); |
uswickra | 0:4babde63a16e | 30 | /* |
uswickra | 0:4babde63a16e | 31 | * init and start Joystick |
uswickra | 0:4babde63a16e | 32 | * |
uswickra | 0:4babde63a16e | 33 | */ |
uswickra | 0:4babde63a16e | 34 | virtual void init()=0; |
uswickra | 0:4babde63a16e | 35 | |
uswickra | 0:4babde63a16e | 36 | /* |
uswickra | 0:4babde63a16e | 37 | * Following 3 functions will be responsible for joytick menu select operations |
uswickra | 0:4babde63a16e | 38 | * These are in-game menu actions |
uswickra | 0:4babde63a16e | 39 | */ |
uswickra | 0:4babde63a16e | 40 | virtual void pressMenuSelect1()=0; |
uswickra | 0:4babde63a16e | 41 | virtual void pressMenuSelect2()=0; |
uswickra | 0:4babde63a16e | 42 | virtual void pressMenuSelect3()=0; |
uswickra | 0:4babde63a16e | 43 | |
uswickra | 0:4babde63a16e | 44 | /* |
uswickra | 0:4babde63a16e | 45 | * Following functions will be responsible for game actions |
uswickra | 0:4babde63a16e | 46 | * These are used for in-game play |
uswickra | 0:4babde63a16e | 47 | */ |
uswickra | 0:4babde63a16e | 48 | |
uswickra | 0:4babde63a16e | 49 | /* |
uswickra | 0:4babde63a16e | 50 | * This function is invoked when joytick presses Button UP |
uswickra | 0:4babde63a16e | 51 | */ |
uswickra | 0:4babde63a16e | 52 | virtual void pressUp()=0; |
uswickra | 0:4babde63a16e | 53 | |
uswickra | 0:4babde63a16e | 54 | /* |
uswickra | 0:4babde63a16e | 55 | * This function is invoked when joytick presses Button Down |
uswickra | 0:4babde63a16e | 56 | */ |
uswickra | 0:4babde63a16e | 57 | virtual void pressDown()=0; |
uswickra | 0:4babde63a16e | 58 | |
uswickra | 0:4babde63a16e | 59 | /* |
uswickra | 0:4babde63a16e | 60 | * This function is invoked when joytick presses Button LEFT |
uswickra | 0:4babde63a16e | 61 | */ |
uswickra | 0:4babde63a16e | 62 | virtual void pressLeft()=0; |
uswickra | 0:4babde63a16e | 63 | |
uswickra | 0:4babde63a16e | 64 | /* |
uswickra | 0:4babde63a16e | 65 | * This function is invoked when joytick presses Button RIGHT |
uswickra | 0:4babde63a16e | 66 | */ |
uswickra | 0:4babde63a16e | 67 | virtual void pressRight()=0; |
uswickra | 0:4babde63a16e | 68 | |
uswickra | 0:4babde63a16e | 69 | /* |
uswickra | 0:4babde63a16e | 70 | * This function is invoked when joytick presses Button JMP |
uswickra | 0:4babde63a16e | 71 | */ |
uswickra | 0:4babde63a16e | 72 | virtual void pressJump()=0; |
uswickra | 0:4babde63a16e | 73 | |
uswickra | 0:4babde63a16e | 74 | /* |
uswickra | 0:4babde63a16e | 75 | * This function is invoked when joytick presses Button1 for FIRE |
uswickra | 0:4babde63a16e | 76 | */ |
uswickra | 0:4babde63a16e | 77 | virtual void pressFire1()=0; |
uswickra | 0:4babde63a16e | 78 | |
uswickra | 0:4babde63a16e | 79 | /* |
uswickra | 0:4babde63a16e | 80 | * This function is invoked when joytick presses Button2 for FIRE |
uswickra | 0:4babde63a16e | 81 | */ |
uswickra | 0:4babde63a16e | 82 | virtual void pressFire2()=0; |
uswickra | 0:4babde63a16e | 83 | }; |
uswickra | 0:4babde63a16e | 84 | |
uswickra | 0:4babde63a16e | 85 | /* |
uswickra | 0:4babde63a16e | 86 | * Serial joystic controller class |
uswickra | 0:4babde63a16e | 87 | * This is a terminal/uart input (not actual HW input) controlled Joystick |
uswickra | 0:4babde63a16e | 88 | * used as a testbed currently |
uswickra | 0:4babde63a16e | 89 | */ |
uswickra | 0:4babde63a16e | 90 | class SerialJoystick:public Joystick{ |
uswickra | 0:4babde63a16e | 91 | public: |
uswickra | 0:4babde63a16e | 92 | SerialJoystick(); |
uswickra | 0:4babde63a16e | 93 | void init(); |
uswickra | 0:4babde63a16e | 94 | void pressMenuSelect1(); |
uswickra | 0:4babde63a16e | 95 | void pressMenuSelect2(); |
uswickra | 0:4babde63a16e | 96 | void pressMenuSelect3(); |
uswickra | 0:4babde63a16e | 97 | void pressUp(); |
uswickra | 0:4babde63a16e | 98 | void pressDown(); |
uswickra | 0:4babde63a16e | 99 | void pressLeft(); |
uswickra | 0:4babde63a16e | 100 | void pressRight(); |
uswickra | 0:4babde63a16e | 101 | void pressJump(); |
uswickra | 0:4babde63a16e | 102 | void pressFire1(); |
uswickra | 0:4babde63a16e | 103 | void pressFire2(); |
uswickra | 1:89c1c7f9245a | 104 | }; |
uswickra | 1:89c1c7f9245a | 105 | |
uswickra | 1:89c1c7f9245a | 106 | class GPIOJoystick:public Joystick{ |
uswickra | 1:89c1c7f9245a | 107 | public: |
uswickra | 1:89c1c7f9245a | 108 | GPIOJoystick(); |
uswickra | 1:89c1c7f9245a | 109 | void init(); |
uswickra | 1:89c1c7f9245a | 110 | void pressMenuSelect1(); |
uswickra | 1:89c1c7f9245a | 111 | void pressMenuSelect2(); |
uswickra | 1:89c1c7f9245a | 112 | void pressMenuSelect3(); |
uswickra | 1:89c1c7f9245a | 113 | void pressUp(); |
uswickra | 1:89c1c7f9245a | 114 | void pressDown(); |
uswickra | 1:89c1c7f9245a | 115 | void pressLeft(); |
uswickra | 1:89c1c7f9245a | 116 | void pressRight(); |
uswickra | 1:89c1c7f9245a | 117 | void pressJump(); |
uswickra | 1:89c1c7f9245a | 118 | void pressFire1(); |
uswickra | 1:89c1c7f9245a | 119 | void pressFire2(); |
uswickra | 1:89c1c7f9245a | 120 | }; |