Nanomidi
Simple stream-based MIDI message encoder and decoder
midi_istream Struct Reference

Input stream for midi_decode() More...

#include <decoder.h>

Collaboration diagram for midi_istream:

Data Fields

size_t(* read_cb )(struct midi_istream *stream, void *data, size_t size)
 Pointer to a user-implemented read callback. More...
 
size_t capacity
 Stream capacity. More...
 
struct midi_message msg
 Message data structure filled by the decoder. More...
 
struct midi_message rtmsg
 Message data structure filled by the decoder. More...
 
struct midi_sysex_buffer sysex_buffer
 Buffer for SysEx messages decoding. More...
 
int bytes_left
 Number of bytes remaining to complete the current message (handled internally). More...
 
void * param
 Optional parameter to be passed to read_cb() More...
 

Detailed Description

Input stream for midi_decode()

Read callback read_cb() and stream capacity must be provided by the user. If SysEx decoding is required, it is necessary to provide a buffer in sysex_buffer. It is possible to use midi_istream_from_buffer() to create a stream which reads from a buffer.

Field Documentation

◆ read_cb

size_t(* read_cb) (struct midi_istream *stream, void *data, size_t size)

Pointer to a user-implemented read callback.

The callback should read the exact number of bytes requested.

Parameters
streamPointer to associated midi_istream
[out]dataData read
sizeNumber of bytes to be read
Returns
The number of bytes actually read

◆ capacity

size_t capacity

Stream capacity.

Function midi_decode() will not read more than capacity bytes from the stream unless midi_istream.capacity is set to MIDI_STREAM_CAPACITY_UNLIMITED.

◆ msg

struct midi_message msg

Message data structure filled by the decoder.

Once a message is decoded, midi_decode() returns pointer to midi_istream.msg.

◆ rtmsg

struct midi_message rtmsg

Message data structure filled by the decoder.

Once a System Real Time Message is decoded, midi_decode() returns pointer to midi_istream.rtmsg.

◆ sysex_buffer

struct midi_sysex_buffer sysex_buffer

Buffer for SysEx messages decoding.

◆ bytes_left

int bytes_left

Number of bytes remaining to complete the current message (handled internally).

◆ param

void* param

Optional parameter to be passed to read_cb()


The documentation for this struct was generated from the following file: