RawMidi Interface

## Macros

#define | SND_RAWMIDI_DLSYM_VERSION _dlsym_rawmidi_001
#define | SND_RAWMIDI_APPEND
#define | SND_RAWMIDI_NONBLOCK
#define | SND_RAWMIDI_SYNC
#define | snd_rawmidi_info_alloca(ptr)
| allocate an invalid snd_rawmidi_info_t using standard alloca More...
#define | snd_rawmidi_params_alloca(ptr)
| allocate an invalid snd_rawmidi_params_t using standard alloca More...
#define | snd_rawmidi_status_alloca(ptr)
| allocate an invalid snd_rawmidi_status_t using standard alloca More...

## Typedefs

typedef struct _snd_rawmidi_info | snd_rawmidi_info_t
typedef struct _snd_rawmidi_params | snd_rawmidi_params_t
typedef struct _snd_rawmidi_status | snd_rawmidi_status_t
typedef struct _snd_rawmidi | snd_rawmidi_t

## Enumerations

enum | snd_rawmidi_stream_t { SND_RAWMIDI_STREAM_OUTPUT = 0 , SND_RAWMIDI_STREAM_INPUT , SND_RAWMIDI_STREAM_LAST = SND_RAWMIDI_STREAM_INPUT }
enum | snd_rawmidi_type_t { SND_RAWMIDI_TYPE_HW , SND_RAWMIDI_TYPE_SHM , SND_RAWMIDI_TYPE_INET , SND_RAWMIDI_TYPE_VIRTUAL }
enum | snd_rawmidi_clock_t { SND_RAWMIDI_CLOCK_NONE = 0 , SND_RAWMIDI_CLOCK_REALTIME = 1 , SND_RAWMIDI_CLOCK_MONOTONIC = 2 , SND_RAWMIDI_CLOCK_MONOTONIC_RAW = 3 }
enum | snd_rawmidi_read_mode_t { SND_RAWMIDI_READ_STANDARD = 0 , SND_RAWMIDI_READ_TSTAMP = 1 }

## Functions

