This driver is very similar to the JackNetDriver, but instead of connecting
through the network, it connects to its upstream server through standard jack
API. So it can only reach local servers which must be running as the same user
or 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
This wrapper driver has the same usage as its parent JackWaitThreadedDriver,
but for non-threaded (callback) drivers. After waiting for Initialize to
return, its main thread simply ends instead of calling the driver's Process
method in a loop. The decorated driver, which must extends JackRestarerDriver
instead of JackWaiterDriver, can restart the wait cycle by calling its
RestartWait method.
- moved platform dependend code into scope its respective #ifdef
- killed one useless 'goto' with great pleasure
- introduced duplicate code to preserve behavior (fallthrough case)
Setting the JACK_NO_AUDIO_RESERVATION environment variable let one skip the
audio reservation bits.
The main use case is a system-wide jackd promiscuous instance launched at boot
time. In such a case no session bus is available, and reservation doesn't
really makes sense anyway.
The cycle counting clock is no longer supported. For backwards
compatibility with scripts, allow the user to request the cycle clock on
the command line, but use the system clock instead.
Cross-ported from jackd1.