# mios32/common/mios32_midi.c File Reference

`#include <mios32.h>`
`#include <string.h>`
`#include <stdarg.h>`

## Data Structures
union | sysex_state_t
union | sysex_timeout_ctr_flags_t
## Functions
s32 | MIOS32_MIDI_Init (u32 mode)
s32 | MIOS32_MIDI_CheckAvailable (mios32_midi_port_t port)
s32 | MIOS32_MIDI_RS_OptimisationSet (mios32_midi_port_t port, u8 enable)
s32 | MIOS32_MIDI_RS_OptimisationGet (mios32_midi_port_t port)
s32 | MIOS32_MIDI_RS_Reset (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendPackage_NonBlocking (mios32_midi_port_t port, mios32_midi_package_t package)
s32 | MIOS32_MIDI_SendPackage (mios32_midi_port_t port, mios32_midi_package_t package)
s32 | MIOS32_MIDI_SendEvent (mios32_midi_port_t port, u8 evnt0, u8 evnt1, u8 evnt2)
s32 | MIOS32_MIDI_SendNoteOff (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 note, u8 vel)
s32 | MIOS32_MIDI_SendNoteOn (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 note, u8 vel)
s32 | MIOS32_MIDI_SendPolyPressure (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 note, u8 val)
s32 | MIOS32_MIDI_SendCC (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 cc_number, u8 val)
s32 | MIOS32_MIDI_SendProgramChange (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 prg)
s32 | MIOS32_MIDI_SendAftertouch (mios32_midi_port_t port, mios32_midi_chn_t chn, u8 val)
s32 | MIOS32_MIDI_SendPitchBend (mios32_midi_port_t port, mios32_midi_chn_t chn, u16 val)
s32 | MIOS32_MIDI_SendSpecialEvent (mios32_midi_port_t port, u8 type, u8 evnt0, u8 evnt1, u8 evnt2)
s32 | MIOS32_MIDI_SendMTC (mios32_midi_port_t port, u8 val)
s32 | MIOS32_MIDI_SendSongPosition (mios32_midi_port_t port, u16 val)
s32 | MIOS32_MIDI_SendSongSelect (mios32_midi_port_t port, u8 val)
s32 | MIOS32_MIDI_SendTuneRequest (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendClock (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendTick (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendStart (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendContinue (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendStop (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendActiveSense (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendReset (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendSysEx (mios32_midi_port_t port, u8 *stream, u32 count)
s32 | MIOS32_MIDI_SendDebugStringHeader (mios32_midi_port_t port, char command, char first_byte)
s32 | MIOS32_MIDI_SendDebugStringBody (mios32_midi_port_t port, char *str, u32 len)
s32 | MIOS32_MIDI_SendDebugStringFooter (mios32_midi_port_t port)
s32 | MIOS32_MIDI_SendDebugString (const char *str)
s32 | MIOS32_MIDI_SendDebugMessage (const char *format,...)
s32 | MIOS32_MIDI_SendDebugHexDump (const u8 *src, u32 len)
s32 | MIOS32_MIDI_ReceivePackage (mios32_midi_port_t port, mios32_midi_package_t package, void *_callback_package)
s32 | MIOS32_MIDI_Receive_Handler (void *_callback_package)
s32 | MIOS32_MIDI_Periodic_mS (void)
s32 | MIOS32_MIDI_DirectTxCallback_Init (s32(*callback_tx)(mios32_midi_port_t port, mios32_midi_package_t package))
s32 | MIOS32_MIDI_DirectRxCallback_Init (s32(*callback_rx)(mios32_midi_port_t port, u8 midi_byte))
s32 | MIOS32_MIDI_SendByteToRxCallback (mios32_midi_port_t port, u8 midi_byte)
s32 | MIOS32_MIDI_SendPackageToRxCallback (mios32_midi_port_t port, mios32_midi_package_t midi_package)
s32 | MIOS32_MIDI_DefaultPortSet (mios32_midi_port_t port)
mios32_midi_port_t | MIOS32_MIDI_DefaultPortGet (void)
s32 | MIOS32_MIDI_DebugPortSet (mios32_midi_port_t port)
mios32_midi_port_t | MIOS32_MIDI_DebugPortGet (void)
s32 | MIOS32_MIDI_DeviceIDSet (u8 device_id)
u8 | MIOS32_MIDI_DeviceIDGet (void)
s32 | MIOS32_MIDI_SysExCallback_Init (s32(*callback_sysex)(mios32_midi_port_t port, u8 midi_in))
s32 | MIOS32_MIDI_DebugCommandCallback_Init (s32(*callback_debug_command)(mios32_midi_port_t port, char c))
s32 | MIOS32_MIDI_FilebrowserCommandCallback_Init (s32(*filebrowser_debug_command)(mios32_midi_port_t port, char c))
s32 | MIOS32_MIDI_TimeOutCallback_Init (s32(*callback_timeout)(mios32_midi_port_t port))
## Variables
const u8 | mios32_midi_pcktype_num_bytes [16]
const u8 | mios32_midi_expected_bytes_common [8]
| Number if expected bytes for a common MIDI event - 1.
const u8 | mios32_midi_expected_bytes_system [16]
| Number if expected bytes for a system MIDI event - 1.
const u8 | mios32_midi_sysex_header [5] = { 0xf0, 0x00, 0x00, 0x7e, 0x32 }
| should only be used by MIOS32 internally and by the Bootloader!