00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "JackSystemDeps.h"
00022 #include "JackLoopbackDriver.h"
00023 #include "JackEngineControl.h"
00024 #include "JackGraphManager.h"
00025 #include "JackError.h"
00026 #include <iostream>
00027 #include <assert.h>
00028
00029 namespace Jack
00030 {
00031
00032 int JackLoopbackDriver::Process()
00033 {
00034 assert(fCaptureChannels == fPlaybackChannels);
00035
00036
00037 for (int i = 0; i < fCaptureChannels; i++) {
00038 memcpy(GetInputBuffer(i), GetOutputBuffer(i), sizeof(float) * fEngineControl->fBufferSize);
00039 }
00040
00041 fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable);
00042 if (fEngineControl->fSyncMode) {
00043 if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, fEngineControl->fTimeOutUsecs) < 0) {
00044 jack_error("JackLoopbackDriver::ProcessSync SuspendRefNum error");
00045 return -1;
00046 }
00047 }
00048 return 0;
00049 }
00050
00051 }