ALSA project - the C library reference
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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
int snd_seq_client_info_malloc (snd_seq_client_info_t **ptr)
 allocate an empty snd_seq_client_info_t using standard malloc
void snd_seq_client_info_free (snd_seq_client_info_t *ptr)
 frees a previously allocated snd_seq_client_info_t
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
int snd_seq_client_info_get_client (const snd_seq_client_info_t *info)
 Get client id of a client_info container.
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.
const char * snd_seq_client_info_get_name (snd_seq_client_info_t *info)
 Get the name of a client_info container.
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.
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.
int snd_seq_client_info_get_card (const snd_seq_client_info_t *info)
 Get the sound card number.
int snd_seq_client_info_get_pid (const snd_seq_client_info_t *info)
 Get the owning PID.
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
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.
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.
void snd_seq_client_info_set_client (snd_seq_client_info_t *info, int client)
 Set the client id of a client_info container.
void snd_seq_client_info_set_name (snd_seq_client_info_t *info, const char *name)
 Set the name of a client_info container.
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.
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.
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
void snd_seq_client_info_event_filter_clear (snd_seq_client_info_t *info)
 Disable event filtering of a client_info container.
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.
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.
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.
int snd_seq_get_client_info (snd_seq_t *handle, snd_seq_client_info_t *info)
 obtain the current client information
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
int snd_seq_set_client_info (snd_seq_t *handle, snd_seq_client_info_t *info)
 set the current client information
int snd_seq_query_next_client (snd_seq_t *handle, snd_seq_client_info_t *info)
 query the next client
size_t snd_seq_client_pool_sizeof (void)
 get size of snd_seq_client_pool_t
int snd_seq_client_pool_malloc (snd_seq_client_pool_t **ptr)
 allocate an empty snd_seq_client_pool_t using standard malloc
void snd_seq_client_pool_free (snd_seq_client_pool_t *ptr)
 frees a previously allocated snd_seq_client_pool_t
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
int snd_seq_client_pool_get_client (const snd_seq_client_pool_t *info)
 Get the client id of a queue_info container.
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.
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.
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.
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.
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.
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.
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.
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.
int snd_seq_get_client_pool (snd_seq_t *handle, snd_seq_client_pool_t *info)
 obtain the pool information of the current client
int snd_seq_set_client_pool (snd_seq_t *handle, snd_seq_client_pool_t *info)
 set the pool information

Detailed Description

Sequencer Client Interface


Macro Definition Documentation

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

allocate a snd_seq_client_info_t container on stack

#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

typedef struct _snd_seq_client_info snd_seq_client_info_t

client information container

typedef struct _snd_seq_client_pool snd_seq_client_pool_t

client pool information container


Enumeration Type Documentation

client types

Enumerator:
SND_SEQ_USER_CLIENT 

user client

SND_SEQ_KERNEL_CLIENT 

kernel client


Function Documentation

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:
dstpointer to destination
srcpointer to source
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:
infoclient_info container
event_typeevent 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()
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:
infoclient_info container
event_typeevent 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()
void snd_seq_client_info_event_filter_clear ( snd_seq_client_info_t info)

Disable event filtering of a client_info container.

Parameters:
infoclient_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()
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:
infoclient_info container
event_typeevent 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()
void snd_seq_client_info_free ( snd_seq_client_info_t obj)

frees a previously allocated snd_seq_client_info_t

Parameters:
objpointer to object to free
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:
infoclient_info container
Returns:
1 if broadcast is accepted
See also:
snd_seq_get_client_info(), snd_seq_client_info_set_broadcast_filter()
int snd_seq_client_info_get_card ( const snd_seq_client_info_t info)

Get the sound card number.

Parameters:
infoclient_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()
int snd_seq_client_info_get_client ( const snd_seq_client_info_t info)

Get client id of a client_info container.