int | snd_rawmidi_open (snd_rawmidi_t **in_rmidi, snd_rawmidi_t **out_rmidi, const char *name, int mode)
| Opens a new connection to the RawMidi interface. More...
int | snd_rawmidi_open_lconf (snd_rawmidi_t **in_rmidi, snd_rawmidi_t **out_rmidi, const char *name, int mode, snd_config_t *lconf)
| Opens a new connection to the RawMidi interface using local configuration. More...
int | snd_rawmidi_close (snd_rawmidi_t *rmidi)
| close RawMidi handle More...
int | snd_rawmidi_poll_descriptors_count (snd_rawmidi_t *rmidi)
| get count of poll descriptors for RawMidi handle More...
int | snd_rawmidi_poll_descriptors (snd_rawmidi_t *rmidi, struct pollfd *pfds, unsigned int space)
| get poll descriptors More...
int | snd_rawmidi_poll_descriptors_revents (snd_rawmidi_t *rawmidi, struct pollfd *pfds, unsigned int nfds, unsigned short *revent)
| get returned events from poll descriptors More...
int | snd_rawmidi_nonblock (snd_rawmidi_t *rmidi, int nonblock)
| set nonblock mode More...
size_t | snd_rawmidi_info_sizeof (void)
| get size of the snd_rawmidi_info_t structure in bytes More...
int | snd_rawmidi_info_malloc (snd_rawmidi_info_t **ptr)
| allocate a new snd_rawmidi_info_t structure More...
void | snd_rawmidi_info_free (snd_rawmidi_info_t *obj)
| frees the snd_rawmidi_info_t structure More...
void | snd_rawmidi_info_copy (snd_rawmidi_info_t *dst, const snd_rawmidi_info_t *src)
| copy one snd_rawmidi_info_t structure to another More...
unsigned int | snd_rawmidi_info_get_device (const snd_rawmidi_info_t *obj)
| get rawmidi device number More...
unsigned int | snd_rawmidi_info_get_subdevice (const snd_rawmidi_info_t *obj)
| get rawmidi subdevice number More...
snd_rawmidi_stream_t | snd_rawmidi_info_get_stream (const snd_rawmidi_info_t *obj)
| get rawmidi stream identification More...
int | snd_rawmidi_info_get_card (const snd_rawmidi_info_t *obj)
| get rawmidi card number More...
unsigned int | snd_rawmidi_info_get_flags (const snd_rawmidi_info_t *obj)
| get rawmidi flags More...
const char * | snd_rawmidi_info_get_id (const snd_rawmidi_info_t *obj)
| get rawmidi hardware driver identifier More...
const char * | snd_rawmidi_info_get_name (const snd_rawmidi_info_t *obj)
| get rawmidi hardware driver name More...
const char * | snd_rawmidi_info_get_subdevice_name (const snd_rawmidi_info_t *obj)
| get rawmidi subdevice name More...
unsigned int | snd_rawmidi_info_get_subdevices_count (const snd_rawmidi_info_t *obj)
| get rawmidi count of subdevices More...
unsigned int | snd_rawmidi_info_get_subdevices_avail (const snd_rawmidi_info_t *obj)
| get rawmidi available count of subdevices More...
void | snd_rawmidi_info_set_device (snd_rawmidi_info_t *obj, unsigned int val)
| set rawmidi device number More...
void | snd_rawmidi_info_set_subdevice (snd_rawmidi_info_t *obj, unsigned int val)
| set rawmidi subdevice number More...
void | snd_rawmidi_info_set_stream (snd_rawmidi_info_t *obj, snd_rawmidi_stream_t val)
| set rawmidi stream identifier More...
int | snd_rawmidi_info (snd_rawmidi_t *rmidi, snd_rawmidi_info_t *info)
| get information about RawMidi handle More...
size_t | snd_rawmidi_params_sizeof (void)
| get size of the snd_rawmidi_params_t structure in bytes More...
int | snd_rawmidi_params_malloc (snd_rawmidi_params_t **ptr)
| allocate the snd_rawmidi_params_t structure More...
void | snd_rawmidi_params_free (snd_rawmidi_params_t *obj)
| frees the snd_rawmidi_params_t structure More...
void | snd_rawmidi_params_copy (snd_rawmidi_params_t *dst, const snd_rawmidi_params_t *src)
| copy one snd_rawmidi_params_t structure to another More...
int | snd_rawmidi_params_set_buffer_size (snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, size_t val)
| set rawmidi I/O ring buffer size More...
size_t | snd_rawmidi_params_get_buffer_size (const snd_rawmidi_params_t *params)
| get rawmidi I/O ring buffer size More...
int | snd_rawmidi_params_set_avail_min (snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, size_t val)
| set minimum available bytes in rawmidi I/O ring buffer for wakeup More...
size_t | snd_rawmidi_params_get_avail_min (const snd_rawmidi_params_t *params)
| get minimum available bytes in rawmidi I/O ring buffer for wakeup More...
int | snd_rawmidi_params_set_no_active_sensing (snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params, int val)
| set no-active-sensing action on snd_rawmidi_close() More...
int | snd_rawmidi_params_get_no_active_sensing (const snd_rawmidi_params_t *params)
| get no-active-sensing action status More...
int | snd_rawmidi_params_set_read_mode (const snd_rawmidi_t *rawmidi, snd_rawmidi_params_t *params, snd_rawmidi_read_mode_t val)
| set read mode More...
snd_rawmidi_read_mode_t | snd_rawmidi_params_get_read_mode (const snd_rawmidi_params_t *params)
| get current read mode More...
int | snd_rawmidi_params_set_clock_type (const snd_rawmidi_t *rawmidi, snd_rawmidi_params_t *params, snd_rawmidi_clock_t val)
| sets clock type for tstamp type framing More...
snd_rawmidi_clock_t | snd_rawmidi_params_get_clock_type (const snd_rawmidi_params_t *params)
| get current clock type (for tstamp type framing) More...
int | snd_rawmidi_params (snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params)
| set parameters about rawmidi stream More...
int | snd_rawmidi_params_current (snd_rawmidi_t *rmidi, snd_rawmidi_params_t *params)
| get current parameters about rawmidi stream More...
size_t | snd_rawmidi_status_sizeof (void)
| get size of the snd_rawmidi_status_t structure in bytes More...
int | snd_rawmidi_status_malloc (snd_rawmidi_status_t **ptr)
| allocate the snd_rawmidi_status_t structure More...
void | snd_rawmidi_status_free (snd_rawmidi_status_t *obj)
| frees the snd_rawmidi_status_t structure More...
void | snd_rawmidi_status_copy (snd_rawmidi_status_t *dst, const snd_rawmidi_status_t *src)
| copy one snd_rawmidi_status_t structure to another More...
void | snd_rawmidi_status_get_tstamp (const snd_rawmidi_status_t *obj, snd_htimestamp_t *ptr)
| get the start timestamp More...
size_t | snd_rawmidi_status_get_avail (const snd_rawmidi_status_t *obj)
| get current available bytes in the rawmidi I/O ring buffer More...
size_t | snd_rawmidi_status_get_xruns (const snd_rawmidi_status_t *obj)
| get count of xruns More...
int | snd_rawmidi_status (snd_rawmidi_t *rmidi, snd_rawmidi_status_t *status)
| get status of rawmidi stream More...
int | snd_rawmidi_drain (snd_rawmidi_t *rmidi)
| drain all bytes in the rawmidi I/O ring buffer More...
int | snd_rawmidi_drop (snd_rawmidi_t *rmidi)
| drop all bytes in the rawmidi I/O ring buffer immediately More...
ssize_t | snd_rawmidi_write (snd_rawmidi_t *rmidi, const void *buffer, size_t size)
| write MIDI bytes to MIDI stream More...
ssize_t | snd_rawmidi_read (snd_rawmidi_t *rmidi, void *buffer, size_t size)
| read MIDI bytes from MIDI stream More...
ssize_t | snd_rawmidi_tread (snd_rawmidi_t *rmidi, struct timespec *tstamp, void *buffer, size_t size)
| read MIDI bytes from MIDI stream with timestamp More...
const char * | snd_rawmidi_name (snd_rawmidi_t *rmidi)
| get identifier of RawMidi handle More...
snd_rawmidi_type_t | snd_rawmidi_type (snd_rawmidi_t *rmidi)
| get type of RawMidi handle More...
snd_rawmidi_stream_t | snd_rawmidi_stream (snd_rawmidi_t *rawmidi)
| get stream (direction) of RawMidi handle More...

## Detailed Description

The RawMidi Interface. See RawMidi interface page for more details.

## Macro Definition Documentation

## SND_RAWMIDI_APPEND

#define SND_RAWMIDI_APPEND

Append (flag to open mode)

## SND_RAWMIDI_DLSYM_VERSION

#define SND_RAWMIDI_DLSYM_VERSION _dlsym_rawmidi_001

dlsym version for interface entry callback

## snd_rawmidi_info_alloca

#define snd_rawmidi_info_alloca | ( |  | ptr | ) |

allocate an invalid snd_rawmidi_info_t using standard alloca

Parameters

  ptr | returned pointer

## SND_RAWMIDI_NONBLOCK

#define SND_RAWMIDI_NONBLOCK

Non blocking mode (flag to open mode)

## snd_rawmidi_params_alloca

#define snd_rawmidi_params_alloca | ( |  | ptr | ) |

allocate an invalid snd_rawmidi_params_t using standard alloca

Parameters

  ptr | returned pointer

## snd_rawmidi_status_alloca

#define snd_rawmidi_status_alloca | ( |  | ptr | ) |

allocate an invalid snd_rawmidi_status_t using standard alloca

Parameters

  ptr | returned pointer

## SND_RAWMIDI_SYNC

#define SND_RAWMIDI_SYNC

Write sync mode (Flag to open mode)

## Typedef Documentation

## snd_rawmidi_info_t

typedef struct _snd_rawmidi_info snd_rawmidi_info_t

RawMidi information container

## snd_rawmidi_params_t

typedef struct _snd_rawmidi_params snd_rawmidi_params_t

RawMidi settings container

## snd_rawmidi_status_t

typedef struct _snd_rawmidi_status snd_rawmidi_status_t

RawMidi status container

## snd_rawmidi_t

typedef struct _snd_rawmidi snd_rawmidi_t

RawMidi handle

## Enumeration Type Documentation

## snd_rawmidi_clock_t

enum snd_rawmidi_clock_t

Type of clock used with rawmidi timestamp

## snd_rawmidi_read_mode_t

enum snd_rawmidi_read_mode_t

Select the read mode (standard or with timestamps)

## snd_rawmidi_stream_t

enum snd_rawmidi_stream_t

RawMidi stream (direction)

Enumerator
SND_RAWMIDI_STREAM_OUTPUT | Output stream
SND_RAWMIDI_STREAM_INPUT | Input stream

## snd_rawmidi_type_t

enum snd_rawmidi_type_t

RawMidi type

Enumerator
SND_RAWMIDI_TYPE_HW | Kernel level RawMidi
SND_RAWMIDI_TYPE_SHM | Shared memory client RawMidi (not yet implemented)
SND_RAWMIDI_TYPE_INET | INET client RawMidi (not yet implemented)
SND_RAWMIDI_TYPE_VIRTUAL | Virtual (sequencer) RawMidi

## Function Documentation

## snd_rawmidi_close()

int snd_rawmidi_close | ( | snd_rawmidi_t * | rawmidi | ) |

close RawMidi handle

Parameters

  rawmidi | RawMidi handle

Returns
  0 on success otherwise a negative error code

Closes the specified RawMidi handle and frees all associated resources.

Examples
  /test/rawmidi.c.

## snd_rawmidi_drain()

int snd_rawmidi_drain | ( | snd_rawmidi_t * | rawmidi | ) |

drain all bytes in the rawmidi I/O ring buffer

Parameters

  rawmidi | RawMidi handle

Returns
  0 on success otherwise a negative error code

Waits until all MIDI bytes are not drained (sent) to the hardware device.

Examples
  /test/rawmidi.c.

## snd_rawmidi_drop()

int snd_rawmidi_drop | ( | snd_rawmidi_t * | rawmidi | ) |

drop all bytes in the rawmidi I/O ring buffer immediately

Parameters

  rawmidi | RawMidi handle

Returns
  0 on success otherwise a negative error code

## snd_rawmidi_info()

int snd_rawmidi_info | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_info_t * | info
| ) |  |

get information about RawMidi handle

Parameters

  rawmidi | RawMidi handle
  info | pointer to a snd_rawmidi_info_t structure to be filled

Returns
  0 on success otherwise a negative error code

## snd_rawmidi_info_copy()

void snd_rawmidi_info_copy | ( | snd_rawmidi_info_t * | dst,
|  | const snd_rawmidi_info_t * | src
| ) |  |

copy one snd_rawmidi_info_t structure to another

Parameters

  dst | destination snd_rawmidi_info_t structure
  src | source snd_rawmidi_info_t structure

## snd_rawmidi_info_free()

void snd_rawmidi_info_free | ( | snd_rawmidi_info_t * | info | ) |

frees the snd_rawmidi_info_t structure

Parameters

  info | pointer to the snd_rawmidi_info_t structure to free

Frees the given snd_rawmidi_params_t structure using the standard free C library function.

## snd_rawmidi_info_get_card()

int snd_rawmidi_info_get_card | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi card number

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi card number

## snd_rawmidi_info_get_device()

unsigned int snd_rawmidi_info_get_device | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi device number

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi device number

## snd_rawmidi_info_get_flags()

unsigned int snd_rawmidi_info_get_flags | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi flags

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi flags

## snd_rawmidi_info_get_id()

const char* snd_rawmidi_info_get_id | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi hardware driver identifier

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi hardware driver identifier

## snd_rawmidi_info_get_name()

const char* snd_rawmidi_info_get_name | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi hardware driver name

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi hardware driver name

## snd_rawmidi_info_get_stream()

snd_rawmidi_stream_t snd_rawmidi_info_get_stream | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi stream identification

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi stream identification

