123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498 |
- #ifndef XNOR_MIDI_H
- #define XNOR_MIDI_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "midi_device.h"
- #include "midi_function_types.h"
- void midi_device_init(MidiDevice * device);
- void midi_device_process(MidiDevice * device);
- void midi_send_cc(MidiDevice * device, uint8_t chan, uint8_t num, uint8_t val);
- void midi_send_noteon(MidiDevice * device, uint8_t chan, uint8_t num, uint8_t vel);
- void midi_send_noteoff(MidiDevice * device, uint8_t chan, uint8_t num, uint8_t vel);
- void midi_send_aftertouch(MidiDevice * device, uint8_t chan, uint8_t note_num, uint8_t amt);
- void midi_send_pitchbend(MidiDevice * device, uint8_t chan, int16_t amt);
- void midi_send_programchange(MidiDevice * device, uint8_t chan, uint8_t num);
- void midi_send_channelpressure(MidiDevice * device, uint8_t chan, uint8_t amt);
- void midi_send_clock(MidiDevice * device);
- void midi_send_tick(MidiDevice * device);
- void midi_send_start(MidiDevice * device);
- void midi_send_continue(MidiDevice * device);
- void midi_send_stop(MidiDevice * device);
- void midi_send_activesense(MidiDevice * device);
- void midi_send_reset(MidiDevice * device);
- void midi_send_tcquarterframe(MidiDevice * device, uint8_t time);
- void midi_send_songposition(MidiDevice * device, uint16_t pos);
- void midi_send_songselect(MidiDevice * device, uint8_t song);
- void midi_send_tunerequest(MidiDevice * device);
- void midi_send_byte(MidiDevice * device, uint8_t b);
- void midi_send_data(MidiDevice * device, uint16_t count, uint8_t byte0, uint8_t byte1, uint8_t byte2);
- void midi_send_array(MidiDevice * device, uint16_t count, uint8_t * array);
- void midi_register_cc_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_noteon_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_noteoff_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_aftertouch_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_pitchbend_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_songposition_callback(MidiDevice * device, midi_three_byte_func_t func);
- void midi_register_progchange_callback(MidiDevice * device, midi_two_byte_func_t func);
- void midi_register_chanpressure_callback(MidiDevice * device, midi_two_byte_func_t func);
- void midi_register_songselect_callback(MidiDevice * device, midi_two_byte_func_t func);
- void midi_register_tc_quarterframe_callback(MidiDevice * device, midi_two_byte_func_t func);
- void midi_register_realtime_callback(MidiDevice * device, midi_one_byte_func_t func);
- void midi_register_tunerequest_callback(MidiDevice * device, midi_one_byte_func_t func);
- void midi_register_sysex_callback(MidiDevice * device, midi_sysex_func_t func);
- void midi_register_fallthrough_callback(MidiDevice * device, midi_var_byte_func_t func);
- void midi_register_catchall_callback(MidiDevice * device, midi_var_byte_func_t func);
- typedef enum {
- UNDEFINED = 0,
- ONE = 1,
- TWO = 2,
- THREE = 3} midi_packet_length_t;
- bool midi_is_statusbyte(uint8_t theByte);
- bool midi_is_realtime(uint8_t theByte);
- midi_packet_length_t midi_packet_length(uint8_t status);
- #define SYSEX_BEGIN 0xF0
- #define SYSEX_END 0xF7
- #define MIDI_STATUSMASK 0x80
- #define MIDI_CHANMASK 0x0F
- #define MIDI_CC 0xB0
- #define MIDI_NOTEON 0x90
- #define MIDI_NOTEOFF 0x80
- #define MIDI_AFTERTOUCH 0xA0
- #define MIDI_PITCHBEND 0xE0
- #define MIDI_PROGCHANGE 0xC0
- #define MIDI_CHANPRESSURE 0xD0
- #define MIDI_CLOCK 0xF8
- #define MIDI_TICK 0xF9
- #define MIDI_START 0xFA
- #define MIDI_CONTINUE 0xFB
- #define MIDI_STOP 0xFC
- #define MIDI_ACTIVESENSE 0xFE
- #define MIDI_RESET 0xFF
- #define MIDI_TC_QUARTERFRAME 0xF1
- #define MIDI_SONGPOSITION 0xF2
- #define MIDI_SONGSELECT 0xF3
- #define MIDI_TUNEREQUEST 0xF6
- #define SYSEX_EDUMANUFID 0x7D
- #ifdef __cplusplus
- }
- #endif
- #endif
|