Jack::JackClient Class Reference

The base class for clients: share part of the implementation for JackInternalClient and JackLibClient. More...

#include <JackClient.h>

Inheritance diagram for Jack::JackClient:

Jack::JackClientInterface Jack::JackRunnableInterface Jack::JackDebugClient Jack::JackInternalClient Jack::JackLibClient Jack::JackLoadableInternalClient List of all members.

Public Member Functions

 JackClient ()
 JackClient (JackSynchro **table)
virtual ~JackClient ()
virtual int Open (const char *server_name, const char *name, jack_options_t options, jack_status_t *status)=0
virtual int Close ()
virtual JackGraphManagerGetGraphManager () const=0
virtual JackEngineControlGetEngineControl () const=0
virtual int ClientNotify (int refnum, const char *name, int notify, int sync, int value1, int value2)
virtual int Activate ()
 We need to start thread before activating in the server, otherwise the FW driver connected to the client may not be activated.
virtual int Deactivate ()
 Need to stop thread after deactivating in the server.
virtual int SetBufferSize (jack_nframes_t buffer_size)
virtual int SetFreeWheel (int onoff)
virtual void ShutDown ()
virtual pthread_t GetThreadID ()
virtual int PortRegister (const char *port_name, const char *port_type, unsigned long flags, unsigned long buffer_size)
virtual int PortUnRegister (jack_port_id_t port)
virtual int PortConnect (const char *src, const char *dst)
virtual int PortDisconnect (const char *src, const char *dst)
virtual int PortConnect (jack_port_id_t src, jack_port_id_t dst)
virtual int PortDisconnect (jack_port_id_t src)
virtual int PortIsMine (jack_port_id_t port_index)
virtual int ReleaseTimebase ()
virtual int SetSyncCallback (JackSyncCallback sync_callback, void *arg)
virtual int SetSyncTimeout (jack_time_t timeout)
virtual int SetTimebaseCallback (int conditional, JackTimebaseCallback timebase_callback, void *arg)
virtual int TransportLocate (jack_nframes_t frame)
virtual jack_transport_state_t TransportQuery (jack_position_t *pos)
virtual jack_nframes_t GetCurrentTransportFrame ()
virtual int TransportReposition (jack_position_t *pos)
virtual void TransportStart ()
virtual void TransportStop ()
virtual void OnShutdown (JackShutdownCallback callback, void *arg)
virtual int SetProcessCallback (JackProcessCallback callback, void *arg)
virtual int SetXRunCallback (JackXRunCallback callback, void *arg)
virtual int SetInitCallback (JackThreadInitCallback callback, void *arg)
virtual int SetGraphOrderCallback (JackGraphOrderCallback callback, void *arg)
virtual int SetBufferSizeCallback (JackBufferSizeCallback callback, void *arg)
virtual int SetClientRegistrationCallback (JackClientRegistrationCallback callback, void *arg)
virtual int SetFreewheelCallback (JackFreewheelCallback callback, void *arg)
virtual int SetPortRegistrationCallback (JackPortRegistrationCallback callback, void *arg)
virtual int SetPortConnectCallback (JackPortConnectCallback callback, void *arg)
virtual char * GetInternalClientName (int ref)
virtual int InternalClientHandle (const char *client_name, jack_status_t *status)
virtual int InternalClientLoad (const char *client_name, jack_options_t options, jack_status_t *status, jack_varargs_t *va)
virtual void InternalClientUnload (int ref, jack_status_t *status)
virtual jack_nframes_t Wait (int status)
bool Init ()
 Called once when the thread starts.
bool Execute ()
 RT thread.

Protected Member Functions

int StartThread ()
void SetupDriverSync (bool freewheel)
bool IsActive ()
void CallSyncCallback ()
void CallTimebaseCallback ()
int RequestNewPos (jack_position_t *pos)
virtual int ClientNotifyImp (int refnum, const char *name, int notify, int sync, int value1, int value)
 Notification received from the server.
bool WaitFirstSync ()
void ExecuteThread ()
bool WaitSync ()
void SignalSync ()
int CallProcessCallback ()
int End ()
int Error ()

Protected Attributes

JackProcessCallback fProcess
JackGraphOrderCallback fGraphOrder
JackXRunCallback fXrun
JackShutdownCallback fShutdown
JackThreadInitCallback fInit
JackBufferSizeCallback fBufferSize
JackClientRegistrationCallback fClientRegistration
JackFreewheelCallback fFreewheel
JackPortRegistrationCallback fPortRegistration
JackPortConnectCallback fPortConnect
JackTimebaseCallback fTimebase
JackSyncCallback fSync
void * fProcessArg
void * fGraphOrderArg
void * fXrunArg
void * fShutdownArg
void * fInitArg
void * fBufferSizeArg
void * fClientRegistrationArg
void * fFreewheelArg
void * fPortRegistrationArg
void * fPortConnectArg
void * fTimebaseArg
void * fSyncArg
int fConditionnal
char fServerName [64]
JackThreadfThread
JackClientChannelInterfacefChannel
JackSynchro ** fSynchroTable
std::list< jack_port_id_t > fPortList

Detailed Description

The base class for clients: share part of the implementation for JackInternalClient and JackLibClient.

Definition at line 51 of file JackClient.h.


Member Function Documentation

void Jack::JackClient::SetupDriverSync ( bool  freewheel  )  [protected]

In "async" mode, the server does not synchronize itself on the output drivers, thus it would never "consume" the activations. The synchronization primitives for drivers are setup in "flush" mode that to not keep unneeded activations. Drivers synchro are setup in "flush" mode if server is "async" and NOT freewheel.

Definition at line 103 of file JackClient.cpp.

References fSynchroTable, and Jack::JackSynchro::SetFlush().

Referenced by ClientNotify(), Jack::JackLibClient::Open(), and Jack::JackInternalClient::Open().


Member Data Documentation

JackClientChannelInterface* Jack::JackClient::fChannel [protected]

Thread to execute the Process function

Definition at line 85 of file JackClient.h.

Referenced by Activate(), Close(), Deactivate(), End(), Error(), GetInternalClientName(), InternalClientHandle(), InternalClientLoad(), InternalClientUnload(), Jack::JackInternalClient::JackInternalClient(), Jack::JackLibClient::JackLibClient(), Jack::JackLibClient::Open(), Jack::JackInternalClient::Open(), PortConnect(), PortDisconnect(), PortRegister(), PortUnRegister(), ReleaseTimebase(), SetBufferSize(), SetFreeWheel(), SetTimebaseCallback(), Jack::JackInternalClient::~JackInternalClient(), and Jack::JackLibClient::~JackLibClient().


The documentation for this class was generated from the following files:
Generated on Thu Feb 14 11:16:03 2008 for Jackdmp by  doxygen 1.5.1