## snd_rawmidi_info_get_subdevice()

unsigned int snd_rawmidi_info_get_subdevice | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi subdevice number

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi subdevice number

## snd_rawmidi_info_get_subdevice_name()

const char* snd_rawmidi_info_get_subdevice_name | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi subdevice name

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi subdevice name

## snd_rawmidi_info_get_subdevices_avail()

unsigned int snd_rawmidi_info_get_subdevices_avail | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi available count of subdevices

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi available count of subdevices

## snd_rawmidi_info_get_subdevices_count()

unsigned int snd_rawmidi_info_get_subdevices_count | ( | const snd_rawmidi_info_t * | info | ) |

get rawmidi count of subdevices

Parameters

  info | pointer to a snd_rawmidi_info_t structure

Returns
  rawmidi count of subdevices

## snd_rawmidi_info_malloc()

int snd_rawmidi_info_malloc | ( | snd_rawmidi_info_t ** | info | ) |

allocate a new snd_rawmidi_info_t structure

Parameters

  info | returned pointer

Returns
  0 on success otherwise a negative error code if fails

Allocates a new snd_rawmidi_params_t structure using the standard malloc C library function.

## snd_rawmidi_info_set_device()

void snd_rawmidi_info_set_device | ( | snd_rawmidi_info_t * | info,
|  | unsigned int | val
| ) |  |

set rawmidi device number

Parameters

  info | pointer to a snd_rawmidi_info_t structure
  val | device number

## snd_rawmidi_info_set_stream()

void snd_rawmidi_info_set_stream | ( | snd_rawmidi_info_t * | info,
|  | snd_rawmidi_stream_t | val
| ) |  |

set rawmidi stream identifier

Parameters

  info | pointer to a snd_rawmidi_info_t structure
  val | rawmidi stream identifier

## snd_rawmidi_info_set_subdevice()

void snd_rawmidi_info_set_subdevice | ( | snd_rawmidi_info_t * | info,
|  | unsigned int | val
| ) |  |

set rawmidi subdevice number

Parameters

  info | pointer to a snd_rawmidi_info_t structure
  val | subdevice number

## snd_rawmidi_info_sizeof()

size_t snd_rawmidi_info_sizeof | ( | void |  | ) |

get size of the snd_rawmidi_info_t structure in bytes

Returns
  size of the snd_rawmidi_info_t structure in bytes

## snd_rawmidi_name()

const char* snd_rawmidi_name | ( | snd_rawmidi_t * | rawmidi | ) |

get identifier of RawMidi handle

Parameters

  rawmidi | a RawMidi handle

Returns
  ascii identifier of RawMidi handle

Returns the ASCII identifier of given RawMidi handle. It's the same identifier specified in snd_rawmidi_open().

## snd_rawmidi_nonblock()

int snd_rawmidi_nonblock | ( | snd_rawmidi_t * | rawmidi,
|  | int | nonblock
| ) |  |

set nonblock mode

Parameters

  rawmidi | RawMidi handle
  nonblock | 0 = block, 1 = nonblock mode

Returns
  0 on success otherwise a negative error code

The nonblock mode cannot be used when the stream is in SND_RAWMIDI_APPEND state.

## snd_rawmidi_open()

int snd_rawmidi_open | ( | snd_rawmidi_t ** | inputp,
|  | snd_rawmidi_t ** | outputp,
|  | const char * | name,
|  | int | mode
| ) |  |

Opens a new connection to the RawMidi interface.

Parameters

  inputp | Returned input handle (NULL if not wanted)
  outputp | Returned output handle (NULL if not wanted)
  name | ASCII identifier of the RawMidi handle
  mode | Open mode

Returns
  0 on success otherwise a negative error code

Opens a new connection to the RawMidi interface specified with an ASCII identifier and mode.

Examples
  /test/rawmidi.c.

## snd_rawmidi_open_lconf()

int snd_rawmidi_open_lconf | ( | snd_rawmidi_t ** | inputp,
|  | snd_rawmidi_t ** | outputp,
|  | const char * | name,
|  | int | mode,
|  | snd_config_t * | lconf
| ) |  |

