Simple project that creates a device capable of controlling MS teams. It can Mute, Decline a Call, Answer Audio, or Answer Video. This is using the Sparkfun Joystick Shield attached to a KL25Z, but can be easily modified to work with whatever buttons you want.
Dependencies: mbed TSI USBDevice
main.cpp@2:4097fa431680, 2021-04-12 (annotated)
- Committer:
- Fratink
- Date:
- Mon Apr 12 15:12:41 2021 +0000
- Revision:
- 2:4097fa431680
- Parent:
- 1:b5afa5af13d5
Working version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Fratink | 0:4621dca43078 | 1 | #include "mbed.h" |
Fratink | 0:4621dca43078 | 2 | #include "USBKeyboard.h" |
Fratink | 0:4621dca43078 | 3 | #include "TSISensor.h" |
Fratink | 0:4621dca43078 | 4 | |
Fratink | 2:4097fa431680 | 5 | #define SWITCH_TIMEOUT 10 |
Fratink | 2:4097fa431680 | 6 | |
Fratink | 0:4621dca43078 | 7 | USBKeyboard keyboard; |
Fratink | 0:4621dca43078 | 8 | |
Fratink | 0:4621dca43078 | 9 | typedef enum |
Fratink | 0:4621dca43078 | 10 | { |
Fratink | 0:4621dca43078 | 11 | ACCEPT_VIDEO_CALL, |
Fratink | 0:4621dca43078 | 12 | ACCCEPT_AUDIO_CALL, |
Fratink | 0:4621dca43078 | 13 | DECLINE_CALL, |
Fratink | 0:4621dca43078 | 14 | TOGGLE_MUTE, |
Fratink | 0:4621dca43078 | 15 | TOGGLE_VIDEO |
Fratink | 0:4621dca43078 | 16 | }CommandList_e; |
Fratink | 0:4621dca43078 | 17 | |
Fratink | 0:4621dca43078 | 18 | |
Fratink | 1:b5afa5af13d5 | 19 | DigitalIn up(D4); |
Fratink | 1:b5afa5af13d5 | 20 | DigitalIn down(D5); |
Fratink | 1:b5afa5af13d5 | 21 | DigitalIn left(D6); |
Fratink | 1:b5afa5af13d5 | 22 | DigitalIn right(D3); |
Fratink | 1:b5afa5af13d5 | 23 | |
Fratink | 0:4621dca43078 | 24 | |
Fratink | 0:4621dca43078 | 25 | //PwmOut rled(LED_RED); |
Fratink | 0:4621dca43078 | 26 | //PwmOut gled(LED2); |
Fratink | 0:4621dca43078 | 27 | //PwmOut bled(LED3); |
Fratink | 0:4621dca43078 | 28 | |
Fratink | 0:4621dca43078 | 29 | void sendKeyboardCommand(CommandList_e command) |
Fratink | 0:4621dca43078 | 30 | { |
Fratink | 0:4621dca43078 | 31 | switch(command) |
Fratink | 0:4621dca43078 | 32 | { |
Fratink | 0:4621dca43078 | 33 | case ACCEPT_VIDEO_CALL: |
Fratink | 0:4621dca43078 | 34 | keyboard.keyCode('a',KEY_CTRL|KEY_SHIFT); |
Fratink | 0:4621dca43078 | 35 | break; |
Fratink | 0:4621dca43078 | 36 | case ACCCEPT_AUDIO_CALL: |
Fratink | 0:4621dca43078 | 37 | keyboard.keyCode('a',KEY_CTRL|KEY_SHIFT); |
Fratink | 0:4621dca43078 | 38 | break; |
Fratink | 0:4621dca43078 | 39 | case DECLINE_CALL: |
Fratink | 0:4621dca43078 | 40 | keyboard.keyCode('d',KEY_CTRL|KEY_SHIFT); |
Fratink | 0:4621dca43078 | 41 | break; |
Fratink | 0:4621dca43078 | 42 | case TOGGLE_MUTE: |
Fratink | 0:4621dca43078 | 43 | keyboard.keyCode('m',KEY_CTRL|KEY_SHIFT); |
Fratink | 0:4621dca43078 | 44 | break; |
Fratink | 0:4621dca43078 | 45 | case TOGGLE_VIDEO: |
Fratink | 0:4621dca43078 | 46 | keyboard.keyCode('o',KEY_CTRL|KEY_SHIFT); |
Fratink | 0:4621dca43078 | 47 | break; |
Fratink | 0:4621dca43078 | 48 | default: |
Fratink | 0:4621dca43078 | 49 | break; |
Fratink | 0:4621dca43078 | 50 | }; |
Fratink | 0:4621dca43078 | 51 | } |
Fratink | 0:4621dca43078 | 52 | |
Fratink | 0:4621dca43078 | 53 | |
Fratink | 0:4621dca43078 | 54 | int main(void) |
Fratink | 0:4621dca43078 | 55 | { |
Fratink | 2:4097fa431680 | 56 | int switchTime = 0; |
Fratink | 1:b5afa5af13d5 | 57 | up.mode(PullUp); |
Fratink | 1:b5afa5af13d5 | 58 | down.mode(PullUp); |
Fratink | 1:b5afa5af13d5 | 59 | left.mode(PullUp); |
Fratink | 1:b5afa5af13d5 | 60 | right.mode(PullUp); |
Fratink | 0:4621dca43078 | 61 | |
Fratink | 0:4621dca43078 | 62 | while(1) |
Fratink | 0:4621dca43078 | 63 | { |
Fratink | 2:4097fa431680 | 64 | if (switchTime == 0) |
Fratink | 2:4097fa431680 | 65 | { |
Fratink | 2:4097fa431680 | 66 | if(!up) |
Fratink | 2:4097fa431680 | 67 | { |
Fratink | 2:4097fa431680 | 68 | switchTime = SWITCH_TIMEOUT; |
Fratink | 2:4097fa431680 | 69 | sendKeyboardCommand(TOGGLE_MUTE); |
Fratink | 2:4097fa431680 | 70 | // keyboard.keyCode(UP_ARROW); |
Fratink | 2:4097fa431680 | 71 | } |
Fratink | 2:4097fa431680 | 72 | if(!down) |
Fratink | 2:4097fa431680 | 73 | { |
Fratink | 2:4097fa431680 | 74 | switchTime = SWITCH_TIMEOUT; |
Fratink | 2:4097fa431680 | 75 | sendKeyboardCommand(DECLINE_CALL); |
Fratink | 2:4097fa431680 | 76 | // keyboard.keyCode(DOWN_ARROW); |
Fratink | 2:4097fa431680 | 77 | } |
Fratink | 2:4097fa431680 | 78 | if(!left) |
Fratink | 2:4097fa431680 | 79 | { |
Fratink | 2:4097fa431680 | 80 | switchTime = SWITCH_TIMEOUT; |
Fratink | 2:4097fa431680 | 81 | sendKeyboardCommand(ACCEPT_VIDEO_CALL); |
Fratink | 2:4097fa431680 | 82 | // keyboard.keyCode(LEFT_ARROW); |
Fratink | 2:4097fa431680 | 83 | } |
Fratink | 2:4097fa431680 | 84 | if(!right) |
Fratink | 2:4097fa431680 | 85 | { |
Fratink | 2:4097fa431680 | 86 | switchTime = SWITCH_TIMEOUT; |
Fratink | 2:4097fa431680 | 87 | sendKeyboardCommand(ACCCEPT_AUDIO_CALL); |
Fratink | 2:4097fa431680 | 88 | // keyboard.keyCode(RIGHT_ARROW); |
Fratink | 2:4097fa431680 | 89 | } |
Fratink | 2:4097fa431680 | 90 | } |
Fratink | 2:4097fa431680 | 91 | else |
Fratink | 2:4097fa431680 | 92 | { |
Fratink | 2:4097fa431680 | 93 | switchTime--; |
Fratink | 2:4097fa431680 | 94 | } |
Fratink | 0:4621dca43078 | 95 | wait(0.1); |
Fratink | 0:4621dca43078 | 96 | }; |
Fratink | 0:4621dca43078 | 97 | } |
Fratink | 0:4621dca43078 | 98 |