Simple USB-MIDI foot controller
Dependencies: PinDetect USBDevice_STM32F103 mbed-STM32F103C8T6
midiswitch.h@3:8b8cb5392fa0, 2017-08-04 (annotated)
- Committer:
- SpotlightKid
- Date:
- Fri Aug 04 03:15:52 2017 +0200
- Revision:
- 3:8b8cb5392fa0
- Child:
- 6:2f804d29cbb0
New event queue based version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
SpotlightKid |
3:8b8cb5392fa0 | 1 | #ifndef MIDISWITCH_H |
SpotlightKid |
3:8b8cb5392fa0 | 2 | #define MIDISWITCH_H |
SpotlightKid |
3:8b8cb5392fa0 | 3 | |
SpotlightKid |
3:8b8cb5392fa0 | 4 | #include "mbed.h" |
SpotlightKid |
3:8b8cb5392fa0 | 5 | #include "mbed_events.h" |
SpotlightKid |
3:8b8cb5392fa0 | 6 | #include "PinDetect.h" |
SpotlightKid |
3:8b8cb5392fa0 | 7 | #include "USBMIDI.h" |
SpotlightKid |
3:8b8cb5392fa0 | 8 | |
SpotlightKid |
3:8b8cb5392fa0 | 9 | typedef struct SwitchConfig { |
SpotlightKid |
3:8b8cb5392fa0 | 10 | PinName pin; |
SpotlightKid |
3:8b8cb5392fa0 | 11 | uint8_t channel; |
SpotlightKid |
3:8b8cb5392fa0 | 12 | uint8_t control; |
SpotlightKid |
3:8b8cb5392fa0 | 13 | uint8_t on_value; |
SpotlightKid |
3:8b8cb5392fa0 | 14 | uint8_t off_value; |
SpotlightKid |
3:8b8cb5392fa0 | 15 | } SwitchConfig; |
SpotlightKid |
3:8b8cb5392fa0 | 16 | |
SpotlightKid |
3:8b8cb5392fa0 | 17 | |
SpotlightKid |
3:8b8cb5392fa0 | 18 | typedef void (*MIDI_CB)(MIDIMessage); |
SpotlightKid |
3:8b8cb5392fa0 | 19 | |
SpotlightKid |
3:8b8cb5392fa0 | 20 | class SwitchHandler { |
SpotlightKid |
3:8b8cb5392fa0 | 21 | public: |
SpotlightKid |
3:8b8cb5392fa0 | 22 | SwitchHandler(EventQueue * queue, MIDI_CB cb, SwitchConfig * sw); |
SpotlightKid |
3:8b8cb5392fa0 | 23 | void handle_pressed(void); |
SpotlightKid |
3:8b8cb5392fa0 | 24 | void handle_released(void); |
SpotlightKid |
3:8b8cb5392fa0 | 25 | #ifndef NDEBUG |
SpotlightKid |
3:8b8cb5392fa0 | 26 | void setSerial(Serial * s) { serial = s; }; |
SpotlightKid |
3:8b8cb5392fa0 | 27 | #endif /* NDEBUG */ |
SpotlightKid |
3:8b8cb5392fa0 | 28 | private: |
SpotlightKid |
3:8b8cb5392fa0 | 29 | EventQueue * queue; |
SpotlightKid |
3:8b8cb5392fa0 | 30 | MIDI_CB write_cb; |
SpotlightKid |
3:8b8cb5392fa0 | 31 | PinDetect btn; |
SpotlightKid |
3:8b8cb5392fa0 | 32 | uint8_t control, channel, on_value, off_value; |
SpotlightKid |
3:8b8cb5392fa0 | 33 | #ifndef NDEBUG |
SpotlightKid |
3:8b8cb5392fa0 | 34 | Serial * serial; |
SpotlightKid |
3:8b8cb5392fa0 | 35 | #endif /* NDEBUG */ |
SpotlightKid |
3:8b8cb5392fa0 | 36 | }; |
SpotlightKid |
3:8b8cb5392fa0 | 37 | |
SpotlightKid |
3:8b8cb5392fa0 | 38 | #endif /* MIDISWITCH_H */ |