Opens a new connection to the RawMidi interface using local configuration.

Parameters

  inputp | Returned input handle (NULL if not wanted)
  outputp | Returned output handle (NULL if not wanted)
  name | ASCII identifier of the RawMidi handle
  mode | Open mode
  lconf | Local configuration

Returns
  0 on success otherwise a negative error code

Opens a new connection to the RawMidi interface specified with an ASCII identifier and mode.

## snd_rawmidi_params()

int snd_rawmidi_params | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params
| ) |  |

set parameters about rawmidi stream

Parameters

  rawmidi | RawMidi handle
  params | pointer to a snd_rawmidi_params_t structure to be filled

Returns
  0 on success otherwise a negative error code

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_copy()

void snd_rawmidi_params_copy | ( | snd_rawmidi_params_t * | dst,
|  | const snd_rawmidi_params_t * | src
| ) |  |

copy one snd_rawmidi_params_t structure to another

Parameters

  dst | destination snd_rawmidi_params_t structure
  src | source snd_rawmidi_params_t structure

## snd_rawmidi_params_current()

int snd_rawmidi_params_current | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params
| ) |  |

get current parameters about rawmidi stream

Parameters

  rawmidi | RawMidi handle
  params | pointer to a snd_rawmidi_params_t structure to be filled

Returns
  0 on success otherwise a negative error code

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_free()

void snd_rawmidi_params_free | ( | snd_rawmidi_params_t * | params | ) |

frees the snd_rawmidi_params_t structure

Parameters

  params | pointer to the snd_rawmidi_params_t structure to free

Frees the given snd_rawmidi_params_t structure using the standard free C library function.

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_get_avail_min()

size_t snd_rawmidi_params_get_avail_min | ( | const snd_rawmidi_params_t * | params | ) |

get minimum available bytes in rawmidi I/O ring buffer for wakeup

Parameters

  params | pointer to snd_rawmidi_params_t structure

Returns
  minimum available bytes

## snd_rawmidi_params_get_buffer_size()

size_t snd_rawmidi_params_get_buffer_size | ( | const snd_rawmidi_params_t * | params | ) |

get rawmidi I/O ring buffer size

Parameters

  params | pointer to a snd_rawmidi_params_t structure

Returns
  size of rawmidi I/O ring buffer in bytes

## snd_rawmidi_params_get_clock_type()

snd_rawmidi_clock_t snd_rawmidi_params_get_clock_type | ( | const snd_rawmidi_params_t * | params | ) |

get current clock type (for tstamp type framing)

Parameters

  params | pointer to snd_rawmidi_params_t structure

Returns
  the current clock type (one of the SND_RAWMIDI_CLOCK_* constants)

## snd_rawmidi_params_get_no_active_sensing()

int snd_rawmidi_params_get_no_active_sensing | ( | const snd_rawmidi_params_t * | params | ) |

get no-active-sensing action status

Parameters

  params | pointer to snd_rawmidi_params_t structure

Returns
  the current status (0 = enable, 1 = disable the active sensing message)

## snd_rawmidi_params_get_read_mode()

snd_rawmidi_read_mode_t snd_rawmidi_params_get_read_mode | ( | const snd_rawmidi_params_t * | params | ) |

get current read mode

Parameters

  params | pointer to snd_rawmidi_params_t structure

Returns
  the current read mode (see enum)

## snd_rawmidi_params_malloc()

int snd_rawmidi_params_malloc | ( | snd_rawmidi_params_t ** | params | ) |

allocate the snd_rawmidi_params_t structure

Parameters

  params | returned pointer

Returns
  0 on success otherwise a negative error code if fails

Allocates a new snd_rawmidi_params_t structure using the standard malloc C library function.

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_set_avail_min()

int snd_rawmidi_params_set_avail_min | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params,
|  | size_t | val
| ) |  |

set minimum available bytes in rawmidi I/O ring buffer for wakeup

Parameters

  rawmidi | RawMidi handle
  params | pointer to a snd_rawmidi_params_t structure
  val | desired value

## snd_rawmidi_params_set_buffer_size()

