Simple USB-MIDI foot controller
Dependencies: PinDetect USBDevice_STM32F103 mbed-STM32F103C8T6
midiswitch.cpp
- Committer:
- SpotlightKid
- Date:
- 2017-08-04
- Revision:
- 3:8b8cb5392fa0
- Child:
- 6:2f804d29cbb0
File content as of revision 3:8b8cb5392fa0:
#include "midiswitch.h" SwitchHandler::SwitchHandler(EventQueue * queue, MIDI_CB cb, SwitchConfig * sw) : queue(queue), write_cb(cb), btn(sw->pin), control(sw->control), channel(sw->channel), on_value(sw->on_value), off_value(sw->off_value) { btn.attach_asserted(this, &SwitchHandler::handle_pressed); btn.attach_deasserted(this, &SwitchHandler::handle_released); btn.setSampleFrequency(); #ifndef NDEBUG serial = NULL; #endif }; void SwitchHandler::handle_pressed(void) { #ifndef NDEBUG serial->printf("Switch pressed: control=%d channel=%d value=%d\r\n", control, channel, on_value); #endif queue->call(write_cb, MIDIMessage::ControlChange((int) control, (int) on_value, (int) (channel - 1))); }; void SwitchHandler::handle_released(void) { #ifndef NDEBUG serial->printf("Switch released: control=%d channel=%d value=%d\r\n", control, channel, off_value); #endif queue->call(write_cb, MIDIMessage::ControlChange((int) control, (int) off_value, (int) (channel - 1))); };