Simple USB-MIDI foot controller

Dependencies:   PinDetect USBDevice_STM32F103 mbed-STM32F103C8T6

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?

UserRevisionLine numberNew 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 */