int snd_rawmidi_params_set_buffer_size | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params,
|  | size_t | val
| ) |  |

set rawmidi I/O ring buffer size

Parameters

  rawmidi | RawMidi handle
  params | pointer to a snd_rawmidi_params_t structure
  val | size in bytes

Returns
  0 on success otherwise a negative error code

## snd_rawmidi_params_set_clock_type()

int snd_rawmidi_params_set_clock_type | ( | const snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params,
|  | snd_rawmidi_clock_t | val
| ) |  |

sets clock type for tstamp type framing

Parameters

  rawmidi | RawMidi handle
  params | pointer to snd_rawmidi_params_t structure
  val | one of the SND_RAWMIDI_CLOCK_* constants

Returns
  0 on success, otherwise a negative error code.

Notable error codes: -EINVAL - "val" is invalid -ENOTSUP - Kernel is too old to support framing.

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_set_no_active_sensing()

int snd_rawmidi_params_set_no_active_sensing | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params,
|  | int | val
| ) |  |

set no-active-sensing action on snd_rawmidi_close()

Parameters

  rawmidi | RawMidi handle
  params | pointer to snd_rawmidi_params_t structure
  val | value: 0 = enable to send the active sensing message, 1 = disable

Returns
  0 on success otherwise a negative error code

## snd_rawmidi_params_set_read_mode()

int snd_rawmidi_params_set_read_mode | ( | const snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_params_t * | params,
|  | snd_rawmidi_read_mode_t | val
| ) |  |

set read mode

Parameters

  rawmidi | RawMidi handle
  params | pointer to snd_rawmidi_params_t structure
  val | type of read_mode

Returns
  0 on success, otherwise a negative error code.

Notable error codes: -EINVAL - "val" is invalid -ENOTSUP - mode is not supported

Examples
  /test/rawmidi.c.

## snd_rawmidi_params_sizeof()

size_t snd_rawmidi_params_sizeof | ( | void |  | ) |

get size of the snd_rawmidi_params_t structure in bytes

Returns
  size of the snd_rawmidi_params_t structure in bytes

## snd_rawmidi_poll_descriptors()

int snd_rawmidi_poll_descriptors | ( | snd_rawmidi_t * | rawmidi,
|  | struct pollfd * | pfds,
|  | unsigned int | space
| ) |  |

get poll descriptors

Parameters

  rawmidi | RawMidi handle
  pfds | array of poll descriptors
  space | space in the poll descriptor array

Returns
  count of filled descriptors

## snd_rawmidi_poll_descriptors_count()

int snd_rawmidi_poll_descriptors_count | ( | snd_rawmidi_t * | rawmidi | ) |

get count of poll descriptors for RawMidi handle

Parameters

  rawmidi | RawMidi handle

Returns
  count of poll descriptors

## snd_rawmidi_poll_descriptors_revents()

int snd_rawmidi_poll_descriptors_revents | ( | snd_rawmidi_t * | rawmidi,
|  | struct pollfd * | pfds,
|  | unsigned int | nfds,
|  | unsigned short * | revents
| ) |  |

get returned events from poll descriptors

Parameters

  rawmidi | rawmidi RawMidi handle
  pfds | array of poll descriptors
  nfds | count of poll descriptors
  revents | returned events

Returns
  zero if success, otherwise a negative error code

## snd_rawmidi_read()

ssize_t snd_rawmidi_read | ( | snd_rawmidi_t * | rawmidi,
|  | void * | buffer,
|  | size_t | size
| ) |  |

read MIDI bytes from MIDI stream

Parameters

  rawmidi | RawMidi handle
  buffer | buffer to store the input MIDI bytes
  size | input buffer size in bytes

Return values

  count | of MIDI bytes otherwise a negative error code

Examples
  /test/rawmidi.c.

## snd_rawmidi_status()

int snd_rawmidi_status | ( | snd_rawmidi_t * | rawmidi,
|  | snd_rawmidi_status_t * | status
| ) |  |

get status of rawmidi stream

Parameters

  rawmidi | RawMidi handle
  status | pointer to a snd_rawmidi_status_t structure to be filled

Returns
  0 on success otherwise a negative error code

## snd_rawmidi_status_copy()

void snd_rawmidi_status_copy | ( | snd_rawmidi_status_t * | dst,
|  | const snd_rawmidi_status_t * | src
| ) |  |

copy one snd_rawmidi_status_t structure to another

Parameters

  dst | destination snd_rawmidi_status_t structure
  src | source snd_rawmidi_status_t structure

## snd_rawmidi_status_free()

void snd_rawmidi_status_free | ( | snd_rawmidi_status_t * | status | ) |

frees the snd_rawmidi_status_t structure

Parameters

  status | pointer to the snd_rawmidi_status_t structure to free

Frees the given snd_rawmidi_status_t structure using the standard free C library function.

## snd_rawmidi_status_get_avail()

size_t snd_rawmidi_status_get_avail | ( | const snd_rawmidi_status_t * | status | ) |

get current available bytes in the rawmidi I/O ring buffer

Parameters

  status | pointer to a snd_rawmidi_status_t structure

Returns
  current available bytes in the rawmidi I/O ring buffer

## snd_rawmidi_status_get_tstamp()

void snd_rawmidi_status_get_tstamp | ( | const snd_rawmidi_status_t * | status,
|  | snd_htimestamp_t * | tstamp
| ) |  |

get the start timestamp

Parameters

  status | pointer to a snd_rawmidi_status_t structure
  tstamp | returned timestamp value

## snd_rawmidi_status_get_xruns()

size_t snd_rawmidi_status_get_xruns | ( | const snd_rawmidi_status_t * | status | ) |

get count of xruns

Parameters

  status | pointer to a snd_rawmidi_status_t structure

Returns
  count of xruns

## snd_rawmidi_status_malloc()

int snd_rawmidi_status_malloc | ( | snd_rawmidi_status_t ** | ptr | ) |

allocate the snd_rawmidi_status_t structure

Parameters

  ptr | returned pointer

Returns
  0 on success otherwise a negative error code if fails

Allocates a new snd_rawmidi_status_t structure using the standard malloc C library function.

## snd_rawmidi_status_sizeof()

size_t snd_rawmidi_status_sizeof | ( | void |  | ) |

get size of the snd_rawmidi_status_t structure in bytes

Returns
  size of the snd_rawmidi_status_t structure in bytes

## snd_rawmidi_stream()

snd_rawmidi_stream_t snd_rawmidi_stream | ( | snd_rawmidi_t * | rawmidi | ) |

get stream (direction) of RawMidi handle

Parameters

  rawmidi | a RawMidi handle

Returns
  stream of RawMidi handle

Returns the stream snd_rawmidi_stream_t of given RawMidi handle.

## snd_rawmidi_tread()

ssize_t snd_rawmidi_tread | ( | snd_rawmidi_t * | rawmidi,
|  | struct timespec * | tstamp,
|  | void * | buffer,
|  | size_t | size
| ) |  |

read MIDI bytes from MIDI stream with timestamp

Parameters

  | rawmidi | RawMidi handle
  [out] | tstamp | timestamp for the returned MIDI bytes
  | buffer | buffer to store the input MIDI bytes
  | size | input buffer size in bytes

Return values

  count | of MIDI bytes otherwise a negative error code

Examples
  /test/rawmidi.c.

## snd_rawmidi_type()

snd_rawmidi_type_t snd_rawmidi_type | ( | snd_rawmidi_t * | rawmidi | ) |

get type of RawMidi handle

Parameters

  rawmidi | a RawMidi handle

Returns
  type of RawMidi handle

Returns the type snd_rawmidi_type_t of given RawMidi handle.

## snd_rawmidi_write()

ssize_t snd_rawmidi_write | ( | snd_rawmidi_t * | rawmidi,
|  | const void * | buffer,
|  | size_t | size
| ) |  |

write MIDI bytes to MIDI stream

Parameters

  rawmidi | RawMidi handle
  buffer | buffer containing MIDI bytes
  size | output buffer size in bytes

Examples
  /test/rawmidi.c.