Browse Source

Cleanup, documentation.

tags/v1.9.10
Stephane Letz 12 years ago
parent
commit
3797644104
4 changed files with 46 additions and 9 deletions
  1. +18
    -2
      common/JackAudioDriver.cpp
  2. +13
    -0
      common/JackAudioDriver.h
  3. +11
    -7
      common/JackDriver.h
  4. +4
    -0
      common/JackMidiDriver.h

+ 18
- 2
common/JackAudioDriver.cpp View File

@@ -203,7 +203,7 @@ int JackAudioDriver::Process()
}

/*
The driver ASYNC mode: output buffers computed at the *previous cycle* are used, the server does not
The driver "asynchronous" mode: output buffers computed at the *previous cycle* are used, the server does not
synchronize to the end of client graph execution.
*/

@@ -239,6 +239,10 @@ void JackAudioDriver::ProcessGraphAsync()
}
}

/*
Used when the driver works in master mode.
*/

void JackAudioDriver::ProcessGraphAsyncMaster()
{
// fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle
@@ -261,6 +265,10 @@ void JackAudioDriver::ProcessGraphAsyncMaster()
// Does not wait on graph execution end
}

/*
Used when the driver works in slave mode.
*/

void JackAudioDriver::ProcessGraphAsyncSlave()
{
if (ResumeRefNum() < 0) {
@@ -269,7 +277,7 @@ void JackAudioDriver::ProcessGraphAsyncSlave()
}

/*
The driver SYNC mode: the server does synchronize to the end of client graph execution,
The driver "synchronous" mode: the server does synchronize to the end of client graph execution,
if graph process succeed, output buffers computed at the *current cycle* are used.
*/

@@ -305,6 +313,10 @@ void JackAudioDriver::ProcessGraphSync()
}
}

/*
Used when the driver works in master mode.
*/

void JackAudioDriver::ProcessGraphSyncMaster()
{
// fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle
@@ -332,6 +344,10 @@ void JackAudioDriver::ProcessGraphSyncMaster()
}
}

/*
Used when the driver works in slave mode.
*/

void JackAudioDriver::ProcessGraphSyncSlave()
{
if (ResumeRefNum() < 0) {


+ 13
- 0
common/JackAudioDriver.h View File

@@ -28,6 +28,15 @@ namespace Jack

/*!
\brief The base class for audio drivers: drivers with audio ports.

A concrete derived class will have to be defined with a real audio driver API,
either callback based one (like CoreAudio, PortAudio..) ones or blocking ones (like ALSA).

Most of the generic audio handing code is part of this class :
- concrete callback basedd derived subclasses typically have to Open/Close the underlying audio API,
setup the audio callback and implement the Read/Write methods
- concrete blocking based derived subclasses typically have to Open/Close the underlying audio API,
implement the Read/Write methods and "wraps" the driver with the JackThreadDriver class.
*/

class SERVER_EXPORT JackAudioDriver : public JackDriver
@@ -69,6 +78,10 @@ class SERVER_EXPORT JackAudioDriver : public JackDriver
jack_nframes_t capture_latency,
jack_nframes_t playback_latency);

/*
To be called by the underlying driver audio callback, or possibly by a RT thread (using JackThreadedDriver decorator)
when a blocking read/write underlying API is used (like ALSA)
*/
virtual int Process();

virtual int Attach();


+ 11
- 7
common/JackDriver.h View File

@@ -95,9 +95,11 @@ class SERVER_EXPORT JackDriverInterface
virtual int ProcessRead() = 0;
virtual int ProcessWrite() = 0;

// For "slave" driver in "synchronous" mode
virtual int ProcessReadSync() = 0;
virtual int ProcessWriteSync() = 0;

// For "slave" driver in "asynchronous" mode
virtual int ProcessReadAsync() = 0;
virtual int ProcessWriteAsync() = 0;

@@ -231,15 +233,17 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
int ProcessReadSlaves();
int ProcessWriteSlaves();

// For "slave" driver
int ProcessRead();
int ProcessWrite();
// For "slave" driver with typically decompose a given cycle in separated Read and Write parts.
virtual int ProcessRead();
virtual int ProcessWrite();

int ProcessReadSync();
int ProcessWriteSync();
// For "slave" driver in "synchronous" mode
virtual int ProcessReadSync();
virtual int ProcessWriteSync();

int ProcessReadAsync();
int ProcessWriteAsync();
// For "slave" driver in "asynchronous" mode
virtual int ProcessReadAsync();
virtual int ProcessWriteAsync();

virtual bool IsFixedBufferSize();
virtual int SetBufferSize(jack_nframes_t buffer_size);


+ 4
- 0
common/JackMidiDriver.h View File

@@ -30,6 +30,10 @@ namespace Jack

/*!
\brief The base class for MIDI drivers: drivers with MIDI ports.

A concrete derived class will have to be defined with a real MIDI driver API,
either callback based one (like CoreMIDI..) ones or blocking ones (like ALSA MIDI).

*/

class SERVER_EXPORT JackMidiDriver : public JackDriver


Loading…
Cancel
Save