More cleanup in backends.
git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4646 0c269be4-1314-0410-8aa9-9f06e86f4224
This commit is contained in:
parent
4f60f19c2f
commit
866f001cdc
|
@ -270,7 +270,7 @@ void JackAudioDriver::ProcessGraphAsyncMaster()
|
|||
jack_error("JackAudioDriver::ProcessGraphAsyncMaster: Process error");
|
||||
}
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackAudioDriver::ProcessGraphAsyncMaster: ResumeRefNum error");
|
||||
}
|
||||
|
||||
|
@ -287,8 +287,9 @@ void JackAudioDriver::ProcessGraphAsyncMaster()
|
|||
|
||||
void JackAudioDriver::ProcessGraphAsyncSlave()
|
||||
{
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0)
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackAudioDriver::ProcessGraphAsyncSlave: ResumeRefNum error");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -333,7 +334,7 @@ void JackAudioDriver::ProcessGraphSyncMaster()
|
|||
// fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle
|
||||
if (fEngine->Process(fBeginDateUst, fEndDateUst)) {
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackAudioDriver::ProcessGraphSyncMaster: ResumeRefNum error");
|
||||
}
|
||||
|
||||
|
@ -346,7 +347,7 @@ void JackAudioDriver::ProcessGraphSyncMaster()
|
|||
}
|
||||
|
||||
// Waits for graph execution end
|
||||
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) {
|
||||
if (SuspendRefNum() < 0) {
|
||||
jack_error("JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!");
|
||||
}
|
||||
|
||||
|
@ -357,7 +358,7 @@ void JackAudioDriver::ProcessGraphSyncMaster()
|
|||
|
||||
void JackAudioDriver::ProcessGraphSyncSlave()
|
||||
{
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackAudioDriver::ProcessGraphSyncSlave: ResumeRefNum error");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -530,4 +530,15 @@ void JackDriver::RestoreConnections()
|
|||
}
|
||||
}
|
||||
|
||||
int JackDriver::ResumeRefNum()
|
||||
{
|
||||
return fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable);
|
||||
}
|
||||
|
||||
int JackDriver::SuspendRefNum()
|
||||
{
|
||||
return fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs);
|
||||
}
|
||||
|
||||
|
||||
} // end of namespace
|
||||
|
|
|
@ -186,6 +186,9 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface
|
|||
virtual int StartSlaves();
|
||||
virtual int StopSlaves();
|
||||
|
||||
virtual int ResumeRefNum();
|
||||
virtual int SuspendRefNum();
|
||||
|
||||
public:
|
||||
|
||||
JackDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table);
|
||||
|
|
|
@ -37,12 +37,13 @@ int JackFreewheelDriver::Process()
|
|||
|
||||
if (fEngine->Process(fBeginDateUst, fEndDateUst)) {
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable)) { // Signal all clients
|
||||
if (ResumeRefNum()) { // Signal all clients
|
||||
jack_error("JackFreewheelDriver::Process: ResumeRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
||||
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, FREEWHEEL_DRIVER_TIMEOUT * 1000000) < 0) { // Wait for all clients to finish for 10 sec
|
||||
// Special "SuspendRefNum" with longer timeout
|
||||
if (SuspendRefNum() < 0) { // Wait for all clients to finish for 10 sec
|
||||
jack_error("JackFreewheelDriver::ProcessSync: SuspendRefNum error");
|
||||
/* We have a client time-out error, but still continue to process, until a better recovery strategy is chosen */
|
||||
return 0;
|
||||
|
@ -60,7 +61,7 @@ int JackFreewheelDriver::Process()
|
|||
|
||||
int JackFreewheelDriver::ProcessReadSync()
|
||||
{
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { // Signal all clients
|
||||
if (ResumeRefNum() < 0) { // Signal all clients
|
||||
jack_error("JackFreewheelDriver::ProcessReadSync: ResumeRefNum error");
|
||||
return -1;
|
||||
}
|
||||
|
@ -69,7 +70,8 @@ int JackFreewheelDriver::ProcessReadSync()
|
|||
|
||||
int JackFreewheelDriver::ProcessWriteSync()
|
||||
{
|
||||
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) {
|
||||
// Generic "SuspendRefNum" here
|
||||
if (JackDriver::SuspendRefNum() < 0) {
|
||||
jack_error("JackFreewheelDriver::ProcessSync SuspendRefNum error");
|
||||
return -1;
|
||||
}
|
||||
|
@ -78,7 +80,7 @@ int JackFreewheelDriver::ProcessWriteSync()
|
|||
|
||||
int JackFreewheelDriver::ProcessReadAsync()
|
||||
{
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) { // Signal all clients
|
||||
if (ResumeRefNum() < 0) { // Signal all clients
|
||||
jack_error("JackFreewheelDriver::ProcessReadAsync: ResumeRefNum error");
|
||||
return -1;
|
||||
}
|
||||
|
@ -90,4 +92,9 @@ int JackFreewheelDriver::ProcessWriteAsync()
|
|||
return 0;
|
||||
}
|
||||
|
||||
int JackFreewheelDriver::SuspendRefNum()
|
||||
{
|
||||
return fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, FREEWHEEL_DRIVER_TIMEOUT * 1000000);
|
||||
}
|
||||
|
||||
} // end of namespace
|
||||
|
|
|
@ -32,6 +32,9 @@ namespace Jack
|
|||
|
||||
class JackFreewheelDriver : public JackDriver
|
||||
{
|
||||
protected:
|
||||
|
||||
int SuspendRefNum();
|
||||
|
||||
public:
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ int JackLoopbackDriver::ProcessReadSync()
|
|||
memcpy(GetInputBuffer(i), GetOutputBuffer(i), sizeof(jack_default_audio_sample_t) * fEngineControl->fBufferSize);
|
||||
}
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackLoopbackDriver::ProcessReadSync - ResumeRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ int JackLoopbackDriver::ProcessReadSync()
|
|||
|
||||
int JackLoopbackDriver::ProcessWriteSync()
|
||||
{
|
||||
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0) {
|
||||
if (SuspendRefNum() < 0) {
|
||||
jack_error("JackLoopbackDriver::ProcessWriteSync SuspendRefNum error");
|
||||
return -1;
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ int JackLoopbackDriver::ProcessReadAsync()
|
|||
memcpy(GetInputBuffer(i), GetOutputBuffer(i), sizeof(jack_default_audio_sample_t) * fEngineControl->fBufferSize);
|
||||
}
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackLoopbackDriver::ProcessReadAsync - ResumeRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
|
|
@ -143,7 +143,7 @@ int JackMidiDriver::ProcessReadSync()
|
|||
res = -1;
|
||||
}
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackMidiDriver::ProcessReadSync: ResumeRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
@ -155,9 +155,7 @@ int JackMidiDriver::ProcessWriteSync()
|
|||
{
|
||||
int res = 0;
|
||||
|
||||
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable,
|
||||
DRIVER_TIMEOUT_FACTOR *
|
||||
fEngineControl->fTimeOutUsecs) < 0) {
|
||||
if (SuspendRefNum() < 0) {
|
||||
jack_error("JackMidiDriver::ProcessWriteSync: SuspendRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
@ -187,7 +185,7 @@ int JackMidiDriver::ProcessReadAsync()
|
|||
res = -1;
|
||||
}
|
||||
|
||||
if (fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable) < 0) {
|
||||
if (ResumeRefNum() < 0) {
|
||||
jack_error("JackMidiDriver::ProcessReadAsync: ResumeRefNum error");
|
||||
res = -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue