API for a session manager.

## Classes

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

## Variables

jack_session_event_type_t | _jack_session_event::type
const char * | _jack_session_event::session_dir
const char * | _jack_session_event::client_uuid
char * | _jack_session_event::command_line
jack_session_flags_t | _jack_session_event::flags
uint32_t | _jack_session_event::future
const char * | jack_session_command_t::uuid
const char * | jack_session_command_t::client_name
const char * | jack_session_command_t::command
jack_session_flags_t | jack_session_command_t::flags

## Detailed Description

## Function Documentation

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

Definition at line 1940 of file JackAPI.cpp.

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

Free the memory allocated by a session command.

Definition at line 2040 of file JackAPI.cpp.

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

Definition at line 2026 of file JackAPI.cpp.

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.

Definition at line 2069 of file JackAPI.cpp.

## Variable Documentation

jack_session_event_type_t _jack_session_event::type

The type of this session event.

Definition at line 46 of file JackSession.h.

const char * _jack_session_event::session_dir

Session directory path, with trailing separator.

This directory is exclusive to the client; when saving the client may create any files it likes in this directory.

Definition at line 47 of file JackSession.h.

const char * _jack_session_event::client_uuid

Client UUID which must be passed to jack_client_open on session load.

The client can specify this in the returned command line, or save it in a state file within the session directory.

Definition at line 48 of file JackSession.h.

char * _jack_session_event::command_line

Reply (set by client): the command line needed to restore the client.

This is a platform dependent command line. It must contain ${SESSION_DIR} instead of the actual session directory path. More generally, just as in session files, clients should not include any paths outside the session directory here as this makes archival/distribution impossible.

This field is set to NULL by Jack when the event is delivered to the client. The client must set to allocated memory that is safe to free(). This memory will be freed by jack_session_event_free.

Definition at line 49 of file JackSession.h.

jack_session_flags_t _jack_session_event::flags

Reply (set by client): Session flags.

Definition at line 50 of file JackSession.h.

uint32_t _jack_session_event::future

Future flags. Set to zero for now.

Definition at line 51 of file JackSession.h.