ALSA project - the C library reference

Macros | Typedefs | Enumerations | Functions
Sequencer Client Interface
MIDI Sequencer

## Macros
#define | snd_seq_client_info_alloca(ptr) __snd_alloca(ptr, snd_seq_client_info)
#define | snd_seq_client_pool_alloca(ptr) __snd_alloca(ptr, snd_seq_client_pool)

## Typedefs
typedef struct _snd_seq_client_info | snd_seq_client_info_t
typedef struct _snd_seq_client_pool | snd_seq_client_pool_t

## Enumerations
enum | snd_seq_client_type_t { SND_SEQ_USER_CLIENT = 1 , SND_SEQ_KERNEL_CLIENT = 2 }

## Functions
size_t | snd_seq_client_info_sizeof (void)
| get size of snd_seq_client_info_t More...
int | snd_seq_client_info_malloc (snd_seq_client_info_t **ptr)
| allocate an empty snd_seq_client_info_t using standard malloc More...
void | snd_seq_client_info_free (snd_seq_client_info_t *ptr)
| frees a previously allocated snd_seq_client_info_t More...
void | snd_seq_client_info_copy (snd_seq_client_info_t *dst, const snd_seq_client_info_t *src)
| copy one snd_seq_client_info_t to another More...
int | snd_seq_client_info_get_client (const snd_seq_client_info_t *info)
| Get client id of a client_info container. More...
snd_seq_client_type_t | snd_seq_client_info_get_type (const snd_seq_client_info_t *info)
| Get client type of a client_info container. More...
const char * | snd_seq_client_info_get_name (snd_seq_client_info_t *info)
| Get the name of a client_info container. More...
int | snd_seq_client_info_get_broadcast_filter (const snd_seq_client_info_t *info)
| Get the broadcast filter usage of a client_info container. More...
int | snd_seq_client_info_get_error_bounce (const snd_seq_client_info_t *info)
| Get the error-bounce usage of a client_info container. More...
int | snd_seq_client_info_get_card (const snd_seq_client_info_t *info)
| Get the sound card number. More...
int | snd_seq_client_info_get_pid (const snd_seq_client_info_t *info)
| Get the owning PID. More...
const unsigned char * | snd_seq_client_info_get_event_filter (const snd_seq_client_info_t *info)
| (DEPRECATED) Get the event filter bitmap of a client_info container More...
int | snd_seq_client_info_get_num_ports (const snd_seq_client_info_t *info)
| Get the number of opened ports of a client_info container. More...
int | snd_seq_client_info_get_event_lost (const snd_seq_client_info_t *info)
| Get the number of lost events of a client_info container. More...
void | snd_seq_client_info_set_client (snd_seq_client_info_t *info, int client)
| Set the client id of a client_info container. More...
void | snd_seq_client_info_set_name (snd_seq_client_info_t *info, const char *name)
| Set the name of a client_info container. More...
void | snd_seq_client_info_set_broadcast_filter (snd_seq_client_info_t *info, int val)
| Set the broadcast filter usage of a client_info container. More...
void | snd_seq_client_info_set_error_bounce (snd_seq_client_info_t *info, int val)
| Set the error-bounce usage of a client_info container. More...
void | snd_seq_client_info_set_event_filter (snd_seq_client_info_t *info, unsigned char *filter)
| (DEPRECATED) Set the event filter bitmap of a client_info container More...
void | snd_seq_client_info_event_filter_clear (snd_seq_client_info_t *info)
| Disable event filtering of a client_info container. More...
void | snd_seq_client_info_event_filter_add (snd_seq_client_info_t *info, int event_type)
| Add an event type to the event filtering of a client_info container. More...
void | snd_seq_client_info_event_filter_del (snd_seq_client_info_t *info, int event_type)
| Remove an event type from the event filtering of a client_info container. More...
int | snd_seq_client_info_event_filter_check (snd_seq_client_info_t *info, int event_type)
| Check if an event type is present in the event filtering of a client_info container. More...
int | snd_seq_get_client_info (snd_seq_t *handle, snd_seq_client_info_t *info)
| obtain the current client information More...
int | snd_seq_get_any_client_info (snd_seq_t *handle, int client, snd_seq_client_info_t *info)
| obtain the information of the given client More...
int | snd_seq_set_client_info (snd_seq_t *handle, snd_seq_client_info_t *info)
| set the current client information More...
int | snd_seq_query_next_client (snd_seq_t *handle, snd_seq_client_info_t *info)
| query the next client More...
size_t | snd_seq_client_pool_sizeof (void)
| get size of snd_seq_client_pool_t More...
int | snd_seq_client_pool_malloc (snd_seq_client_pool_t **ptr)
| allocate an empty snd_seq_client_pool_t using standard malloc More...
void | snd_seq_client_pool_free (snd_seq_client_pool_t *ptr)
| frees a previously allocated snd_seq_client_pool_t More...
void | snd_seq_client_pool_copy (snd_seq_client_pool_t *dst, const snd_seq_client_pool_t *src)
| copy one snd_seq_client_pool_t to another More...
int | snd_seq_client_pool_get_client (const snd_seq_client_pool_t *info)
| Get the client id of a queue_info container. More...
size_t | snd_seq_client_pool_get_output_pool (const snd_seq_client_pool_t *info)
| Get the output pool size of a queue_info container. More...
size_t | snd_seq_client_pool_get_input_pool (const snd_seq_client_pool_t *info)
| Get the input pool size of a queue_info container. More...
size_t | snd_seq_client_pool_get_output_room (const snd_seq_client_pool_t *info)
| Get the output room size of a queue_info container. More...
size_t | snd_seq_client_pool_get_output_free (const snd_seq_client_pool_t *info)
| Get the available size on output pool of a queue_info container. More...
size_t | snd_seq_client_pool_get_input_free (const snd_seq_client_pool_t *info)
| Get the available size on input pool of a queue_info container. More...
void | snd_seq_client_pool_set_output_pool (snd_seq_client_pool_t *info, size_t size)
| Set the output pool size of a queue_info container. More...
void | snd_seq_client_pool_set_input_pool (snd_seq_client_pool_t *info, size_t size)
| Set the input pool size of a queue_info container. More...
void | snd_seq_client_pool_set_output_room (snd_seq_client_pool_t *info, size_t size)
| Set the output room size of a queue_info container. More...
int | snd_seq_get_client_pool (snd_seq_t *handle, snd_seq_client_pool_t *info)
| obtain the pool information of the current client More...
int | snd_seq_set_client_pool (snd_seq_t *handle, snd_seq_client_pool_t *info)
| set the pool information More...

