Browse Source

Transport timebase fix (in progress).

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2064 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.71
sletz 17 years ago
parent
commit
60ddbedf9f
2 changed files with 19 additions and 2 deletions
  1. +18
    -2
      common/JackTransportEngine.cpp
  2. +1
    -0
      common/JackTransportEngine.h

+ 18
- 2
common/JackTransportEngine.cpp View File

@@ -116,14 +116,27 @@ void JackTransportEngine::MakeAllStopping(JackClientInterface** table)
for (int i = REAL_REFNUM; i < CLIENT_NUM; i++) { for (int i = REAL_REFNUM; i < CLIENT_NUM; i++) {
JackClientInterface* client = table[i]; JackClientInterface* client = table[i];
if (client) { if (client) {
client->GetClientControl()->fTransportState = JackTransportStopped;
client->GetClientControl()->fTransportSync = false; client->GetClientControl()->fTransportSync = false;
client->GetClientControl()->fTransportTimebase = false; client->GetClientControl()->fTransportTimebase = false;
client->GetClientControl()->fTransportState = JackTransportStopped;
jack_log("MakeAllStopping ref = %ld", i); jack_log("MakeAllStopping ref = %ld", i);
} }
} }
} }


// RT
void JackTransportEngine::MakeAllLocating(JackClientInterface** table)
{
for (int i = REAL_REFNUM; i < CLIENT_NUM; i++) {
JackClientInterface* client = table[i];
if (client) {
client->GetClientControl()->fTransportState = JackTransportStopped;
client->GetClientControl()->fTransportTimebase = true;
jack_log("MakeAllLocating ref = %ld", i);
}
}
}

// RT // RT
void JackTransportEngine::CycleBegin(jack_nframes_t frame_rate, jack_time_t time) // really needed?? (would be done in CycleEnd...) void JackTransportEngine::CycleBegin(jack_nframes_t frame_rate, jack_time_t time) // really needed?? (would be done in CycleEnd...)
{ {
@@ -157,7 +170,10 @@ void JackTransportEngine::CycleEnd(JackClientInterface** table, jack_nframes_t f
fTransportState = JackTransportStarting; fTransportState = JackTransportStarting;
MakeAllStartingLocating(table); MakeAllStartingLocating(table);
SyncTimeout(frame_rate, buffer_size); SyncTimeout(frame_rate, buffer_size);
}
} else if (fPendingPos) {
jack_log("transport stopped ==> stopped (locating)");
MakeAllLocating(table);
}
break; break;


case JackTransportStarting: case JackTransportStarting:


+ 1
- 0
common/JackTransportEngine.h View File

@@ -106,6 +106,7 @@ class JackTransportEngine : public JackAtomicArrayState<jack_position_t>
void MakeAllStartingLocating(JackClientInterface** table); void MakeAllStartingLocating(JackClientInterface** table);
void MakeAllStopping(JackClientInterface** table); void MakeAllStopping(JackClientInterface** table);
void MakeAllLocating(JackClientInterface** table);
void SyncTimeout(jack_nframes_t frame_rate, jack_nframes_t buffer_size); void SyncTimeout(jack_nframes_t frame_rate, jack_nframes_t buffer_size);




Loading…
Cancel
Save