ALSA project - the C library reference
Macros | Typedefs | Enumerations | Functions
Sequencer Client Interface
Collaboration diagram for Sequencer Client Interface:

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

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
dstpointer to destination
srcpointer 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
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()

◆ 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
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()

◆ 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()

◆ 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
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()

◆ 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
objpointer 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
infoclient_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
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()

◆ 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
infoclient_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
infoclient_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
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()

◆ 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
infoclient_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
infoclient_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
infoclient_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
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;
}
#define snd_seq_client_info_alloca(ptr)
Definition: seq.h:135
struct _snd_seq_client_info snd_seq_client_info_t
Definition: seq.h:125
int snd_seq_client_info_get_pid(const snd_seq_client_info_t *info)
Get the owning PID.
Definition: seq.c:1594
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
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
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()

◆ 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
ptrreturned 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
infoclient_info container
valnon-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
infoclient_info container
clientclient 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
infoclient_info container
valnon-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
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()

◆ 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
infoclient_info container
namename 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
dstpointer to destination
srcpointer 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
objpointer 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
infoclient_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
infoclient_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
infoclient_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
infoclient_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
infoclient_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
infoclient_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
ptrreturned 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
infoclient_pool container
sizeinput 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
infoclient_pool container
sizeoutput 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
infoclient_pool container
sizeoutput 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
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()

◆ 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()

◆ 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
seqsequencer handle
infoinformation 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
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()

◆ 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
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()

◆ 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
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.