API for a session manager.

## Data Structures

struct | jack_session_command_t

## Functions

jack_session_command_t * | jack_session_notify (jack_client_t *client, const char *target, jack_session_event_type_t type, const char *path) JACK_WEAK_EXPORT
void | jack_session_commands_free (jack_session_command_t *cmds) JACK_WEAK_EXPORT
char * | jack_get_uuid_for_client_name (jack_client_t *client, const char *client_name) JACK_WEAK_EXPORT
char * | jack_get_client_name_by_uuid (jack_client_t *client, const char *client_uuid) JACK_WEAK_EXPORT
int | jack_reserve_client_name (jack_client_t *client, const char *name, const char *uuid) JACK_WEAK_EXPORT
int | jack_client_has_session_callback (jack_client_t *client, const char *client_name) JACK_WEAK_EXPORT

## Detailed Description

## Function Documentation

int jack_client_has_session_callback | ( | jack_client_t * | client,
|  | const char * | client_name
| ) |  |

Find out whether a client has set up a session callback.

Returns
  0 when the client has no session callback, 1 when it has one. -1 on error.

char* jack_get_client_name_by_uuid | ( | jack_client_t * | client,
|  | const char * | client_uuid
| ) |  |

Get the client name for a session_id.

In order to snapshot the graph connections, the session manager needs to map session_ids to client names.

char* jack_get_uuid_for_client_name | ( | jack_client_t * | client,
|  | const char * | client_name
| ) |  |

Get the session ID for a client name. The session manager needs this to reassociate a client name to the session_id.

int jack_reserve_client_name | ( | jack_client_t * | client,
|  | const char * | name,
|  | const char * | uuid
| ) |  |

Reserve a client name and associate it with a UUID.

When a client later calls jack_client_open() and specifies the UUID, jackd will assign the reserved name. This allows a session manager to know in advance under which client name its managed clients will appear.

Returns
  0 on success, otherwise a non-zero error code

void jack_session_commands_free | ( | jack_session_command_t * | cmds | ) |

Free the memory allocated by a session command.

jack_session_command_t* jack_session_notify | ( | jack_client_t * | client,
|  | const char * | target,
|  | jack_session_event_type_t | type,
|  | const char * | path
| ) |  |

Send an event to all clients listening for session callbacks.

The returned strings of the clients are accumulated and returned as an array of jack_session_command_t. its terminated by ret[i].uuid == NULL target == NULL means send to all interested clients. otherwise a clientname