|
|
|
@@ -17,10 +17,10 @@ along with this program; if not, write to the Free Software |
|
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
#ifdef WIN32
|
|
|
|
#pragma warning (disable : 4786)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef WIN32 |
|
|
|
#pragma warning (disable : 4786) |
|
|
|
#endif |
|
|
|
|
|
|
|
#include "JackAudioDriver.h" |
|
|
|
#include "JackTime.h" |
|
|
|
@@ -71,7 +71,7 @@ int JackAudioDriver::Attach() |
|
|
|
unsigned long port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal; |
|
|
|
int i; |
|
|
|
|
|
|
|
JackLog("JackAudioDriver::Attach fBufferSize %ld fSampleRate %ld\n", fEngineControl->fBufferSize, fEngineControl->fSampleRate); |
|
|
|
JackLog("JackAudioDriver::Attach fBufferSize = %ld fSampleRate = %ld\n", fEngineControl->fBufferSize, fEngineControl->fSampleRate); |
|
|
|
|
|
|
|
for (i = 0; i < fCaptureChannels; i++) { |
|
|
|
snprintf(buf, sizeof(buf) - 1, "%s:%s:out%d", fClientControl->fName, fCaptureDriverName, i + 1); |
|
|
|
@@ -82,7 +82,7 @@ int JackAudioDriver::Attach() |
|
|
|
port = fGraphManager->GetPort(port_index); |
|
|
|
port->SetLatency(fEngineControl->fBufferSize + fCaptureLatency); |
|
|
|
fCapturePortList[i] = port_index; |
|
|
|
JackLog("JackAudioDriver::Attach fCapturePortList[i] %ld \n", port_index); |
|
|
|
JackLog("JackAudioDriver::Attach fCapturePortList[i] %ld = \n", port_index); |
|
|
|
} |
|
|
|
|
|
|
|
port_flags = JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal; |
|
|
|
@@ -96,7 +96,7 @@ int JackAudioDriver::Attach() |
|
|
|
port = fGraphManager->GetPort(port_index); |
|
|
|
port->SetLatency(fEngineControl->fBufferSize + fPlaybackLatency); |
|
|
|
fPlaybackPortList[i] = port_index; |
|
|
|
JackLog("JackAudioDriver::Attach fPlaybackPortList[i] %ld \n", port_index); |
|
|
|
JackLog("JackAudioDriver::Attach fPlaybackPortList[i] %ld = \n", port_index); |
|
|
|
|
|
|
|
// Monitor ports |
|
|
|
if (fWithMonitorPorts) { |
|
|
|
@@ -192,20 +192,20 @@ int JackAudioDriver::ProcessSync() |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (fIsMaster) {
|
|
|
|
if (fIsMaster) { |
|
|
|
|
|
|
|
if (fEngine->Process(fLastWaitUst)) { // fLastWaitUst is set in the "low level" layer |
|
|
|
fGraphManager->ResumeRefNum(fClientControl, fSynchroTable); |
|
|
|
if (ProcessSlaves() < 0)
|
|
|
|
if (ProcessSlaves() < 0) |
|
|
|
jack_error("JackAudioDriver::ProcessSync ProcessSlaves error, engine may now behave abnormally!!"); |
|
|
|
if (fGraphManager->SuspendRefNum(fClientControl, fSynchroTable, fEngineControl->fTimeOutUsecs) < 0) |
|
|
|
jack_error("JackAudioDriver::ProcessSync SuspendRefNum error, engine may now behave abnormally!!");
|
|
|
|
} else { // Graph not finished: do not activate it
|
|
|
|
jack_error("JackAudioDriver::ProcessSync: error");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (Write() < 0) // Write output buffers for the current cycle
|
|
|
|
jack_error("Process: write error");
|
|
|
|
jack_error("JackAudioDriver::ProcessSync SuspendRefNum error, engine may now behave abnormally!!"); |
|
|
|
} else { // Graph not finished: do not activate it |
|
|
|
jack_error("JackAudioDriver::ProcessSync: error"); |
|
|
|
} |
|
|
|
|
|
|
|
if (Write() < 0) // Write output buffers for the current cycle |
|
|
|
jack_error("Process: write error"); |
|
|
|
|
|
|
|
} else { |
|
|
|
fGraphManager->ResumeRefNum(fClientControl, fSynchroTable); |
|
|
|
|