ALSA project - the C library reference
|
Macros | |
#define | SND_SEQ_DLSYM_VERSION _dlsym_seq_001 |
#define | SND_SEQ_OPEN_OUTPUT 1 |
#define | SND_SEQ_OPEN_INPUT 2 |
#define | SND_SEQ_OPEN_DUPLEX (SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT) |
#define | SND_SEQ_NONBLOCK 0x0001 |
#define | SND_SEQ_ADDRESS_UNKNOWN 253 |
#define | SND_SEQ_ADDRESS_SUBSCRIBERS 254 |
#define | SND_SEQ_ADDRESS_BROADCAST 255 |
#define | SND_SEQ_CLIENT_SYSTEM 0 |
#define | snd_seq_system_info_alloca(ptr) __snd_alloca(ptr, snd_seq_system_info) |
Typedefs | |
typedef struct _snd_seq | snd_seq_t |
typedef struct _snd_seq_system_info | snd_seq_system_info_t |
Enumerations | |
enum | snd_seq_type_t { SND_SEQ_TYPE_HW , SND_SEQ_TYPE_SHM , SND_SEQ_TYPE_INET } |
Functions | |
int | snd_seq_open (snd_seq_t **handle, const char *name, int streams, int mode) |
Open the ALSA sequencer. More... | |
int | snd_seq_open_lconf (snd_seq_t **handle, const char *name, int streams, int mode, snd_config_t *lconf) |
Open the ALSA sequencer using local configuration. More... | |
const char * | snd_seq_name (snd_seq_t *seq) |
get identifier of sequencer handle More... | |
snd_seq_type_t | snd_seq_type (snd_seq_t *seq) |
get type of sequencer handle More... | |
int | snd_seq_close (snd_seq_t *handle) |
Close the sequencer. More... | |
int | snd_seq_poll_descriptors_count (snd_seq_t *handle, short events) |
Returns the number of poll descriptors. More... | |
int | snd_seq_poll_descriptors (snd_seq_t *handle, struct pollfd *pfds, unsigned int space, short events) |
Get poll descriptors. More... | |
int | snd_seq_poll_descriptors_revents (snd_seq_t *seq, struct pollfd *pfds, unsigned int nfds, unsigned short *revents) |
get returned events from poll descriptors More... | |
int | snd_seq_nonblock (snd_seq_t *handle, int nonblock) |
Set nonblock mode. More... | |
int | snd_seq_client_id (snd_seq_t *handle) |
Get the client id. More... | |
size_t | snd_seq_get_output_buffer_size (snd_seq_t *handle) |
Return the size of output buffer. More... | |
size_t | snd_seq_get_input_buffer_size (snd_seq_t *handle) |
Return the size of input buffer. More... | |
int | snd_seq_set_output_buffer_size (snd_seq_t *handle, size_t size) |
Change the size of output buffer. More... | |
int | snd_seq_set_input_buffer_size (snd_seq_t *handle, size_t size) |
Resize the input buffer. More... | |
size_t | snd_seq_system_info_sizeof (void) |
Get size of snd_seq_system_info_t. More... | |
int | snd_seq_system_info_malloc (snd_seq_system_info_t **ptr) |
Allocate an empty snd_seq_system_info_t using standard malloc. More... | |
void | snd_seq_system_info_free (snd_seq_system_info_t *ptr) |
Frees a previously allocated snd_seq_system_info_t. More... | |
void | snd_seq_system_info_copy (snd_seq_system_info_t *dst, const snd_seq_system_info_t *src) |
Copy one snd_seq_system_info_t to another. More... | |
int | snd_seq_system_info_get_queues (const snd_seq_system_info_t *info) |
Get maximum number of queues. More... | |
int | snd_seq_system_info_get_clients (const snd_seq_system_info_t *info) |
Get maximum number of clients. More... | |
int | snd_seq_system_info_get_ports (const snd_seq_system_info_t *info) |
Get maximum number of ports. More... | |
int | snd_seq_system_info_get_channels (const snd_seq_system_info_t *info) |
Get maximum number of channels. More... | |
int | snd_seq_system_info_get_cur_clients (const snd_seq_system_info_t *info) |
Get the current number of clients. More... | |
int | snd_seq_system_info_get_cur_queues (const snd_seq_system_info_t *info) |
Get the current number of queues. More... | |
int | snd_seq_system_info (snd_seq_t *handle, snd_seq_system_info_t *info) |
obtain the sequencer system information More... | |
MIDI Sequencer Interface. See Sequencer interface page for more details.
#define SND_SEQ_ADDRESS_BROADCAST 255 |
send event to all queues/clients/ports/channels
#define SND_SEQ_ADDRESS_SUBSCRIBERS 254 |
send event to all subscribed ports
#define SND_SEQ_ADDRESS_UNKNOWN 253 |
special client (port) ids unknown source
#define SND_SEQ_CLIENT_SYSTEM 0 |
known client numbers system client
#define SND_SEQ_DLSYM_VERSION _dlsym_seq_001 |
dlsym version for interface entry callback
#define SND_SEQ_NONBLOCK 0x0001 |
sequencer opening mode non-blocking mode (flag to open mode)
#define SND_SEQ_OPEN_DUPLEX (SND_SEQ_OPEN_OUTPUT|SND_SEQ_OPEN_INPUT) |
open for both input and output (read/write)
#define SND_SEQ_OPEN_INPUT 2 |
open for input (read)
#define SND_SEQ_OPEN_OUTPUT 1 |
sequencer opening stream types open for output (write)
#define snd_seq_system_info_alloca | ( | ptr | ) | __snd_alloca(ptr, snd_seq_system_info) |
allocate a snd_seq_system_info_t container on stack
typedef struct _snd_seq_system_info snd_seq_system_info_t |
system information container
typedef struct _snd_seq snd_seq_t |
Sequencer handle
enum snd_seq_type_t |
int snd_seq_client_id | ( | snd_seq_t * | seq | ) |
Get the client id.
seq | sequencer handle |
Returns the id of the specified client. If an error occurs, function returns the negative error code. A client id is necessary to inquiry or to set the client information. A user client is assigned from 128 to 191.
int snd_seq_close | ( | snd_seq_t * | seq | ) |
Close the sequencer.
seq | Handle returned from snd_seq_open() |
Closes the sequencer client and releases its resources. After a client is closed, an event with SND_SEQ_EVENT_CLIENT_EXIT is broadcast to announce port. The connection between other clients are disconnected. Call this just before exiting your program.
size_t snd_seq_get_input_buffer_size | ( | snd_seq_t * | seq | ) |
Return the size of input buffer.
seq | sequencer handle |
Obtains the size of input buffer. This buffer is used to read byte-stream of input events from sequencer.
size_t snd_seq_get_output_buffer_size | ( | snd_seq_t * | seq | ) |
Return the size of output buffer.
seq | sequencer handle |
Obtains the size of output buffer. This buffer is used to store decoded byte-stream of output events before transferring to sequencer.
const char * snd_seq_name | ( | snd_seq_t * | seq | ) |
get identifier of sequencer handle
seq | sequencer handle |
Returns the ASCII identifier of the given sequencer handle. It's the same identifier specified in snd_seq_open().
int snd_seq_nonblock | ( | snd_seq_t * | seq, |
int | nonblock | ||
) |
Set nonblock mode.
seq | sequencer handle |
nonblock | 0 = block, 1 = nonblock mode |
Change the blocking mode of the given client. In block mode, the client falls into sleep when it fills the output memory pool with full events. The client will be woken up after a certain amount of free space becomes available.
int snd_seq_open | ( | snd_seq_t ** | seqp, |
const char * | name, | ||
int | streams, | ||
int | mode | ||
) |
Open the ALSA sequencer.
seqp | Pointer to a snd_seq_t pointer. This pointer must be kept and passed to most of the other sequencer functions. |
name | The sequencer's "name". This is not a name you make up for your own purposes; it has special significance to the ALSA library. Usually you need to pass "default" here. |
streams | The read/write mode of the sequencer. Can be one of three values:
|
O_WRONLY
, O_RDONLY
and O_RDWR
respectively and used as the second argument to the C library open() call. mode | Optional modifier. Can be either 0, or SND_SEQ_NONBLOCK, which will make read/write operations non-blocking. This can also be set later using snd_seq_nonblock(). |
Creates a new handle and opens a connection to the kernel sequencer interface. After a client is created successfully, an event with SND_SEQ_EVENT_CLIENT_START is broadcast to announce port.
int snd_seq_open_lconf | ( | snd_seq_t ** | seqp, |
const char * | name, | ||
int | streams, | ||
int | mode, | ||
snd_config_t * | lconf | ||
) |
Open the ALSA sequencer using local configuration.
seqp | Pointer to a snd_seq_t pointer. |
name | The name to open |
streams | The read/write mode of the sequencer. |
mode | Optional modifier |
lconf | Local configuration |
See the snd_seq_open() function for further details. The extension is that the given configuration is used to resolve abstract name.
int snd_seq_poll_descriptors | ( | snd_seq_t * | seq, |
struct pollfd * | pfds, | ||
unsigned int | space, | ||
short | events | ||
) |
Get poll descriptors.
seq | sequencer handle |
pfds | array of poll descriptors |
space | space in the poll descriptor array |
events | polling events to be checked (POLLIN and POLLOUT ) |
Get poll descriptors assigned to the sequencer handle. Since a sequencer handle can duplex streams, you need to set which direction(s) is/are polled in events argument. When POLLIN
bit is specified, the incoming events to the ports are checked.
To check the returned poll-events, call snd_seq_poll_descriptors_revents() instead of reading the pollfd structs directly.
int snd_seq_poll_descriptors_count | ( | snd_seq_t * | seq, |
short | events | ||
) |
Returns the number of poll descriptors.
seq | sequencer handle |
events | the poll events to be checked (POLLIN and POLLOUT ) |
Get the number of poll descriptors. The polling events to be checked can be specified by the second argument. When both input and output are checked, pass POLLIN|POLLOUT
int snd_seq_poll_descriptors_revents | ( | snd_seq_t * | seq, |
struct pollfd * | pfds, | ||
unsigned int | nfds, | ||
unsigned short * | revents | ||
) |
get returned events from poll descriptors
seq | sequencer handle |
pfds | array of poll descriptors |
nfds | count of poll descriptors |
revents | returned events |
int snd_seq_set_input_buffer_size | ( | snd_seq_t * | seq, |
size_t | size | ||
) |
Resize the input buffer.
seq | sequencer handle |
size | the size of input buffer to be changed in bytes |
Changes the size of input buffer.
int snd_seq_set_output_buffer_size | ( | snd_seq_t * | seq, |
size_t | size | ||
) |
Change the size of output buffer.
seq | sequencer handle |
size | the size of output buffer to be changed in bytes |
Changes the size of output buffer.
int snd_seq_system_info | ( | snd_seq_t * | seq, |
snd_seq_system_info_t * | info | ||
) |
obtain the sequencer system information
seq | sequencer handle |
info | the pointer to be stored |
Stores the global system information of ALSA sequencer system. The returned data contains the maximum available numbers of queues, clients, ports and channels.
void snd_seq_system_info_copy | ( | snd_seq_system_info_t * | dst, |
const snd_seq_system_info_t * | src | ||
) |
Copy one snd_seq_system_info_t to another.
dst | pointer to destination |
src | pointer to source |
void snd_seq_system_info_free | ( | snd_seq_system_info_t * | obj | ) |
Frees a previously allocated snd_seq_system_info_t.
obj | pointer to object to free |
int snd_seq_system_info_get_channels | ( | const snd_seq_system_info_t * | info | ) |
Get maximum number of channels.
info | snd_seq_system_info_t container |
int snd_seq_system_info_get_clients | ( | const snd_seq_system_info_t * | info | ) |
Get maximum number of clients.
info | snd_seq_system_info_t container |
int snd_seq_system_info_get_cur_clients | ( | const snd_seq_system_info_t * | info | ) |
Get the current number of clients.
info | snd_seq_system_info_t container |
int snd_seq_system_info_get_cur_queues | ( | const snd_seq_system_info_t * | info | ) |
Get the current number of queues.
info | snd_seq_system_info_t container |
int snd_seq_system_info_get_ports | ( | const snd_seq_system_info_t * | info | ) |
Get maximum number of ports.
info | snd_seq_system_info_t container |
int snd_seq_system_info_get_queues | ( | const snd_seq_system_info_t * | info | ) |
Get maximum number of queues.
info | snd_seq_system_info_t container |
int snd_seq_system_info_malloc | ( | snd_seq_system_info_t ** | ptr | ) |
Allocate an empty snd_seq_system_info_t using standard malloc.
ptr | returned pointer |
size_t snd_seq_system_info_sizeof | ( | void | ) |
Get size of snd_seq_system_info_t.
snd_seq_type_t snd_seq_type | ( | snd_seq_t * | seq | ) |
get type of sequencer handle
seq | sequencer handle |
Returns the type snd_seq_type_t of the given sequencer handle.