Merge pull request #262 from pljones/bugfix/234-frame-count-can-be-wrong
#234 Fix from @Snayler for offset problem in recorder
This commit is contained in:
commit
0d6262edc4
2 changed files with 10 additions and 2 deletions
|
@ -109,6 +109,7 @@ void CJamClient::Disconnect()
|
||||||
CJamSession::CJamSession(QDir recordBaseDir) :
|
CJamSession::CJamSession(QDir recordBaseDir) :
|
||||||
sessionDir (QDir(recordBaseDir.absoluteFilePath("Jam-" + QDateTime().currentDateTimeUtc().toString("yyyyMMdd-HHmmsszzz")))),
|
sessionDir (QDir(recordBaseDir.absoluteFilePath("Jam-" + QDateTime().currentDateTimeUtc().toString("yyyyMMdd-HHmmsszzz")))),
|
||||||
currentFrame (0),
|
currentFrame (0),
|
||||||
|
chIdDisconnected (-1),
|
||||||
vecptrJamClients (MAX_NUM_CHANNELS),
|
vecptrJamClients (MAX_NUM_CHANNELS),
|
||||||
jamClientConnections()
|
jamClientConnections()
|
||||||
{
|
{
|
||||||
|
@ -130,8 +131,6 @@ CJamSession::CJamSession(QDir recordBaseDir) :
|
||||||
|
|
||||||
// Explicitly set all the pointers to "empty"
|
// Explicitly set all the pointers to "empty"
|
||||||
vecptrJamClients.fill(nullptr);
|
vecptrJamClients.fill(nullptr);
|
||||||
|
|
||||||
currentFrame = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -150,6 +149,7 @@ void CJamSession::DisconnectClient(int iChID)
|
||||||
|
|
||||||
delete vecptrJamClients[iChID];
|
delete vecptrJamClients[iChID];
|
||||||
vecptrJamClients[iChID] = nullptr;
|
vecptrJamClients[iChID] = nullptr;
|
||||||
|
chIdDisconnected = iChID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -167,6 +167,13 @@ void CJamSession::DisconnectClient(int iChID)
|
||||||
*/
|
*/
|
||||||
void CJamSession::Frame(const int iChID, const QString name, const CHostAddress address, const int numAudioChannels, const CVector<int16_t> data, int iServerFrameSizeSamples)
|
void CJamSession::Frame(const int iChID, const QString name, const CHostAddress address, const int numAudioChannels, const CVector<int16_t> data, int iServerFrameSizeSamples)
|
||||||
{
|
{
|
||||||
|
if ( iChID == chIdDisconnected )
|
||||||
|
{
|
||||||
|
// DisconnectClient has just been called for this channel - this frame is "too late"
|
||||||
|
chIdDisconnected = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (vecptrJamClients[iChID] == nullptr)
|
if (vecptrJamClients[iChID] == nullptr)
|
||||||
{
|
{
|
||||||
// then we have not seen this client this session
|
// then we have not seen this client this session
|
||||||
|
|
|
@ -128,6 +128,7 @@ private:
|
||||||
const QDir sessionDir;
|
const QDir sessionDir;
|
||||||
|
|
||||||
qint64 currentFrame;
|
qint64 currentFrame;
|
||||||
|
int chIdDisconnected;
|
||||||
QVector<CJamClient*> vecptrJamClients;
|
QVector<CJamClient*> vecptrJamClients;
|
||||||
QList<CJamClientConnection*> jamClientConnections;
|
QList<CJamClientConnection*> jamClientConnections;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue