midi_device
{#group__midi__device}You use the functions when you are implementing your own midi device.
You set a send function to actually send bytes via your device, this method is called when you call a send function with this device, for instance midi_send_cc
You use the midi_device_input to process input data from the device and pass it through the device's associated callbacks.
You use the midi_device_set_pre_input_process_func if you want to have a function called at the beginning of the device's process function, generally to poll for input and pass that into midi_device_input
Members | Descriptions |
---|---|
define MIDI_INPUT_QUEUE_LENGTH |
|
enum input_state_t |
|
public void midi_device_input ( MidiDevice * device,uint8_t cnt,uint8_t * input) |
Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input. |
public void midi_device_set_send_func ( MidiDevice * device,midi_var_byte_func_t send_func) |
Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking. |
public void midi_device_set_pre_input_process_func ( MidiDevice * device,midi_no_byte_func_t pre_process_func) |
Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device. |
struct _midi_device |
This structure represents the input and output functions and processing data for a midi device. |
define
MIDI_INPUT_QUEUE_LENGTH
{#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8}enum
input_state_t
{#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621}Values | Descriptions |
---|---|
IDLE | |
ONE_BYTE_MESSAGE | |
TWO_BYTE_MESSAGE | |
THREE_BYTE_MESSAGE | |
SYSEX_MESSAGE |
public void
midi_device_input
(
MidiDevice
* device,uint8_t cnt,uint8_t * input)
{#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db}Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input.
device
the midi device to associate the input with
cnt
the number of bytes you are processing
input
the bytes to process
public void
midi_device_set_send_func
(
MidiDevice
* device,midi_var_byte_func_t send_func)
{#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673}Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking.
device
the midi device to associate this callback with
send_func
the callback function that will do the sending
public void
midi_device_set_pre_input_process_func
(
MidiDevice
* device,midi_no_byte_func_t pre_process_func)
{#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69}Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device.
device
the midi device to associate this callback with
midi_no_byte_func_t
the actual callback function
_midi_device
{#struct__midi__device}This structure represents the input and output functions and processing data for a midi device.
A device can represent an actual physical device [serial port, usb port] or something virtual. You should not need to modify this structure directly.
Members | Descriptions |
---|---|
public midi_var_byte_func_t send_func |
|
public midi_three_byte_func_t input_cc_callback |
|
public midi_three_byte_func_t input_noteon_callback |
|
public midi_three_byte_func_t input_noteoff_callback |
|
public midi_three_byte_func_t input_aftertouch_callback |
|
public midi_three_byte_func_t input_pitchbend_callback |
|
public midi_three_byte_func_t input_songposition_callback |
|
public midi_two_byte_func_t input_progchange_callback |
|
public midi_two_byte_func_t input_chanpressure_callback |
|
public midi_two_byte_func_t input_songselect_callback |
|
public midi_two_byte_func_t input_tc_quarterframe_callback |
|
public midi_one_byte_func_t input_realtime_callback |
|
public midi_one_byte_func_t input_tunerequest_callback |
|
public midi_sysex_func_t input_sysex_callback |
|
public midi_var_byte_func_t input_fallthrough_callback |
|
public midi_var_byte_func_t input_catchall_callback |
|
public midi_no_byte_func_t pre_input_process_callback |
|
public uint8_t input_buffer |
|
public input_state_t input_state |
|
public uint16_t input_count |
|
public uint8_t input_queue_data |
|
public byteQueue_t input_queue |
public midi_var_byte_func_t
send_func
{#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9}public midi_three_byte_func_t
input_cc_callback
{#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1}public midi_three_byte_func_t
input_noteon_callback
{#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c}public midi_three_byte_func_t
input_noteoff_callback
{#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84}public midi_three_byte_func_t
input_aftertouch_callback
{#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f}public midi_three_byte_func_t
input_pitchbend_callback
{#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18}public midi_three_byte_func_t
input_songposition_callback
{#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586}public midi_two_byte_func_t
input_progchange_callback
{#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da}public midi_two_byte_func_t
input_chanpressure_callback
{#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7}public midi_two_byte_func_t
input_songselect_callback
{#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f}public midi_two_byte_func_t
input_tc_quarterframe_callback
{#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0}public midi_one_byte_func_t
input_realtime_callback
{#struct__midi__device_1a9448eba4afb7e43650434748db3777be}public midi_one_byte_func_t
input_tunerequest_callback
{#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d}public midi_sysex_func_t
input_sysex_callback
{#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2}public midi_var_byte_func_t
input_fallthrough_callback
{#struct__midi__device_1abb974ec6d734001b4a0e370f292be503}public midi_var_byte_func_t
input_catchall_callback
{#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8}public midi_no_byte_func_t
pre_input_process_callback
{#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754}public uint8_t
input_buffer
{#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a}public input_state_t
input_state
{#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39}public uint16_t
input_count
{#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d}public uint8_t
input_queue_data
{#struct__midi__device_1ada41de021135dc423abedcbb30f366ff}public
byteQueue_t
input_queue
{#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f}