## Detailed Description

Sequencer Client Interface

## Macro Definition Documentation

## ◆ snd_seq_client_info_alloca

#define snd_seq_client_info_alloca | ( |  | ptr | ) | __snd_alloca(ptr, snd_seq_client_info)

allocate a snd_seq_client_info_t container on stack

## ◆ snd_seq_client_pool_alloca

#define snd_seq_client_pool_alloca | ( |  | ptr | ) | __snd_alloca(ptr, snd_seq_client_pool)

allocate a snd_seq_client_pool_t container on stack

## Typedef Documentation

## ◆ snd_seq_client_info_t

typedef struct _snd_seq_client_info snd_seq_client_info_t

client information container

## ◆ snd_seq_client_pool_t

typedef struct _snd_seq_client_pool snd_seq_client_pool_t

client pool information container

## Enumeration Type Documentation

## ◆ snd_seq_client_type_t

enum snd_seq_client_type_t

client types

Enumerator
SND_SEQ_USER_CLIENT | user client
SND_SEQ_KERNEL_CLIENT | kernel client

## Function Documentation

## ◆ snd_seq_client_info_copy()

void snd_seq_client_info_copy | ( | snd_seq_client_info_t * | dst,
|  | const snd_seq_client_info_t * | src
| ) |  |

copy one snd_seq_client_info_t to another

Parameters

  dst | pointer to destination
  src | pointer to source

## ◆ snd_seq_client_info_event_filter_add()

void snd_seq_client_info_event_filter_add | ( | snd_seq_client_info_t * | info,
|  | int | event_type
| ) |  |

Add an event type to the event filtering of a client_info container.

Parameters

  info | client_info container
  event_type | event type to be added

