Sequencer Port Subscription
Overview
Sequencer Port Subscription More…
// typedefs typedef struct _snd_seq_port_subscribe snd_seq_port_subscribe_t; typedef struct _snd_seq_query_subscribe snd_seq_query_subscribe_t; // enums enum snd_seq_query_subs_type_t; // global functions size_t snd_seq_port_subscribe_sizeof(void); int snd_seq_port_subscribe_malloc(snd_seq_port_subscribe_t** ptr); void snd_seq_port_subscribe_free(snd_seq_port_subscribe_t* ptr); void snd_seq_port_subscribe_copy( snd_seq_port_subscribe_t* dst, const snd_seq_port_subscribe_t* src ); const snd_seq_addr_t* snd_seq_port_subscribe_get_sender(const snd_seq_port_subscribe_t* info); const snd_seq_addr_t* snd_seq_port_subscribe_get_dest(const snd_seq_port_subscribe_t* info); int snd_seq_port_subscribe_get_queue(const snd_seq_port_subscribe_t* info); int snd_seq_port_subscribe_get_exclusive(const snd_seq_port_subscribe_t* info); int snd_seq_port_subscribe_get_time_update(const snd_seq_port_subscribe_t* info); int snd_seq_port_subscribe_get_time_real(const snd_seq_port_subscribe_t* info); void snd_seq_port_subscribe_set_sender( snd_seq_port_subscribe_t* info, const snd_seq_addr_t* addr ); void snd_seq_port_subscribe_set_dest( snd_seq_port_subscribe_t* info, const snd_seq_addr_t* addr ); void snd_seq_port_subscribe_set_queue( snd_seq_port_subscribe_t* info, int q ); void snd_seq_port_subscribe_set_exclusive( snd_seq_port_subscribe_t* info, int val ); void snd_seq_port_subscribe_set_time_update( snd_seq_port_subscribe_t* info, int val ); void snd_seq_port_subscribe_set_time_real( snd_seq_port_subscribe_t* info, int val ); int snd_seq_get_port_subscription( snd_seq_t* handle, snd_seq_port_subscribe_t* sub ); int snd_seq_subscribe_port( snd_seq_t* handle, snd_seq_port_subscribe_t* sub ); int snd_seq_unsubscribe_port( snd_seq_t* handle, snd_seq_port_subscribe_t* sub ); size_t snd_seq_query_subscribe_sizeof(void); int snd_seq_query_subscribe_malloc(snd_seq_query_subscribe_t** ptr); void snd_seq_query_subscribe_free(snd_seq_query_subscribe_t* ptr); void snd_seq_query_subscribe_copy( snd_seq_query_subscribe_t* dst, const snd_seq_query_subscribe_t* src ); int snd_seq_query_subscribe_get_client(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_port(const snd_seq_query_subscribe_t* info); const snd_seq_addr_t* snd_seq_query_subscribe_get_root(const snd_seq_query_subscribe_t* info); snd_seq_query_subs_type_t snd_seq_query_subscribe_get_type(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_index(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_num_subs(const snd_seq_query_subscribe_t* info); const snd_seq_addr_t* snd_seq_query_subscribe_get_addr(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_queue(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_exclusive(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_time_update(const snd_seq_query_subscribe_t* info); int snd_seq_query_subscribe_get_time_real(const snd_seq_query_subscribe_t* info); void snd_seq_query_subscribe_set_client( snd_seq_query_subscribe_t* info, int client ); void snd_seq_query_subscribe_set_port( snd_seq_query_subscribe_t* info, int port ); void snd_seq_query_subscribe_set_root( snd_seq_query_subscribe_t* info, const snd_seq_addr_t* addr ); void snd_seq_query_subscribe_set_type( snd_seq_query_subscribe_t* info, snd_seq_query_subs_type_t type ); void snd_seq_query_subscribe_set_index( snd_seq_query_subscribe_t* info, int _index ); int snd_seq_query_port_subscribers( snd_seq_t* seq, snd_seq_query_subscribe_t* subs ); // macros #define snd_seq_port_subscribe_alloca(ptr) #define snd_seq_query_subscribe_alloca(ptr)
Detailed Documentation
Sequencer Port Subscription
Typedefs
typedef struct _snd_seq_port_subscribe snd_seq_port_subscribe_t
port subscription container
typedef struct _snd_seq_query_subscribe snd_seq_query_subscribe_t
subscription query container
Global Functions
size_t snd_seq_port_subscribe_sizeof(void)
get size of snd_seq_port_subscribe_t
Returns:
size in bytes
int snd_seq_port_subscribe_malloc(snd_seq_port_subscribe_t** ptr)
allocate an empty snd_seq_port_subscribe_t using standard malloc
Parameters:
ptr |
returned pointer |
Returns:
0 on success otherwise negative error code
void snd_seq_port_subscribe_free(snd_seq_port_subscribe_t* ptr)
frees a previously allocated snd_seq_port_subscribe_t
Parameters:
obj |
pointer to object to free |
void snd_seq_port_subscribe_copy( snd_seq_port_subscribe_t* dst, const snd_seq_port_subscribe_t* src )
copy one snd_seq_port_subscribe_t to another
Parameters:
dst |
pointer to destination |
src |
pointer to source |
const snd_seq_addr_t* snd_seq_port_subscribe_get_sender(const snd_seq_port_subscribe_t* info)
Get sender address of a port_subscribe container.
Parameters:
info |
port_subscribe container |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_sender()
const snd_seq_addr_t* snd_seq_port_subscribe_get_dest(const snd_seq_port_subscribe_t* info)
Get destination address of a port_subscribe container.
Parameters:
info |
port_subscribe container |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_dest()
int snd_seq_port_subscribe_get_queue(const snd_seq_port_subscribe_t* info)
Get the queue id of a port_subscribe container.
Parameters:
info |
port_subscribe container |
Returns:
queue id
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_queue()
int snd_seq_port_subscribe_get_exclusive(const snd_seq_port_subscribe_t* info)
Get the exclusive mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
Returns:
1 if exclusive mode
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_exclusive()
int snd_seq_port_subscribe_get_time_update(const snd_seq_port_subscribe_t* info)
Get the time-update mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
Returns:
1 if update timestamp
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_time_update()
int snd_seq_port_subscribe_get_time_real(const snd_seq_port_subscribe_t* info)
Get the real-time update mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
Returns:
1 if real-time update mode
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_set_time_real()
void snd_seq_port_subscribe_set_sender( snd_seq_port_subscribe_t* info, const snd_seq_addr_t* addr )
Set sender address of a port_subscribe container.
Parameters:
info |
port_subscribe container |
addr |
sender address |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_sender()
void snd_seq_port_subscribe_set_dest( snd_seq_port_subscribe_t* info, const snd_seq_addr_t* addr )
Set destination address of a port_subscribe container.
Parameters:
info |
port_subscribe container |
addr |
destination address |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_dest()
void snd_seq_port_subscribe_set_queue( snd_seq_port_subscribe_t* info, int q )
Set the queue id of a port_subscribe container.
Parameters:
info |
port_subscribe container |
q |
queue id |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_queue()
void snd_seq_port_subscribe_set_exclusive( snd_seq_port_subscribe_t* info, int val )
Set the exclusive mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
val |
non-zero to enable |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_exclusive()
void snd_seq_port_subscribe_set_time_update( snd_seq_port_subscribe_t* info, int val )
Set the time-update mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
val |
non-zero to enable |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_time_update()
void snd_seq_port_subscribe_set_time_real( snd_seq_port_subscribe_t* info, int val )
Set the real-time mode of a port_subscribe container.
Parameters:
info |
port_subscribe container |
val |
non-zero to enable |
See also:
snd_seq_subscribe_port(), snd_seq_port_subscribe_get_time_real()
int snd_seq_get_port_subscription( snd_seq_t* handle, snd_seq_port_subscribe_t* sub )
obtain subscription information
Parameters:
seq |
sequencer handle |
sub |
pointer to return the subscription information |
Returns:
0 on success otherwise a negative error code
See also:
snd_seq_subscribe_port(), snd_seq_query_port_subscribers()
int snd_seq_subscribe_port( snd_seq_t* handle, snd_seq_port_subscribe_t* sub )
subscribe a port connection
Subscribes a connection between two ports. The subscription information is stored in sub argument.
Parameters:
seq |
sequencer handle |
sub |
subscription information |
Returns:
0 on success otherwise a negative error code
See also:
snd_seq_get_port_subscription(), snd_seq_unsubscribe_port(), snd_seq_connect_from(), snd_seq_connect_to()
int snd_seq_unsubscribe_port( snd_seq_t* handle, snd_seq_port_subscribe_t* sub )
unsubscribe a connection between ports
Unsubscribes a connection between two ports, described in sender and dest fields in sub argument.
Parameters:
seq |
sequencer handle |
sub |
subscription information to disconnect |
Returns:
0 on success otherwise a negative error code
See also:
snd_seq_subscribe_port(), snd_seq_disconnect_from(), snd_seq_disconnect_to()
size_t snd_seq_query_subscribe_sizeof(void)
get size of snd_seq_query_subscribe_t
Returns:
size in bytes
int snd_seq_query_subscribe_malloc(snd_seq_query_subscribe_t** ptr)
allocate an empty snd_seq_query_subscribe_t using standard malloc
Parameters:
ptr |
returned pointer |
Returns:
0 on success otherwise negative error code
void snd_seq_query_subscribe_free(snd_seq_query_subscribe_t* ptr)
frees a previously allocated snd_seq_query_subscribe_t
Parameters:
obj |
pointer to object to free |
void snd_seq_query_subscribe_copy( snd_seq_query_subscribe_t* dst, const snd_seq_query_subscribe_t* src )
copy one snd_seq_query_subscribe_t to another
Parameters:
dst |
pointer to destination |
src |
pointer to source |
int snd_seq_query_subscribe_get_client(const snd_seq_query_subscribe_t* info)
Get the client id of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
client id
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_set_client()
int snd_seq_query_subscribe_get_port(const snd_seq_query_subscribe_t* info)
Get the port id of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
port id
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_set_port()
const snd_seq_addr_t* snd_seq_query_subscribe_get_root(const snd_seq_query_subscribe_t* info)
Get the client/port address of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
client/port address pointer
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_set_root()
snd_seq_query_subs_type_t snd_seq_query_subscribe_get_type(const snd_seq_query_subscribe_t* info)
Get the query type of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
query type
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_set_type()
int snd_seq_query_subscribe_get_index(const snd_seq_query_subscribe_t* info)
Get the index of subscriber of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
subscriber’s index
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_set_index()
int snd_seq_query_subscribe_get_num_subs(const snd_seq_query_subscribe_t* info)
Get the number of subscriptions of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
number of subscriptions
See also:
snd_seq_query_port_subscribers()
const snd_seq_addr_t* snd_seq_query_subscribe_get_addr(const snd_seq_query_subscribe_t* info)
Get the address of subscriber of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
subscriber’s address pointer
See also:
snd_seq_query_port_subscribers()
int snd_seq_query_subscribe_get_queue(const snd_seq_query_subscribe_t* info)
Get the queue id of subscriber of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
subscriber’s queue id
See also:
snd_seq_query_port_subscribers()
int snd_seq_query_subscribe_get_exclusive(const snd_seq_query_subscribe_t* info)
Get the exclusive mode of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
1 if exclusive mode
See also:
snd_seq_query_port_subscribers()
int snd_seq_query_subscribe_get_time_update(const snd_seq_query_subscribe_t* info)
Get the time-update mode of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
1 if update timestamp
See also:
snd_seq_query_port_subscribers()
int snd_seq_query_subscribe_get_time_real(const snd_seq_query_subscribe_t* info)
Get the real-time update mode of a query_subscribe container.
Parameters:
info |
query_subscribe container |
Returns:
1 if real-time update mode
See also:
snd_seq_query_port_subscribers()
void snd_seq_query_subscribe_set_client( snd_seq_query_subscribe_t* info, int client )
Set the client id of a query_subscribe container.
Parameters:
info |
query_subscribe container |
client |
client id |
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_get_client()
void snd_seq_query_subscribe_set_port( snd_seq_query_subscribe_t* info, int port )
Set the port id of a query_subscribe container.
Parameters:
info |
query_subscribe container |
port |
port id |
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_get_port()
void snd_seq_query_subscribe_set_root( snd_seq_query_subscribe_t* info, const snd_seq_addr_t* addr )
Set the client/port address of a query_subscribe container.
Parameters:
info |
query_subscribe container |
addr |
client/port address pointer |
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_get_root()
void snd_seq_query_subscribe_set_type( snd_seq_query_subscribe_t* info, snd_seq_query_subs_type_t type )
Set the query type of a query_subscribe container.
Parameters:
info |
query_subscribe container |
type |
query type |
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_get_type()
void snd_seq_query_subscribe_set_index( snd_seq_query_subscribe_t* info, int _index )
Set the subscriber’s index to be queried.
Parameters:
info |
query_subscribe container |
index |
index to be queried |
See also:
snd_seq_query_port_subscribers(), snd_seq_query_subscribe_get_index()
int snd_seq_query_port_subscribers( snd_seq_t* seq, snd_seq_query_subscribe_t* subs )
query port subscriber list
Queries the subscribers accessing to a port. The query information is specified in subs argument.
At least, the client id, the port id, the index number and the query type must be set to perform a proper query. As the query type, SND_SEQ_QUERY_SUBS_READ or SND_SEQ_QUERY_SUBS_WRITE can be specified to check whether the readers or the writers to the port. To query the first subscription, set 0 to the index number. To list up all the subscriptions, call this function with the index numbers from 0 until this returns a negative value.
Parameters:
seq |
sequencer handle |
subs |
subscription to query |
Returns:
0 on success otherwise a negative error code
See also:
Macros
#define snd_seq_port_subscribe_alloca(ptr)
allocate a snd_seq_port_subscribe_t container on stack
#define snd_seq_query_subscribe_alloca(ptr)
allocate a snd_seq_query_subscribe_t container on stack