Parameters:
infoclient_info container
Returns:
client id
See also:
snd_seq_get_client_info(), snd_seq_client_info_set_client(), snd_seq_client_id()
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:
infoclient_info container
Returns:
1 if error-bounce is enabled
See also:
snd_seq_get_client_info(), snd_seq_client_info_set_error_bounce()
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:
infoclient_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()
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:
infoclient_info container
Returns:
number of lost events
See also:
snd_seq_get_client_info()
const char* snd_seq_client_info_get_name ( snd_seq_client_info_t info)

Get the name of a client_info container.

Parameters:
infoclient_info container
Returns:
name string
See also:
snd_seq_get_client_info(), snd_seq_client_info_set_name()
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:
infoclient_info container
Returns:
number of opened ports
See also:
snd_seq_get_client_info()
int snd_seq_client_info_get_pid ( const snd_seq_client_info_t info)

Get the owning PID.

Parameters:
infoclient_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;
}
See also:
snd_seq_client_info_get_card()
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:
infoclient_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()
int snd_seq_client_info_malloc ( snd_seq_client_info_t **  ptr)

allocate an empty snd_seq_client_info_t using standard malloc

Parameters:
ptrreturned pointer
Returns:
0 on success otherwise negative error code
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:
infoclient_info container
valnon-zero if broadcast is accepted
See also:
snd_seq_get_client_info(), snd_seq_client_info_get_broadcast_filter()
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:
infoclient_info container
clientclient id
See also:
snd_seq_get_client_info(), snd_seq_client_info_get_client()
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:
infoclient_info container
valnon-zero if error is bounced
See also:
snd_seq_get_client_info(), snd_seq_client_info_get_error_bounce()
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:
infoclient_info container
filterevent 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()
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:
infoclient_info container
namename string
See also:
snd_seq_get_client_info(), snd_seq_client_info_get_name(), snd_seq_set_client_name()
size_t snd_seq_client_info_sizeof ( void  )

get size of snd_seq_client_info_t

Returns:
size in bytes
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:
dstpointer to destination
srcpointer to source
void snd_seq_client_pool_free ( snd_seq_client_pool_t obj)

frees a previously allocated snd_seq_client_pool_t

Parameters:
objpointer to object to free
int snd_seq_client_pool_get_client ( const snd_seq_client_pool_t info)

Get the client id of a queue_info container.

Parameters:
infoclient_pool container
Returns:
client id
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:
infoclient_pool container
Returns:
available input size
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:
infoclient_pool container
Returns:
input pool size
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:
infoclient_pool container
Returns:
available output size
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:
infoclient_pool container
Returns:
output pool size
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:
infoclient_pool container
Returns:
output room size
int snd_seq_client_pool_malloc ( snd_seq_client_pool_t **  ptr)

allocate an empty snd_seq_client_pool_t using standard malloc

Parameters:
ptrreturned pointer
Returns:
0 on success otherwise negative error code
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:
infoclient_pool container
sizeinput pool size
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:
infoclient_pool container
sizeoutput pool size
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:
infoclient_pool container
sizeoutput room size
size_t snd_seq_client_pool_sizeof ( void  )

get size of snd_seq_client_pool_t

Returns:
size in bytes
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:
seqsequencer handle
clientclient id
infothe 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()
int snd_seq_get_client_info ( snd_seq_t seq,
snd_seq_client_info_t info 
)

obtain the current client information

Parameters:
seqsequencer handle
infothe 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()
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:
seqsequencer handle
infoinformation to be stored
int snd_seq_query_next_client ( snd_seq_t seq,
snd_seq_client_info_t info 
)

query the next client

Parameters:
seqsequencer handle
infoquery 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()
int snd_seq_set_client_info ( snd_seq_t seq,
snd_seq_client_info_t info 
)

set the current client information

Parameters:
seqsequencer handle
infothe 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()
int snd_seq_set_client_pool ( snd_seq_t seq,
snd_seq_client_pool_t info 
)

set the pool information

Parameters:
seqsequencer handle
infoinformation to update

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