Set the event filtering flag of this client_info and add the specified event type to the filter bitmap of this client_info container.

See also
  snd_seq_get_client_info(), snd_seq_set_client_info(), snd_seq_client_info_event_filter_del(), snd_seq_client_info_event_filter_check(), snd_seq_client_info_event_filter_clear()

## ◆ snd_seq_client_info_event_filter_check()

int snd_seq_client_info_event_filter_check | ( | snd_seq_client_info_t * | info,
|  | int | event_type
| ) |  |

Check if an event type is present in the event filtering of a client_info container.

Parameters

  info | client_info container
  event_type | event type to be checked

Returns
  1 if the event type is present, 0 otherwise

Test if the event type is in the filter bitmap of this client_info container.

See also
  snd_seq_get_client_info(), snd_seq_set_client_info(), snd_seq_client_info_event_filter_add(), snd_seq_client_info_event_filter_del(), snd_seq_client_info_event_filter_clear()

## ◆ snd_seq_client_info_event_filter_clear()

void snd_seq_client_info_event_filter_clear | ( | snd_seq_client_info_t * | info | ) |

Disable event filtering of a client_info container.

Parameters

  info | client_info container

Remove all event types added with snd_seq_client_info_event_filter_add and clear the event filtering flag of this client_info container.

See also
  snd_seq_client_info_event_filter_add(), snd_seq_client_info_event_filter_del(), snd_seq_client_info_event_filter_check(), snd_seq_get_client_info(), snd_seq_set_client_info()

## ◆ snd_seq_client_info_event_filter_del()

void snd_seq_client_info_event_filter_del | ( | snd_seq_client_info_t * | info,
|  | int | event_type
| ) |  |

Remove an event type from the event filtering of a client_info container.

Parameters

  info | client_info container
  event_type | event type to be removed

Removes the specified event from the filter bitmap of this client_info container. It will not clear the event filtering flag, use snd_seq_client_info_event_filter_clear instead.

See also
  snd_seq_get_client_info(), snd_seq_set_client_info(), snd_seq_client_info_event_filter_add(), snd_seq_client_info_event_filter_check(), snd_seq_client_info_event_filter_clear()

## ◆ snd_seq_client_info_free()

void snd_seq_client_info_free | ( | snd_seq_client_info_t * | obj | ) |

frees a previously allocated snd_seq_client_info_t

Parameters

  obj | pointer to object to free

## ◆ snd_seq_client_info_get_broadcast_filter()

int snd_seq_client_info_get_broadcast_filter | ( | const snd_seq_client_info_t * | info | ) |

Get the broadcast filter usage of a client_info container.

Parameters

  info | client_info container

Returns
  1 if broadcast is accepted

See also
  snd_seq_get_client_info(), snd_seq_client_info_set_broadcast_filter()

## ◆ snd_seq_client_info_get_card()

int snd_seq_client_info_get_card | ( | const snd_seq_client_info_t * | info | ) |

Get the sound card number.

Parameters

  info | client_info container

Returns
  card number or -1 if value is not available.

Only available for SND_SEQ_KERNEL_CLIENT clients.

The card number can be used to query state about the hardware device providing this client, by concatenating `"hw:CARD="` with the card number and using it as the `name` parameter to snd_ctl_open().

Note
  The return value of -1 is returned for two different conditions: when the running kernel does not support this operation, and when the client does not have a hardware card attached. See snd_seq_client_info_get_pid() for a way to determine if the currently running kernel has support for this operation.

See also
  snd_seq_client_info_get_pid(), snd_card_get_name(), snd_card_get_longname(), snd_ctl_open(), snd_ctl_card_info()

## ◆ snd_seq_client_info_get_client()

int snd_seq_client_info_get_client | ( | const snd_seq_client_info_t * | info | ) |

Get client id of a client_info container.

Parameters

  info | client_info container

Returns
  client id

See also
  snd_seq_get_client_info(), snd_seq_client_info_set_client(), snd_seq_client_id()

## ◆ snd_seq_client_info_get_error_bounce()

int snd_seq_client_info_get_error_bounce | ( | const snd_seq_client_info_t * | info | ) |

Get the error-bounce usage of a client_info container.

