Classes | Defines | Typedefs | Enumerations | Functions

midi_device.h File Reference

Device implementation functions. More...

#include "midi_function_types.h"
#include "bytequeue/bytequeue.h"

Go to the source code of this file.

Classes

struct  _midi_device
 This structure represents the input and output functions and processing data for a midi device. More...

Defines

#define MIDI_INPUT_QUEUE_LENGTH   192

Typedefs

typedef void(* midi_no_byte_func_t )(MidiDevice *device)

Enumerations

enum  input_state_t {
  IDLE, ONE_BYTE_MESSAGE = 1, TWO_BYTE_MESSAGE = 2, THREE_BYTE_MESSAGE = 3,
  SYSEX_MESSAGE
}

Functions

void midi_device_input (MidiDevice *device, uint8_t cnt, uint8_t byte0, uint8_t byte1, uint8_t byte2)
 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.
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.
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.

Detailed Description

Device implementation functions.