Jack::JackProxyDriver Class Reference

`#include <JackProxyDriver.h>`

Inheritance diagram for Jack::JackProxyDriver:

## Public Member Functions

| JackProxyDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table, const char *upstream, const char *promiscuous, char *client_name, bool auto_connect, bool auto_save)
int | Open (jack_nframes_t buffer_size, jack_nframes_t samplerate, bool capturing, bool playing, int inchannels, int outchannels, bool monitor, const char *capture_driver_name, const char *playback_driver_name, jack_nframes_t capture_latency, jack_nframes_t playback_latency)
int | Close ()
int | Stop ()
int | Attach ()
int | Detach ()
int | Read ()
int | Write ()
Public Member Functions inherited from Jack::JackRestarterDriver
| JackRestarterDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table)
void | SetRestartDriver (JackDriver *driver)
int | RestartWait ()
Public Member Functions inherited from Jack::JackWaiterDriver
| JackWaiterDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table)
virtual int | ProcessNull ()
Public Member Functions inherited from Jack::JackTimedDriver
| JackTimedDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table)
bool | IsFixedBufferSize ()
int | Start ()
Public Member Functions inherited from Jack::JackAudioDriver
| JackAudioDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table)
virtual int | Process ()
virtual int | SetBufferSize (jack_nframes_t buffer_size)
virtual int | SetSampleRate (jack_nframes_t sample_rate)
virtual int | ClientNotify (int refnum, const char *name, int notify, int sync, const char *message, int value1, int value2)
Public Member Functions inherited from Jack::JackDriver
| JackDriver (const char *name, const char *alias, JackLockedEngine *engine, JackSynchro *table)
void | SetMaster (bool onoff)
bool | GetMaster ()
void | AddSlave (JackDriverInterface *slave)
void | RemoveSlave (JackDriverInterface *slave)
std::list< JackDriverInterface * > | GetSlaves ()
virtual int | Open ()
int | ProcessReadSlaves ()
int | ProcessWriteSlaves ()
virtual int | ProcessRead ()
virtual int | ProcessWrite ()
virtual int | ProcessReadSync ()
virtual int | ProcessWriteSync ()
virtual int | ProcessReadAsync ()
virtual int | ProcessWriteAsync ()
virtual JackClientControl * | GetClientControl () const
virtual bool | IsRealTime () const
virtual bool | IsRunning () const

## Additional Inherited Members

Protected Member Functions inherited from Jack::JackTimedDriver
int | FirstCycle (jack_time_t cur_time)
int | CurrentCycle (jack_time_t cur_time)
void | ProcessWait ()
Protected Member Functions inherited from Jack::JackAudioDriver
jack_default_audio_sample_t * | GetInputBuffer (int port_index)
jack_default_audio_sample_t * | GetOutputBuffer (int port_index)
jack_default_audio_sample_t * | GetMonitorBuffer (int port_index)
void | HandleLatencyCallback (int status)
virtual void | UpdateLatencies ()
int | ProcessAsync ()
void | ProcessGraphAsync ()
void | ProcessGraphAsyncMaster ()
void | ProcessGraphAsyncSlave ()
int | ProcessSync ()
void | ProcessGraphSync ()
void | ProcessGraphSyncMaster ()
void | ProcessGraphSyncSlave ()
Protected Member Functions inherited from Jack::JackDriver
void | CycleIncTime ()
void | CycleTakeBeginTime ()
void | CycleTakeEndTime ()
void | SetupDriverSync (int ref, bool freewheel)
void | NotifyXRun (jack_time_t callback_usecs, float delayed_usecs)
void | NotifyBufferSize (jack_nframes_t buffer_size)
void | NotifySampleRate (jack_nframes_t sample_rate)
void | NotifyFailure (int code, const char *reason)
virtual void | SaveConnections (int alias)
virtual void | LoadConnections (int alias, bool full_name=true)
std::string | MatchPortName (const char *name, const char **ports, int alias, const std::string &type)
virtual int | StartSlaves ()
virtual int | StopSlaves ()
virtual int | ResumeRefNum ()
virtual int | SuspendRefNum ()
Protected Attributes inherited from Jack::JackTimedDriver
int | fCycleCount
jack_time_t | fAnchorTimeUsec
Protected Attributes inherited from Jack::JackDriver
char | fCaptureDriverName [JACK_CLIENT_NAME_SIZE+1]
char | fPlaybackDriverName [JACK_CLIENT_NAME_SIZE+1]
char | fAliasName [JACK_CLIENT_NAME_SIZE+1]
jack_nframes_t | fCaptureLatency
jack_nframes_t | fPlaybackLatency
int | fCaptureChannels
int | fPlaybackChannels
jack_time_t | fBeginDateUst
jack_time_t | fEndDateUst
float | fDelayedUsecs
JackLockedEngine * | fEngine
JackGraphManager * | fGraphManager
JackSynchro * | fSynchroTable
JackEngineControl * | fEngineControl
JackClientControl | fClientControl
std::list< JackDriverInterface * > | fSlaveList
bool | fIsMaster
bool | fIsRunning
bool | fWithMonitorPorts
jack_port_id_t | fCapturePortList [DRIVER_PORT_NUM]
jack_port_id_t | fPlaybackPortList [DRIVER_PORT_NUM]
jack_port_id_t | fMonitorPortList [DRIVER_PORT_NUM]
driver_connections_list_t | fConnections

## Detailed Description

This class describes the Proxy Backend

It uses plain Jack API to connect to an upstream server. The latter is either running as the same user, or is running in promiscuous mode.

The main use case is the multi-user, multi-session, shared workstation:

- a classic server with hw driver is launched system-wide at boot time, in promiscuous mode, optionaly restricted to the audio group
- in each user session, a jackdbus server is automatically started with JackProxyDriver as master driver, automatically connected to the system-wide one
- optionaly, each user run PulseAudio with a pulse-jack bridge

Definition at line 60 of file JackProxyDriver.h.

The documentation for this class was generated from the following files:

- JackProxyDriver.h
- JackProxyDriver.cpp