Parameters

  info | client_info container

Returns
  1 if error-bounce is enabled

See also
  snd_seq_get_client_info(), snd_seq_client_info_set_error_bounce()

## ◆ snd_seq_client_info_get_event_filter()

const unsigned char * snd_seq_client_info_get_event_filter | ( | const snd_seq_client_info_t * | info | ) |

(DEPRECATED) Get the event filter bitmap of a client_info container

Parameters

  info | client_info container

Returns
  NULL if no event filter, or pointer to event filter bitmap

Use snd_seq_client_info_event_filter_check() instead.

See also
  snd_seq_client_info_event_filter_add(), snd_seq_client_info_event_filter_del(), snd_seq_client_info_event_filter_check(), snd_seq_client_info_event_filter_clear(), snd_seq_get_client_info()

## ◆ snd_seq_client_info_get_event_lost()

int snd_seq_client_info_get_event_lost | ( | const snd_seq_client_info_t * | info | ) |

Get the number of lost events of a client_info container.

Parameters

  info | client_info container

Returns
  number of lost events

See also
  snd_seq_get_client_info()

## ◆ snd_seq_client_info_get_name()

const char * snd_seq_client_info_get_name | ( | snd_seq_client_info_t * | info | ) |

Get the name of a client_info container.

Parameters

  info | client_info container

Returns
  name string

See also
  snd_seq_get_client_info(), snd_seq_client_info_set_name()

## ◆ snd_seq_client_info_get_num_ports()

int snd_seq_client_info_get_num_ports | ( | const snd_seq_client_info_t * | info | ) |

Get the number of opened ports of a client_info container.

Parameters

  info | client_info container

Returns
  number of opened ports

See also
  snd_seq_get_client_info()

## ◆ snd_seq_client_info_get_pid()

int snd_seq_client_info_get_pid | ( | const snd_seq_client_info_t * | info | ) |

Get the owning PID.

Parameters

  info | client_info container

Returns
  pid or -1 if value is not available.

Only available for SND_SEQ_USER_CLIENT clients.

Note
  The functionality for getting a client's PID and getting a client's card was added to the kernel at the same time, so you can use this function to determine if the running kernel supports reporting these values. If your own client has a valid PID as reported by this function, then the running kernel supports both snd_seq_client_info_get_card() and snd_seq_client_info_get_pid().
  Example code for determining kernel support:
  int is_get_card_or_pid_supported(snd_seq_t *seq)
  {
  snd_seq_client_info_t *my_client_info;
  snd_seq_client_info_alloca(&my_client_info);
  snd_seq_get_client_info(seq, my_client_info);
  return snd_seq_client_info_get_pid(my_client_info) != -1;
  }
  snd_seq_client_info_alloca
  #define snd_seq_client_info_alloca(ptr)
  Definition: seq.h:135
  snd_seq_client_info_t
  struct _snd_seq_client_info snd_seq_client_info_t
  Definition: seq.h:125
  snd_seq_client_info_get_pid
  int snd_seq_client_info_get_pid(const snd_seq_client_info_t *info)
  Get the owning PID.
  Definition: seq.c:1594
  snd_seq_get_client_info
  int snd_seq_get_client_info(snd_seq_t *handle, snd_seq_client_info_t *info)
  obtain the current client information
  Definition: seq.c:1846
  snd_seq_t
  struct _snd_seq snd_seq_t
  Definition: seq.h:47

See also
  snd_seq_client_info_get_card()

## ◆ snd_seq_client_info_get_type()

snd_seq_client_type_t snd_seq_client_info_get_type | ( | const snd_seq_client_info_t * | info | ) |

Get client type of a client_info container.

Parameters

  info | client_info container

Returns
  client type

The client type is either SND_SEQ_KERNEL_CLIENT or SND_SEQ_USER_CLIENT for kernel or user client respectively.

See also
  snd_seq_get_client_info()

## ◆ snd_seq_client_info_malloc()

int snd_seq_client_info_malloc | ( | snd_seq_client_info_t ** | ptr | ) |

allocate an empty snd_seq_client_info_t using standard malloc

Parameters

  ptr | returned pointer

Returns
  0 on success otherwise negative error code

## ◆ snd_seq_client_info_set_broadcast_filter()

void snd_seq_client_info_set_broadcast_filter | ( | snd_seq_client_info_t * | info,
|  | int | val
| ) |  |

Set the broadcast filter usage of a client_info container.

Parameters

  info | client_info container
  val | non-zero if broadcast is accepted

See also
  snd_seq_get_client_info(), snd_seq_client_info_get_broadcast_filter()

## ◆ snd_seq_client_info_set_client()

void snd_seq_client_info_set_client | ( | snd_seq_client_info_t * | info,
|  | int | client
| ) |  |

Set the client id of a client_info container.

Parameters

  info | client_info container
  client | client id

See also
  snd_seq_get_client_info(), snd_seq_client_info_get_client()

## ◆ snd_seq_client_info_set_error_bounce()

void snd_seq_client_info_set_error_bounce | ( | snd_seq_client_info_t * | info,
|  | int | val
| ) |  |

Set the error-bounce usage of a client_info container.

Parameters

  info | client_info container
  val | non-zero if error is bounced

See also
  snd_seq_get_client_info(), snd_seq_client_info_get_error_bounce()

## ◆ snd_seq_client_info_set_event_filter()

void snd_seq_client_info_set_event_filter | ( | snd_seq_client_info_t * | info,
|  | unsigned char * | filter
| ) |  |

(DEPRECATED) Set the event filter bitmap of a client_info container

Parameters

  info | client_info container
  filter | event filter bitmap, pass NULL for no event filtering

Use snd_seq_client_info_event_filter_add instead.

See also
  snd_seq_client_info_event_filter_add(), snd_seq_client_info_event_filter_del(), snd_seq_client_info_event_filter_check(), snd_seq_client_info_event_filter_clear(), snd_seq_set_client_info()

## ◆ snd_seq_client_info_set_name()

void snd_seq_client_info_set_name | ( | snd_seq_client_info_t * | info,
|  | const char * | name
| ) |  |

Set the name of a client_info container.

Parameters

  info | client_info container
  name | name string

See also
  snd_seq_get_client_info(), snd_seq_client_info_get_name(), snd_seq_set_client_name()

## ◆ snd_seq_client_info_sizeof()

size_t snd_seq_client_info_sizeof | ( | void |  | ) |

get size of snd_seq_client_info_t

Returns
  size in bytes

## ◆ snd_seq_client_pool_copy()

void snd_seq_client_pool_copy | ( | snd_seq_client_pool_t * | dst,
|  | const snd_seq_client_pool_t * | src
| ) |  |

copy one snd_seq_client_pool_t to another

Parameters

  dst | pointer to destination
  src | pointer to source

## ◆ snd_seq_client_pool_free()

void snd_seq_client_pool_free | ( | snd_seq_client_pool_t * | obj | ) |

frees a previously allocated snd_seq_client_pool_t

Parameters

  obj | pointer to object to free

## ◆ snd_seq_client_pool_get_client()

int snd_seq_client_pool_get_client | ( | const snd_seq_client_pool_t * | info | ) |

Get the client id of a queue_info container.

Parameters

  info | client_pool container

Returns
  client id

## ◆ snd_seq_client_pool_get_input_free()

size_t snd_seq_client_pool_get_input_free | ( | const snd_seq_client_pool_t * | info | ) |

Get the available size on input pool of a queue_info container.

Parameters

  info | client_pool container

Returns
  available input size

## ◆ snd_seq_client_pool_get_input_pool()

size_t snd_seq_client_pool_get_input_pool | ( | const snd_seq_client_pool_t * | info | ) |

Get the input pool size of a queue_info container.

Parameters

  info | client_pool container

Returns
  input pool size

## ◆ snd_seq_client_pool_get_output_free()

size_t snd_seq_client_pool_get_output_free | ( | const snd_seq_client_pool_t * | info | ) |

Get the available size on output pool of a queue_info container.

Parameters

  info | client_pool container

Returns
  available output size

## ◆ snd_seq_client_pool_get_output_pool()

size_t snd_seq_client_pool_get_output_pool | ( | const snd_seq_client_pool_t * | info | ) |

Get the output pool size of a queue_info container.

Parameters

  info | client_pool container

Returns
  output pool size

## ◆ snd_seq_client_pool_get_output_room()

size_t snd_seq_client_pool_get_output_room | ( | const snd_seq_client_pool_t * | info | ) |

Get the output room size of a queue_info container.

Parameters

  info | client_pool container

Returns
  output room size

## ◆ snd_seq_client_pool_malloc()

int snd_seq_client_pool_malloc | ( | snd_seq_client_pool_t ** | ptr | ) |

allocate an empty snd_seq_client_pool_t using standard malloc

Parameters

  ptr | returned pointer

Returns
  0 on success otherwise negative error code

## ◆ snd_seq_client_pool_set_input_pool()

void snd_seq_client_pool_set_input_pool | ( | snd_seq_client_pool_t * | info,
|  | size_t | size
| ) |  |

Set the input pool size of a queue_info container.

Parameters

  info | client_pool container
  size | input pool size

## ◆ snd_seq_client_pool_set_output_pool()

void snd_seq_client_pool_set_output_pool | ( | snd_seq_client_pool_t * | info,
|  | size_t | size
| ) |  |

Set the output pool size of a queue_info container.

Parameters

  info | client_pool container
  size | output pool size

## ◆ snd_seq_client_pool_set_output_room()

void snd_seq_client_pool_set_output_room | ( | snd_seq_client_pool_t * | info,
|  | size_t | size
| ) |  |

Set the output room size of a queue_info container.

Parameters

  info | client_pool container
  size | output room size

## ◆ snd_seq_client_pool_sizeof()

size_t snd_seq_client_pool_sizeof | ( | void |  | ) |

get size of snd_seq_client_pool_t

Returns
  size in bytes

## ◆ snd_seq_get_any_client_info()

int snd_seq_get_any_client_info | ( | snd_seq_t * | seq,
|  | int | client,
|  | snd_seq_client_info_t * | info
| ) |  |

obtain the information of the given client

Parameters

  seq | sequencer handle
  client | client id
  info | the pointer to be stored

Returns
  0 on success otherwise a negative error code

Obtains the information of the client with a client id specified by info argument. The obtained information is written on info parameter.

See also
  snd_seq_get_client_info()

## ◆ snd_seq_get_client_info()

int snd_seq_get_client_info | ( | snd_seq_t * | seq,
|  | snd_seq_client_info_t * | info
| ) |  |

obtain the current client information

Parameters

  seq | sequencer handle
  info | the pointer to be stored

Returns
  0 on success otherwise a negative error code

Obtains the information of the current client stored on info. client and type fields are ignored.

See also
  snd_seq_get_any_client_info(), snd_seq_set_client_info(), snd_seq_query_next_client()

## ◆ snd_seq_get_client_pool()

int snd_seq_get_client_pool | ( | snd_seq_t * | seq,
|  | snd_seq_client_pool_t * | info
| ) |  |

obtain the pool information of the current client

Parameters

  seq | sequencer handle
  info | information to be stored

## ◆ snd_seq_query_next_client()

int snd_seq_query_next_client | ( | snd_seq_t * | seq,
|  | snd_seq_client_info_t * | info
| ) |  |

query the next client

Parameters

  seq | sequencer handle
  info | query pattern and result

Queries the next client. The search begins at the client with an id one greater than client field in info. If a client is found, its attributes are stored in info, and zero is returned. Otherwise returns a negative error code.

See also
  snd_seq_get_any_client_info()

## ◆ snd_seq_set_client_info()

int snd_seq_set_client_info | ( | snd_seq_t * | seq,
|  | snd_seq_client_info_t * | info
| ) |  |

set the current client information

Parameters

  seq | sequencer handle
  info | the client info data to set

Returns
  0 on success otherwise a negative error code

Obtains the information of the current client stored on info. client and type fields are ignored.

See also
  snd_seq_get_client_info()

## ◆ snd_seq_set_client_pool()

int snd_seq_set_client_pool | ( | snd_seq_t * | seq,
|  | snd_seq_client_pool_t * | info
| ) |  |

set the pool information

Parameters

  seq | sequencer handle
  info | information to update

Sets the pool information of the current client. The client field in info is replaced automatically with the current id.