Skip to content

Commit fbfc05f

Browse files
committed
Fix crash in Record Node when no data channels are selected
1 parent 1fd1768 commit fbfc05f

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

Source/Processors/RecordNode/RecordThread.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,14 @@ void RecordThread::run()
101101

102102
for (int chan = 0; chan < m_numChannels; ++chan)
103103
{
104-
sampleNumbers.add (0);
105-
dataBufferIdxs.push_back (CircularBufferIndexes());
104+
sampleNumbers.add (0);
105+
dataBufferIdxs.push_back (CircularBufferIndexes());
106+
}
107+
108+
for (int stream = 0; stream < recordNode->getNumDataStreams(); ++stream)
109+
{
106110
timestampBufferIdxs.push_back (CircularBufferIndexes());
107-
}
111+
}
108112

109113
bool closeEarly = true;
110114

@@ -159,23 +163,21 @@ void RecordThread::writeData (const AudioBuffer<float>& dataBuffer,
159163
int maxSpikes,
160164
bool lastBlock)
161165
{
162-
163-
if (m_dataQueue->startRead(dataBufferIdxs, timestampBufferIdxs, sampleNumbers, maxSamples))
166+
if (m_dataQueue->startRead (dataBufferIdxs, timestampBufferIdxs, sampleNumbers, maxSamples))
164167
{
165168
m_engine->updateLatestSampleNumbers (sampleNumbers);
166169

167170
/* Copy data to record engine */
168171
for (int chan = 0; chan < m_numChannels; ++chan)
169172
{
170-
171173
if (dataBufferIdxs[chan].size1 > 0)
172174
{
173175
const double* r = timestampBuffer.getReadPointer (m_timestampBufferChannelArray[chan],
174176
dataBufferIdxs[chan].index1);
175177

176-
//if (chan == 0)
177-
// std::cout << "Writing " << dataBufferIdxs[chan].size1 << " samples for channel 0"
178-
// << std::endl;
178+
//if (chan == 0)
179+
// std::cout << "Writing " << dataBufferIdxs[chan].size1 << " samples for channel 0"
180+
// << std::endl;
179181

180182
m_engine->writeContinuousData (
181183
chan, // write channel (index among all recorded channels)
@@ -237,7 +239,6 @@ void RecordThread::writeData (const AudioBuffer<float>& dataBuffer,
237239

238240
if (SystemEvent::getBaseType (event) == EventBase::Type::SYSTEM_EVENT)
239241
{
240-
241242
String syncText = SystemEvent::getSyncText (event);
242243
m_engine->writeTimestampSyncText (SystemEvent::getStreamId (event), SystemEvent::getSampleNumber (event), 0.0f, SystemEvent::getSyncText (event));
243244
}

0 commit comments

Comments
 (0)