process_midi.h 608 B

1234567891011121314151617181920212223242526272829
  1. #ifndef PROCESS_MIDI_H
  2. #define PROCESS_MIDI_H
  3. #include "quantum.h"
  4. #include "midi.h"
  5. typedef union {
  6. uint32_t raw;
  7. struct {
  8. uint8_t octave :4;
  9. int8_t transpose :4;
  10. uint8_t velocity :4;
  11. uint8_t channel :4;
  12. uint8_t modulation_interval :4;
  13. };
  14. } midi_config_t;
  15. midi_config_t midi_config;
  16. void midi_init(void);
  17. void midi_task(void);
  18. bool process_midi(uint16_t keycode, keyrecord_t *record);
  19. #define MIDI_INVALID_NOTE 0xFF
  20. #define MIDI_TONE_COUNT (MIDI_TONE_MAX - MIDI_TONE_MIN + 1)
  21. uint8_t midi_compute_note(uint16_t keycode);
  22. #endif